繁体   English   中英

将高容量减速器输出写入HBase

[英]Writing high volume reducer output to HBase

我有一个Hadoop MapReduce作业,其输出是一个row-id,对该行id具有Put / Delete操作。 由于问题的性质,输出量相当高。 我们已经尝试了几种方法将这些数据恢复到HBase并且它们都失败了......

表减速机

这是缓慢的方式,因为它似乎必须为每一行进行完整的往返。 由于键对我们的reducer步骤进行排序,因此row-id不可能与reducer在同一节点上。

completebulkload

这似乎需要很长时间(永远不会完成),并且没有真正的迹象表明原因。 IO和CPU都显示出非常低的使用率。

我错过了一些明显的东西吗

我从你的回答中看到你解决了你的问题但是为了完整性我会提到另一种选择 - 直接写入hbase。 我们有一个设置,我们将数据流式传输到HBase,并通过适当的密钥和区域分割,我们得到每个节点每秒超过15,000个1K记录

CompleteBulkLoad是正确的答案。 每个@DonaldMiner我深入挖掘并发现CompleteBulkLoad进程作为“hbase”运行,在尝试移动/重命名/删除源文件时导致权限被拒绝错误。 在给出错误消息之前,该实现似乎重试了长时间; 在我们的案例中长达30分钟。

为hbase用户提供对文件的写访问权解决了该问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM