HBase-Mapreducer,使用TableReducer时reducer的最佳数量

HBase-Mapreducer, optimal number of reducers when using TableReducer

我们正在使用Map reduce 将数据写入HBase。由于我们需要完成一些格式化,因此我们通过扩展 TableReducer 实现了我们自己的 reducer。这个自定义减速器在生产和开发环境中表现不同。出现以下错误

错误:org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException:659 次操作失败:RegionTooBusyException:659 次,

here,我了解到冲洗没有正确完成。但是,在开发环境中同样可以正常工作。

除了上述选项外,我觉得配置减速器的数量也可能会影响向区域服务器发送多少数据。

我们正在使用盐来跨越区域服务器之间的行键。截至目前,salt 为 20m,region servers 的数量为 60。是否应该选择 salt 等于 region servers 的数量以均匀分布记录?如果不是,如何在将数据加载到 Hbase 时确定 reducer 数量的最佳值。

此外,一般来说,客户端允许与 Hbase 交互的最大连接数是多少。这里,我们使用的是API提供的Map reducer,但一般来说,我们处理客户端连接到Hbase,最大客户端连接数可以起到重要作用。在此先感谢您的帮助

Hbase-mapreduce API 本身将决定 reducer 的数量等于区域服务器的数量。 This,代码库证实了这一点。所以,问题是,当我们编写 map reduce 时,我们给 reducer 的数量一个值,这与默认值不同。所以,看起来,这里的默认值应该很好用,除非我们有特定的要求。