我在hadoop web UI上看到了关于地图任务的信息
Total Length = 67108863
Input split[0]:
Length = 48334
Locations:
-----------------------
Input split[1]:
Length = 48334
Locations:
-----------------------
Input split[2]:
Length = 48304
Locations:
...
-----------------------
Input split[2010]:
Length = 23388
Locations:
-----------------------
Input split[2011]:
Length = 23383
Locations:
-----------------------
我使用猪,我知道猪将小输入文件结合到pig.maxCombinedSplitSize以提高效率
好的......但在我看来,猪执行引擎'排序'所有输入文件的大小,并将它们组合到64mb块以进行地图任务。
我认为这会导致一个大问题,因为我目前有数百万个测试数据文件和真实服务器中的数亿个文件,因为系统开发人员当时并没有考虑使用hadoop的可能性。
没有办法将真实服务器中的小输入文件组合在一起,所以我必须以某种方式用PIG来实现。我认为排序过程绝对没必要,应该删除。所以我现在正试图找到PIG源代码中存在该进程的位置,但很难做到这一点。
有人知道为什么PIG在组合时对小输入文件进行排序,以及源代码的那部分是什么?
答案 0 :(得分:0)
你是对的,猪按大小对输入文件进行排序 - 我不确定为什么会这样做。为什么不合并Hadoop w / o pig中的文件?此处列出了一些选项:http://jugnu-life.blogspot.com/2013/01/merging-small-files-in-hadoop.html