Sao chép tệp hoặc thư mục từ hệ thống tệp cục bộ sang HDFS
C.
Sao chép các tệp từ HDFS sang hệ thống tệp cục bộ
D.
Sao chép tệp hoặc thư mục từ HDFS sang hệ thống tệp cục bộ
Trả lời:
Đáp án đúng: B
Lệnh `hadoop fs` (thường được viết tắt là `hdfs dfs`) là một lệnh shell được sử dụng để tương tác với hệ thống tệp phân tán Hadoop (HDFS). Lệnh này cung cấp nhiều tùy chọn để thực hiện các thao tác khác nhau trên HDFS, bao gồm sao chép tệp và thư mục giữa hệ thống tệp cục bộ và HDFS, cũng như giữa các vị trí khác nhau trong HDFS.
Phương án B là chính xác nhất vì nó bao gồm cả tệp và thư mục. Các phương án khác chỉ đề cập đến tệp, trong khi `hadoop fs` có thể sao chép cả hai.
Cụ thể, để sao chép tệp hoặc thư mục từ hệ thống tệp cục bộ vào HDFS, ta sử dụng lệnh `hadoop fs -copyFromLocal `, trong đó `` là đường dẫn đến tệp hoặc thư mục trên hệ thống tệp cục bộ và `` là đường dẫn đến vị trí trong HDFS mà bạn muốn sao chép đến.
Để sao chép tệp hoặc thư mục từ HDFS về hệ thống tệp cục bộ, ta sử dụng lệnh `hadoop fs -copyToLocal `, trong đó `` là đường dẫn đến tệp hoặc thư mục trên HDFS và `` là đường dẫn đến vị trí trên hệ thống tệp cục bộ mà bạn muốn sao chép đến.
Mục đích chính của việc khởi động NameNode trong chế độ khôi phục (recovery mode) là để khôi phục lại trạng thái của hệ thống tệp HDFS khi NameNode gặp sự cố và không thể khởi động lại một cách bình thường. Chế độ này đặc biệt hữu ích khi có nhiều bản sao của siêu dữ liệu (metadata) và cần chọn một bản sao hợp lệ để sử dụng.
Phương án A: Khôi phục NameNode không thành công. Đây là một phần của quá trình, nhưng không phải là mục đích duy nhất. Chế độ khôi phục giúp NameNode vượt qua các lỗi và tiếp tục hoạt động.
Phương án B: Khôi phục một DataNode bị lỗi. Chế độ khôi phục của NameNode không trực tiếp liên quan đến việc khôi phục DataNode. Việc khôi phục DataNode là một quy trình riêng biệt.
Phương án C: Khôi phục dữ liệu từ một trong những vị trí lưu trữ siêu dữ liệu. Đây là đáp án chính xác. Khi NameNode khởi động ở chế độ khôi phục, nó sẽ cố gắng đọc siêu dữ liệu từ các vị trí lưu trữ khác nhau (ví dụ: nhiều ổ đĩa hoặc NFS mount) và chọn bản sao mới nhất, nhất quán để sử dụng.
Phương án D: Khôi phục dữ liệu khi chỉ có một vị trí lưu trữ siêu dữ liệu. Chế độ khôi phục vẫn có thể hữu ích ngay cả khi chỉ có một vị trí lưu trữ siêu dữ liệu, đặc biệt nếu siêu dữ liệu bị hỏng và cần được kiểm tra và sửa chữa. Tuy nhiên, phương án C mô tả mục đích chính xác và quan trọng hơn của chế độ khôi phục.
Để cài đặt một hệ thống phân phối hoàn toàn (không ảo hóa), ta cần tối thiểu 3 máy vật lý. Một máy đóng vai trò là máy chủ trung tâm (master node) và hai máy còn lại đóng vai trò là các máy công nhân (worker nodes) để thực hiện các tác vụ tính toán và lưu trữ dữ liệu. Do đó, đáp án đúng là B.
Trong HDFS (Hadoop Distributed File System), các tệp được thiết kế để lưu trữ và truy xuất dữ liệu lớn một cách hiệu quả. Một khi tệp đã được ghi vào HDFS, nó thường không được sửa đổi. Các thao tác phổ biến trên tệp trong HDFS bao gồm đọc, xóa và lưu trữ (archive) để quản lý dung lượng. Tuy nhiên, HDFS không hỗ trợ việc thực thi trực tiếp các tệp như các chương trình thực thi. Do đó, đáp án đúng là C.
Lệnh getmerge trong Hadoop cho phép bạn hợp nhất tất cả các tệp trong một thư mục HDFS thành một tệp duy nhất trên hệ thống tệp cục bộ. Lệnh này hữu ích khi bạn muốn thu thập dữ liệu từ nhiều tệp nhỏ trong HDFS thành một tệp lớn hơn để xử lý dễ dàng hơn. Các lựa chọn khác không phải là các lệnh hoặc khái niệm hợp lệ trong Hadoop.
Khi số lượng tệp được lưu trữ trong HDFS tăng lên, NameNode cần lưu trữ nhiều metadata hơn về các tệp này, bao gồm tên tệp, quyền, kích thước, vị trí của các khối dữ liệu,... Do đó, bộ nhớ mà NameNode yêu cầu cũng tăng lên.