Video: Hadoop là gì 2025
HDFS là một trong hai thành phần chính của khung công tác Hadoop; khác là mô hình tính toán được gọi là MapReduce. Hệ thống tệp phân phối là một hệ thống tập tin quản lý lưu trữ trên một nhóm các máy tính nối mạng.
HDFS lưu trữ dữ liệu trong khối , các đơn vị có kích thước mặc định là 64MB. Các tệp bạn muốn lưu trữ trong HDFS cần phải được chia thành các khối kích thước khối mà sau đó được lưu trữ độc lập trong toàn bộ cụm. Bạn có thể sử dụng lệnh dòng fsck để liệt kê các khối tạo nên mỗi tệp trong HDFS như sau:
% hadoop fsck / -files -blocks
Bởi vì Hadoop được viết bằng Java, tất cả các tương tác với HDFS được quản lý qua Java API. Tuy nhiên, lưu ý rằng bạn không cần phải là một guru Java để làm việc với các tệp trong HDFS. Một số giao diện Hadoop được xây dựng trên đầu trang của Java API hiện đang được sử dụng phổ biến (và ẩn Java), nhưng một trong những cách đơn giản nhất là giao diện dòng lệnh; sử dụng dòng lệnh để tương tác với HDFS trong các ví dụ được cung cấp.
Bạn truy cập vỏ hệ thống Hadoop bằng cách chạy một lệnh của hadoop. Tất cả các lệnh hadoop được gọi bởi tập lệnh bin / hadoop. (Để lấy lại mô tả của tất cả các lệnh hadoop, chạy tập lệnh hadoop mà không cần xác định bất kỳ đối số nào.) Lệnh hadoop có cú pháp
hadoop [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]
The - config confdir option ghi đè lên thư mục cấu hình mặc định ($ HADOOP_HOME / conf), vì vậy bạn có thể dễ dàng tùy chỉnh cấu hình môi trường Hadoop của bạn. Các tùy chọn chung chung và các tùy chọn lệnh là một tập hợp các tùy chọn phổ biến được hỗ trợ bởi một số lệnh.
Các lệnh hệ vỏ của hệ thống Hadoop (đối với các giao diện dòng lệnh) lấy các định danh tài nguyên thống nhất (URIs) làm đối số. A URI là một chuỗi ký tự được sử dụng để xác định tên hoặc tài nguyên web.
Chuỗi có thể bao gồm một tên lược đồ - một vòng loại cho tính chất của nguồn dữ liệu. Đối với HDFS, tên lược đồ là hdfs, và đối với hệ thống tệp cục bộ, tên lược đồ là tệp. Nếu bạn không chỉ định một tên đề án, mặc định là tên lược đồ được xác định trong tệp cấu hình. Một tập tin hoặc thư mục trong HDFS có thể được chỉ định theo cách đầy đủ, chẳng hạn như trong ví dụ này:
hdfs: // namenodehost / parent / child
Hoặc nó có thể đơn giản là / parent / child nếu các điểm tập tin cấu hình để hdfs: / / namenodehost.
Các lệnh hệ vỏ của Hadoop tương tự lệnh của Linux, có cú pháp tổng quát sau:
Người đọc với một số kinh nghiệm trước của Hadoop có thể hỏi, "Nhưng những gì về lệnh hadoop fs?"Lệnh fs bị phản đối trong loạt bản phát hành Hadoop 0. 2, nhưng nó vẫn hoạt động trong Hadoop 2. Thay vào đó, sử dụng các tệp tin ddfs hdfs. Như bạn mong đợi, bạn sử dụng lệnh mkdir để tạo một thư mục trong HDFS, giống như bạn làm trên Linux hoặc trên các hệ điều hành dựa trên Unix. Mặc dù HDFS có thư mục làm việc mặc định, / user / $ USER, nơi
$ USER
là tên đăng nhập của bạn, bạn cần tự tạo nó bằng cú pháp $ hadoop hdfs dfs -mkdir / user / login_user_name
Ví dụ: để tạo thư mục có tên là "joanna", chạy lệnh mkdir này: $ hadoop hdfs dfs -mkdir / user / joanna
Sử dụng lệnh Hadoop put để sao chép một tệp từ hệ thống tập tin địa phương của bạn để HDFS:
$ hadoop hdfs dfs -put
file_name
/ user / login_user_name Ví dụ, để sao chép một tập tin có tên dữ liệu. txt vào thư mục mới này, chạy lệnh put sau: $ hadoop hdfs dfs -put data. txt / user / joanna
Chạy lệnh ls để lấy danh sách file HDFS:
$ hadoop hdfs dfs -ls. Tìm thấy 2 mục Drwxr-xr-x - joanna supergroup 0 2013-06-30 12: 25 / người dùng / joanna-rw-r-r-- 1 joanna supergroup 118 2013-06-30 12: 15 / người dùng / joanna / dữ liệu. txt
Tệp liệt kê tệp tin bị hỏng như được mô tả trong danh sách này:
Cột 1 cho thấy
chế độ tệp
-
("d" cho thư mục và "-" cho tệp bình thường, theo sau là các quyền). Ba kiểu cho phép - đọc (r), viết (w) và thực hiện (x) - giống như bạn tìm thấy trên các hệ thống dựa trên Linux và Unix. Quyền thực thi cho một tệp bị bỏ qua vì bạn không thể thực hiện một tệp trên HDFS. Các quyền được nhóm bởi chủ sở hữu, nhóm và công cộng (mọi người khác). Cột 2 cho thấy nhân tố nhân rộng cho các tệp. (Khái niệm sao chép không áp dụng cho thư mục.) Các khối tạo nên một tệp trong HDFS được sao chép để đảm bảo khả năng chịu lỗi. Hệ số nhân bản
-
, hoặc hoặc số bản sao được giữ cho một tệp tin cụ thể, có thể được cấu hình. Bạn có thể chỉ định nhân tố sao chép khi tệp được tạo ra hoặc sau đó, thông qua ứng dụng của bạn. Các cột 3 và 4 hiển thị tệp chủ sở hữu
-
và nhóm . Supergroup là tên của nhóm superusers, và superuser là người dùng có cùng đặc tính như quá trình NameNode. Nếu bạn bắt đầu NameNode, bây giờ bạn là superuser. Đây là một nhóm đặc biệt - người dùng thường xuyên sẽ có userids của họ thuộc một nhóm không có đặc điểm đặc biệt - một nhóm được đơn giản chỉ định bởi một quản trị viên Hadoop. Cột 5 cho thấy kích thước của tệp, theo byte, hoặc 0 nếu đó là một thư mục. Các cột 6 và 7 cho biết ngày và giờ của lần sửa đổi cuối cùng tương ứng.
-
Cột 8 cho thấy tên không đủ tiêu chuẩn (có nghĩa là tên lược đồ không được chỉ định) của tệp hoặc thư mục.
-
Sử dụng lệnh Hadoop get để sao chép một tệp tin từ HDFS vào hệ thống tệp tin cục bộ của bạn:
-
$ hadoop hdfs dfs -get
file_name
/ user / login_user_name Sử dụng Hadoop rm lệnh để xóa một tập tin hoặc một thư mục rỗng: $ hadoop hdfs dfs -rm
file_name
/ user / login_user_name Sử dụng hadoop hdfs dfs -help lệnh để được trợ giúp chi tiết cho mọi Tùy chọn.