2011-08-30 56 views
2

这似乎是一个非常常见的用例,但在Hadoop中很难做到这一点(可能使用WholeFileRecordReader类)。 Dumbo或Pig都可能吗? 有谁知道使用Dumbo或Pig处理整个文件为地图任务的方法吗?使用Python代码处理Hadoop中的整个文件(最好在Dumbo中)

+0

谢谢你的回答。阅读Hadoop中的文件拆分,我发现标准拆分大小为64 MB。我的文件很小(几百KB),并装入HAR中。这是否意味着他们不会分裂,并且实际上是每个地图任务处理一个?甚至几个地图任务(因为HAR)? – jan

+0

不,har不会减少地图的数量。您需要使用MultiFileInputSplit。如果您使用Pig,Pig会自动合并从0.8开始的小文件(http://pig.apache.org/docs/r0.9.0/perf.html#combine-files)。 –

回答

0

WholeFileRecordReader是否意味着不分割输入文件?如果是这样,将mapred.min.split.size定义为一个非常大的值,mapreduce和Pig都会采用它。

+0

谢谢。这听起来很简单,但我需要在哪个节点上设置它(我正在使用远程Hadoop集群)? – jan

0

我假设你想有一个文件在猪的记录上。如果没有,请在你的问题中更具体。

我不知道一次加载整个文件的Pig存储加载器(在标准分发版或Piggybank中)。我建议你写自己的Pig custom loader,这相对容易。