Tôi có một loạt tệp nhỏ trong thư mục HDFS. Mặc dù khối lượng tệp tương đối nhỏ, lượng thời gian xử lý cho mỗi tệp là rất lớn. Tức là, tệp 64mb
, là kích thước phân chia mặc định cho TextInputFormat
, sẽ mất vài giờ để xử lý.Thay đổi kích thước Tách tệp trong Hadoop
Những gì tôi cần làm, là giảm kích thước chia, để tôi có thể sử dụng nhiều nút hơn cho công việc.
Vì vậy, câu hỏi đặt ra là làm cách nào để chia nhỏ tệp bằng cách giả sử 10kb
? Tôi có cần triển khai InputFormat
và RecordReader
cho riêng mình hay không hoặc có bất kỳ thông số nào để đặt không? Cảm ơn.
dfs.block.size không nhất thiết là toàn cầu; bạn có thể đặt các tệp cụ thể để có kích thước khối khác với kích thước mặc định cho hệ thống tệp của bạn. Tôi đồng ý rằng mapred.max.split.size có lẽ là cách để đi trong trường hợp này, mặc dù. – ajduff574
['mapred.max.split.size' không được chấp nhận. Tên thuộc tính mới là 'mapreduce.input.fileinputformat.split.maxsize'] (https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/DeprecatedProperties.html). Tôi cũng tìm thấy [câu trả lời này] (https://stackoverflow.com/questions/19188315/behavior-of-the-parameter-mapred-min-split-size-in-hdfs) rất hữu ích để điều chỉnh kích thước phân chia đầu vào. –