我有一个 Hadoop MapReduce 作业,其输出是一个 row-id 以及对该 row-id 的 Put/Delete 操作。由于问题的性质,输出量相当大。我们尝试了几种方法将这些数据取回 HBase,但都失败了...
表格 reducer
这是减慢速度的方式,因为它似乎必须对每一行进行一次完整的往返。由于我们的 reducer 步骤的键排序方式,row-id 不太可能与 reducer 在同一节点上。
完成批量加载
这似乎需要很长时间(永远不会完成)并且没有真正说明原因。 IO 和 CPU 使用率都非常低。
我是否漏掉了一些明显的东西?
最佳答案
我从你对自己的回答中看到你解决了你的问题,但为了完整起见,我会提到还有另一种选择——直接写入 hbase。我们有一个设置,我们将数据流式传输到 HBase 中,并通过适当的键和区域拆分,每个节点每秒获得超过 15,000 条 1K 记录
关于hadoop - 将大量 reducer 输出写入 HBase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21742870/