我有 3 位数 GB 甚至 1 或 2 位数 TB 的数据集。因此,输入文件是一个文件列表,每个文件大小为 10GB。我在 hadoop 中的 map reduce 作业处理所有这些文件,然后只提供一个输出文件(带有汇总信息)。
我的问题是:
从 Apache 调整 hadoop/mapreduce 框架的合适文件大小是多少?我听说大文件比小文件更受欢迎。有什么想法吗?我唯一确定的是 hadoop 读取块,每个块默认为 64MB。因此,如果文件大小是 64MB 的乘数,那就太好了。
目前,我的应用程序只将输出文件写入一个文件。文件大小当然是 3 位千兆位。我想知道如何有效地对文件进行分区。当然,我可以只使用一些 unix 工具来完成这项工作。但是最好直接在hadoop中执行此操作吗?
谢谢你的评论!
PS:我没有压缩文件。输入文件的文件格式为 text/csv。