当我们将mr作业与hdfs输入/输出一起使用时,mr作业表现为事务性的,即它成功执行,或者在写入hdfs的失败数据被回滚的情况下,我们不会得到部分结果,比如说,10行中有3行出现在输出中。
但当我们在hbase上运行相同的mr作业时,它的行为是非事务性的,即如果我必须将10个对象放入htable,然后调用 context.write(...)
3次,在第4次迭代中失败,然后我可以看到hbase中有3个put,尽管mr job失败了。
有没有什么方法可以让我们在hbase上进行事务mr作业?i、 e.要么将整个输出写入hbase,要么不将任何输出写入hbase。
提前谢谢。
暂无答案!
目前还没有任何答案,快来回答吧!