Java 如何控制用于读取HBase表的每个区域服务器的映射器数量

Java 如何控制用于读取HBase表的每个区域服务器的映射器数量,java,hadoop,apache-spark,mapreduce,hbase,Java,Hadoop,Apache Spark,Mapreduce,Hbase,我有一个HBase表(通过ApachePhoenix编写),需要读写到平面文本文件。当前的瓶颈是,对于HBase(Phoenix)表,我们有32个盐桶,它只打开32个映射器进行读取。当数据增长超过1000亿时,它就变得非常耗时。有人能告诉我如何控制每个区域服务器用于读取HBase表的映射程序的数量吗?我也看到过在下面的URL中解释的程序,但我并没有一个完整解释的驱动程序。有人能帮忙吗 根据我的观察,表的区域数=框架打开的映射器数 因此,减少区域的数量,从而减少映射器的数量 如何做到这一点: 1)

我有一个HBase表(通过ApachePhoenix编写),需要读写到平面文本文件。当前的瓶颈是,对于HBase(Phoenix)表,我们有32个盐桶,它只打开32个映射器进行读取。当数据增长超过1000亿时,它就变得非常耗时。有人能告诉我如何控制每个区域服务器用于读取HBase表的映射程序的数量吗?我也看到过在下面的URL中解释的程序,但我并没有一个完整解释的驱动程序。有人能帮忙吗

根据我的观察,表的区域数=框架打开的映射器数

因此,减少区域的数量,从而减少映射器的数量

如何做到这一点: 1)为ex 0-9创建时预拆分hbase表。

2)通过在0-9之间生成行前缀,加载这些区域中的所有数据。*

以下是进行拆分的各种方法:

还有,祝你生日快乐

此外,设置映射器的数量并不能保证它将打开这些映射器,它是由输入拆分驱动的

您可以使用
setnummatasks
conf.set('mapred.map.tasks'、'numberofmapperYouwanttoset')
更改映射程序的数量(但这是对配置的建议)


关于您提供的链接,我不知道它是如何工作的,您可以向作者咨询。

Vijay:要减少映射器的数量,您可以通过以下方式减少区域的数量。。它是否完全有效?根据我的经验,它应该有效,请让我知道解决方案是否有效。