Cách kiểm tra kích thước thư mục HDFS?


96

Tôi biết du -shtrong các hệ thống tệp Linux phổ biến. Nhưng làm thế nào để làm điều đó với HDFS?

Câu trả lời:


161

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ể.


19
-du -s (-dus bị phản đối)
Carlos Rendon

69

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.


Đối với các phiên bản hdfs mới hơn, hdfs -du -s -h /path/to/dirnó thích hợp hơn.
Adelson Araújo

26

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.

Du trả về ba cột với định dạng sau:

 +-------------------------------------------------------------------+ 
 | size  |  disk_space_consumed_with_all_replicas  |  full_path_name | 
 +-------------------------------------------------------------------+ 

Lệnh ví dụ:

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.

nguồn: Apache doc


12

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 }'

1
hdfs dfs -du PATHTODIRECTORY | awk '/ ^ [0-9] + / {print int ($ 1 / (1024 3) "[GB] \ t" $ 2}' - Vui lòng cập nhật lệnh của bạn. Hai dấu ngoặc đóng sau 1024 3. Nó chỉ nên là 1
gubs 14/09/18

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, -stù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 

1

Để 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.


0

% 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


Tôi gặp lỗi với "hdfs", cách nó hoạt động với tôi là: hadoop fs -du -h /user (tôi không cần sử dụng sudo)
diens

sudokhông cần thiết và nên được sử dụng một cách tiết kiệm.
Climbs_lika_Spyder

0

hadoop phiên bản 2.3.33:

hadoop fs -dus  /path/to/dir  |   awk '{print $2/1024**3 " G"}' 

nhập mô tả hình ảnh ở đây


0

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

-1

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 đủ)


câu trả lời trùng lặp
mrsrinivas
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.