Điều này có vẻ là một câu hỏi ngớ ngẩn nhưng trong Hadoop giả sử khối là X (thường là 64 hoặc 128 MB) và một tệp địa phương là Y (trong đó Y nhỏ hơn X) .Làm sao khi tôi sao chép tệp Y vào HDFS, nó sẽ tiêu thụ một khối hoặc hadoop sẽ tạo ra các khối kích thước nhỏ hơn?Kích thước khối Hadoop và vấn đề kích thước tệp?
Trả lời
Một khối được tiêu thụ bởi Hadoop. Điều đó không có nghĩa là dung lượng lưu trữ sẽ được tiêu thụ theo cách tương đương.
Sản lượng khi duyệt HDFS từ web trông như thế này:
filename1 file 48.11 KB 3 128 MB 2012-04-24 18:36
filename2 file 533.24 KB 3 128 MB 2012-04-24 18:36
filename3 file 303.65 KB 3 128 MB 2012-04-24 18:37
Bạn thấy rằng mỗi kích thước tập tin là ít hơn kích thước khối là 128 MB. Các tệp này nằm trong KB. Dung lượng HDFS được tiêu thụ dựa trên kích thước tệp thực tế nhưng một khối được sử dụng cho mỗi tệp.
Có số lượng giới hạn các khối tùy thuộc vào dung lượng của HDFS. Bạn đang lãng phí các khối như bạn sẽ chạy ra khỏi chúng trước khi sử dụng tất cả dung lượng lưu trữ thực tế. Hãy nhớ rằng hệ thống tập tin Unix cũng có khái niệm về khối nhưng là một số rất nhỏ khoảng 512 byte. Khái niệm này được đảo ngược trong HDFS nơi kích thước khối được giữ lớn hơn khoảng 64-128 MB.
Vấn đề khác là khi bạn chạy chương trình bản đồ/giảm, nó sẽ cố gắng tạo ra bản đồ cho mỗi khối vì vậy trong trường hợp này khi bạn đang xử lý ba tệp nhỏ, có thể sẽ sinh ra ba người lập bản đồ để làm việc trên chúng. Điều này lãng phí tài nguyên khi các tệp có kích thước nhỏ hơn. Bạn cũng thêm độ trễ vì mỗi người lập bản đồ mất thời gian để sinh sản và sau đó cuối cùng sẽ làm việc trên một tệp có kích thước rất nhỏ. Bạn phải nén chúng thành các tệp gần hơn với việc chặn để tận dụng lợi thế của những người lập bản đồ làm việc với số lượng tệp ít hơn.
Một vấn đề khác với nhiều tệp nhỏ là nó tải nút tên để giữ ánh xạ (siêu dữ liệu) của mỗi khối và ánh xạ đoạn trong bộ nhớ chính. Với các tệp nhỏ hơn, bạn điền vào bảng này nhanh hơn và nhiều bộ nhớ chính hơn sẽ được yêu cầu khi siêu dữ liệu tăng lên.
Đọc sau để tham khảo:
- 1. Tra cứu Hadoop fs cho kích thước khối?
- 2. Kích thước khối hệ thống tệp
- 3. Hadoop MapReduce: Kích thước tệp đầu vào phù hợp?
- 4. Thay đổi kích thước Tách tệp trong Hadoop
- 5. Cách lấy kích thước tệp
- 6. Lỗi phát triển ứng dụng Android: "Khối XML xấu: kích thước tiêu đề 60 hoặc tổng kích thước 3932356 lớn hơn kích thước dữ liệu 0"
- 7. Kích thước khối của hệ thống tệp iphone là gì?
- 8. gitignore theo kích thước tệp?
- 9. Delphi và iOS Kích thước tệp
- 10. Kích thước tệp HSQLDB và .lobs
- 11. Kích thước tệp tối đa và kích thước kho lưu trữ tối đa trong Git?
- 12. Giảm kích thước tệp SWF
- 13. Giảm kích thước tệp pdf
- 14. Vấn đề về kích thước phông chữ với iPhone
- 15. Kích thước tệp vỏ linux
- 16. Vấn đề bố cục kích thước nội dung trong WPF
- 17. Vấn đề kích thước nội dung cho UITableView trong UIscrollView
- 18. vấn đề trong việc thay đổi kích thước của uialertview
- 19. WPF listview/gridsplitter/scrollviewer thay đổi kích thước vấn đề
- 20. Các vấn đề về kích thước cột ExcelExcel
- 21. Kích thước tệp DLL trong bộ nhớ và kích thước trên đĩa cứng
- 22. UIImageView: Thay đổi kích thước thành kích thước hình ảnh?
- 23. vấn đề kích thước tệp đầu vào trong safari để chọn nhiều tệp
- 24. Giảm kích thước tệp jar bên ngoài
- 25. Xác nhận kích thước tải lên tệp
- 26. Kích thước nhóm kết nối ứng dụng Rails, tránh các vấn đề kích thước nhóm tối đa
- 27. Kích thước của tệp được tải lên
- 28. Bash - Danh sách và sắp xếp tệp và kích thước của chúng và theo tên và kích thước
- 29. MPI_Recv: Nhận kích thước khác với kích thước được gửi
- 30. MongoDB: kích thước kết quả truy vấn lớn hơn kích thước bộ sưu tập