我正在使用 CompositeInputFormat 为 hadoop 作业提供输入。
生成的分割数是作为 CompositeInputFormat(用于连接)输入的文件总数。
该作业完全忽略块大小和最大拆分大小(同时从 CompositeInputFormat 获取输入)。这会导致映射任务长时间运行,并且由于输入文件大于块大小而导致系统变慢。
有谁知道可以通过什么方式来管理 CompositeInputFormat 的拆分数量?
不幸的是,CompositeInputFormat 必须忽略块/分割大小。在 CompositeInputFormat 中,输入文件需要进行相同的排序和分区...因此,Hadoop 无法确定在哪里分割文件以维护此属性。它无法确定在哪里分割文件以保持文件组织有序。
解决此问题的唯一方法是手动将文件拆分并分区为更小的分区。您可以通过使用大量缩减器的映射缩减作业(可能只是身份映射器和身份缩减器)传递数据来实现此目的。只要确保使用相同数量的减速器传递两个数据集即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)