hadoop—如何提高recordwriter的写入性能

zf2sa74q  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(276)

有人能帮我找到正确的api来提高写性能吗?
我们使用 MultipleOutputs<ImmutableBytesWritable, Result> 类来写入从表中读取的数据,我们使用新创建的文件作为备份。在write-using中我们面临性能问题 MultipleOutputs ,我们每写10000条记录就需要5秒钟。
这是我们使用的代码:

Result[]  results = // result from another table
  MultipleOutputs<ImmutableBytesWritable, Result>  mos = new MultipleOutputs<ImmutableBytesWritable, Result> ();
  for(Result res : results ){
    mos.write(new ImmutableBytesWritable(result.getRow()), result, baseoutputpath);
  }

我们得到一批10000行,并将它们写在一个循环中,使用 baseoutputpath 变化取决于 Result 内容。
我们在写作时面临着性能下降的问题 MultipleOutputs ,我们怀疑这可能是由于在循环中写入。
maprdb或hbase中是否有其他api通过缓冲到一定的限制,使用较少的rpc调用将数据推送到数据库。
我们将数据作为记录写入,因此没有文件系统写入类可以为我们工作。
请注意,我们使用mapreduce job来完成上述所有工作。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题