Tôi có tập dữ liệu ở mức độ lớn là 3 chữ số GB hoặc thậm chí là 1 hoặc 2 chữ số TB. Các tập tin đầu vào do đó là một danh sách các tập tin, mỗi tập tin có kích thước như 10GB. Bản đồ của tôi giảm bớt công việc trong hadoop xử lý tất cả các tệp này và sau đó chỉ cung cấp một tệp đầu ra (với thông tin tổng hợp).Hadoop MapReduce: Kích thước tệp đầu vào phù hợp?
Câu hỏi của tôi là:
kích thước tập tin thích hợp để điều chỉnh lên khuôn khổ hadoop/MapReduce từ Apache là gì? Tôi nghe rằng kích thước tệp lớn hơn được ưu tiên hơn so với kích thước nhỏ. Có ý tưởng nào không? Điều duy nhất tôi biết chắc chắn là hadoop đọc khối, mỗi khối với 64MB theo mặc định. Vì vậy, nó sẽ là tốt nếu kích thước tập tin là loại nhân 64MB.
Hiện tại, ứng dụng của tôi chỉ ghi tệp đầu ra vào một tệp. Kích thước tệp sau đó là gigabit 3 chữ số. Tôi tự hỏi làm thế nào hiệu quả tôi có thể phân vùng các tập tin. Tất nhiên tôi chỉ có thể sử dụng một số công cụ unix để thực hiện công việc này. Nhưng nó có thích làm điều này trực tiếp hơn trong hadoop không?
Thx cho nhận xét của bạn!
P.S .: Tôi không nén tệp. Định dạng tệp của tệp đầu vào là văn bản/csv.
Nhiều câu hỏi (vui lòng đăng câu trả lời trở lại câu hỏi ban đầu): Bạn có nén các tệp không, nếu bạn đang sử dụng loại nén nào (gzip, bz2, ...)? Định dạng tệp của các tệp đầu vào (văn bản, nhị phân là gì?) –
@Chris: Tôi không nén các tệp. Định dạng tệp của tệp đầu vào là văn bản/csv. Cám ơn! – Bob