我已经写了一个mapreduce作业,可以处理一些protobuf文件作为输入。由于文件的性质(不可发布),每个文件都由一个Map器(实现了一个自定义Map器)处理 FileInputFormat
与 isSplitable
设置为 false
). 当输入文件大小小于 ~680MB
但是,一旦输入文件大小超过该限制,应用程序将成功完成,但会生成一个空文件。
我想知道我是否达到了Map器的文件大小限制?如果有关系的话,这些文件存储在google存储(gfs)上,而不是hdfs上。
谢谢!
1条答案
按热度按时间wsewodh21#
原来我碰到了这里讨论的一个著名的hadoop bug。这里的问题是
BytesWritable
类,用于编写protobuf文件。在习俗中RecordReader
我以前做过默认情况下,错误会将最大内容大小设置为integer.max\u size/3,即~680mb。为了解决这个问题,我必须手动设置容量(我的最大大小)
在我之前
value.set()
.希望这能帮助别人!