Hadoop文件拆分:CompositeInputFormat:内部联接

The*_*Hat 3 hadoop split mapreduce microsoft-distributed-file-system

我正在使用CompositeInputFormat为hadoop作业提供输入.

生成的拆分数是作为CompositeInputFormat(用于连接)的输入而给出的文件总数.

该作业完全忽略了块大小和最大分割大小(从CompositeInputFormat获取输入时).这导致长时间运行的Map Tasks,并且由于输入文件大于块大小而使系统变慢.

是否有人知道可以通过哪种方式管理CompositeInputFormat的拆分数量?

Don*_*ner 6

不幸的是,CompositeInputFormat必须忽略块/分割大小.在CompositeInputFormat中,输入文件需要进行相同的排序和分区...因此,Hadoop无法确定在何处拆分文件以维护此属性.它无法确定拆分文件的位置以保持文件的有序性.

解决此问题的唯一方法是手动拆分文件并将其分区为较小的拆分.您可以通过mapreduce作业(可能只是身份映射器和身份缩减器)传递数据,并使用更多的Reducer.只需确保通过相同数量的reducer传递两个数据集.