Hadoop Writable接口(interface)依赖"public void write(DataOutput out)"
方法。看起来好像是在DataOutput接口(interface)的后面,Hadoop使用了DataOutputStream,它在后台使用了一个简单的数组。
当我尝试在化简器的DataOutput中写入大量数据时,我得到:
看来系统无法分配所请求大小的连续数组。
显然,增加可用于 reducer 的堆大小无济于事-它已经为84GB(-Xmx84G)
如果无法减小需要序列化的对象的大小(当化简器通过组合对象数据来构造此对象时),我应该如何解决该问题?
最佳答案
我认为您应该使用 -Xms 例如 -Xms40G 而不是-Xmx84G