是否可以让 Pig 使用一个映射器处理多个小文件(假设这样做会提高工作速度)。我们有一个问题,hdfs 中有数千个小文件,而 pig 创建了数百个映射器。Pig 是否提供了一个简单的(全部或部分)解决方案来解决这个问题?
问问题
802 次
2 回答
2
您可以利用这些属性将这些多个文件合并到一个文件中,以便它们由单个映射处理:
- pig.maxCombinedSplitSize – 指定单个映射要处理的数据大小(以字节为单位)。较小的文件被合并,直到达到这个大小。
- pig.splitCombination – 打开或关闭合并拆分文件(默认设置为“true”)。
此功能适用于 PigStorage,无需编写任何自定义加载器。更多信息可以在这里找到。
高温高压
于 2013-07-09T19:17:01.350 回答
1
Hadoop 中具有大量小文件的常用方法是将它们聚合成大型 Sequence 或 Avro 文件,然后使用各自的存储函数来读取它们。对于 Pig 和 Avro,请查看AvroStorage
于 2013-07-11T07:16:34.193 回答