因此,在使用TableOutputFormat的MapReduce作业写入HBase时,它经常写入HBase。我不认为它为每一行做一个put命令。
在MapReduce中使用时,我们如何控制AutoFlush和Write Ahead Log(WAL)?
答案 0 :(得分:2)
TableOutputFormat禁用AutoFlush并使用hbase.client.write.buffer中指定的写入缓冲区(默认为2MB),一旦缓冲区已满,它将自动刷新为HBase。您可以通过将属性添加到作业配置来更改它:
config.set("hbase.client.write.buffer", 16777216); // 16MB Buffer
默认情况下启用WAL,每次放置都可以禁用它,但通常不鼓励:
myPut.setWriteToWal(false);
答案 1 :(得分:0)
实际上确实看到了the code。如果您想使用HFileOutputFormat see example on gitub
绕过WAL写入