Câu trả lời:
Trước 0.20.203 và chính thức không được dùng nữa trong 2.6.0:
hadoop fs -dus [directory]
Kể từ 0.20.203 (liên kết chết) 1.0.4 và vẫn tương thích đến 2.6.0 :
hdfs dfs -du [-s] [-h] URI [URI …]
Bạn cũng có thể chạy hadoop fs -help
để biết thêm thông tin và chi tiết cụ thể.
hadoop fs -du -s -h /path/to/dir
hiển thị kích thước của một thư mục ở dạng có thể đọc được.
hdfs -du -s -h /path/to/dir
nó thích hợp hơn.
Mở rộng cho Matt D và những câu trả lời khác, lệnh có thể cho đến Apache Hadoop 3.0.0
hadoop fs -du [-s] [-h] [-v] [-x] URI [URI ...]
Nó hiển thị kích thước của các tệp và thư mục có trong thư mục nhất định hoặc độ dài của tệp trong trường hợp nó chỉ là một tệp.
Các tùy chọn:
- Các -s tùy chọn sẽ dẫn đến một bản tóm tắt tổng chiều dài tập tin được hiển thị, chứ không phải các tập tin cá nhân. Nếu không có tùy chọn -s, tính toán được thực hiện bằng cách đi sâu 1 cấp từ đường dẫn đã cho.
- Các -h tùy chọn sẽ định dạng kích thước tập tin trong một con người có thể đọc được thời trang (ví dụ 64.0m thay vì 67.108.864)
- Các -v tùy chọn sẽ hiển thị tên của các cột như một dòng tiêu đề.
- Các -x tùy chọn sẽ loại trừ ảnh chụp nhanh từ việc tính toán kết quả. Nếu không có tùy chọn -x (mặc định), kết quả luôn được tính từ tất cả các INodes, bao gồm tất cả các ảnh chụp nhanh theo đường dẫn đã cho.
+-------------------------------------------------------------------+
| size | disk_space_consumed_with_all_replicas | full_path_name |
+-------------------------------------------------------------------+
hadoop fs -du /user/hadoop/dir1 \
/user/hadoop/file1 \
hdfs://nn.example.com/user/hadoop/dir1
Mã thoát: Trả về 0 khi thành công và -1 khi lỗi.
Với điều này, bạn sẽ nhận được kích thước bằng GB
hdfs dfs -du PATHTODIRECTORY | awk '/^[0-9]+/ { print int($1/(1024**3)) " [GB]\t" $2 }'
Khi cố gắng tính toán tổng số một nhóm tệp cụ thể trong một thư mục, -s
tùy chọn này không hoạt động (trong Hadoop 2.7.1). Ví dụ:
Cấu trúc thư mục:
some_dir
├abc.txt
├count1.txt
├count2.txt
└def.txt
Giả sử mỗi tệp có kích thước 1 KB. Bạn có thể tóm tắt toàn bộ thư mục với:
hdfs dfs -du -s some_dir
4096 some_dir
Tuy nhiên, nếu tôi muốn tổng của tất cả các tệp có chứa "đếm" thì lệnh sẽ bị thiếu.
hdfs dfs -du -s some_dir/count*
1024 some_dir/count1.txt
1024 some_dir/count2.txt
Để giải quyết vấn đề này, tôi thường chuyển đầu ra thông qua awk.
hdfs dfs -du some_dir/count* | awk '{ total+=$1 } END { print total }'
2048
Để có được kích thước của thư mục hdfs dfs -du -s -h / $ yourDirectoryName có thể được sử dụng. hdfs dfsadmin -report có thể được sử dụng để xem báo cáo lưu trữ cấp cụm nhanh chóng.
% dung lượng đã sử dụng trên cụm Hadoop
sudo -u hdfs hadoop fs –df
Dung lượng trong thư mục cụ thể:
sudo -u hdfs hadoop fs -du -h /user
hadoop fs -du -h /user
(tôi không cần sử dụng sudo
)
sudo
không cần thiết và nên được sử dụng một cách tiết kiệm.
hdfs dfs -count <dir>
thông tin từ trang người đàn ông:
-count [-q] [-h] [-v] [-t [<storage type>]] [-u] <path> ... :
Count the number of directories, files and bytes under the paths
that match the specified file pattern. The output columns are:
DIR_COUNT FILE_COUNT CONTENT_SIZE PATHNAME
or, with the -q option:
QUOTA REM_QUOTA SPACE_QUOTA REM_SPACE_QUOTA
DIR_COUNT FILE_COUNT CONTENT_SIZE PATHNAME
Lệnh nên được hadoop fs -du -s -h \dirPath
-du [-s] [-h] ...: Hiển thị dung lượng, tính bằng byte, được sử dụng bởi các tệp phù hợp với mẫu tệp được chỉ định.
-s : Thay vì hiển thị kích thước của từng tệp riêng lẻ phù hợp với
mẫu, hiển thị tổng kích thước (tóm tắt).
-h : Định dạng kích thước của tệp theo kiểu con người có thể đọc được thay vì một số byte. (Ví dụ MB / GB / TB, v.v.)
Lưu ý rằng, ngay cả khi không có tùy chọn -s, tùy chọn này chỉ hiển thị tóm tắt kích thước sâu một cấp trong một thư mục.
Đầu ra ở dạng kích thước tên (đường dẫn đầy đủ)