我正在设置一个hbase集群,遇到了一个问题。当我将数据写入集群时,一些节点仍然是空的。
hbase状态屏幕:
dfshealth屏幕:
hbase 1.4.10、hadoop 3.1.2
节点主机hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://node-master:9000/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>hdfs://node-master:9000/zookeeper</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeper.quorum</name>
<value>node-master</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.client.write.buffer</name>
<value>8388608</value>
</property>
<property>
<name>hbase.client.scanner.caching</name>
<value>10000</value>
</property>
</configuration>
节点主区域服务器(hadoop workers相同)
node1
node2
node3
node4
node5
node6
1条答案
按热度按时间sxissh061#
hbase在区域中写入数据,其中每个区域是基于排序键的行集合。当您达到区域限制时,hbase将该区域拆分为2个区域,当第2个区域达到限制时,将其再次拆分。每个区域都分配给一个区域服务器(datanode)。
因此您的表没有使用所有节点的那么多区域。因此,要在节点间平衡数据,您可以在创建表时预先拆分表。hbase表预拆分
另外,请阅读有关hbase热点问题的文章,以便进一步了解。