java—如何控制每个区域服务器上用于读取hbase表的Map器的数量

2skhul33  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(468)

我有一个hbase表(通过apachephoenix编写),需要读写到一个平面文本文件。当前的瓶颈是,hbase(phoenix)表有32个盐桶,它只打开32个Map器来读取。当数据增长超过1000亿时,它就变得非常耗时。有人能告诉我如何控制每个区域服务器读取hbase表的Map器的数量吗?我也看到了一个程序,在下面的网址解释,“https://gist.github.com/bbeaudreault/9788499“但我没有一个驱动程序来充分解释。有人能帮忙吗?

hm2xizp9

hm2xizp91#

根据我的观察,表的区域数=框架打开的Map器数。
因此,减少区域的数量,这将反过来减少Map器的数量。

如何做到这一点:

1) 为ex 0-9创建时预拆分hbase表。
2) 通过在0-9之间生成行前缀来加载这些区域中的所有数据*

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


另外,请看一下apachehbase区域拆分和合并
此外,设置Map器的数量并不能保证它会打开那些Map器,它是由输入拆分驱动的
您可以使用 setNumMapTasks 或者 conf.set('mapred.map.tasks','numberofmappersyouwanttoset') (但这是对配置的建议)。
关于你提供的链接,我不知道这是怎么回事,你可以和作者核实。

相关问题