为什么hbase不使用集群中的所有节点?

lqfhib0f  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(378)

我正在设置一个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
sxissh06

sxissh061#

hbase在区域中写入数据,其中每个区域是基于排序键的行集合。当您达到区域限制时,hbase将该区域拆分为2个区域,当第2个区域达到限制时,将其再次拆分。每个区域都分配给一个区域服务器(datanode)。
因此您的表没有使用所有节点的那么多区域。因此,要在节点间平衡数据,您可以在创建表时预先拆分表。hbase表预拆分
另外,请阅读有关hbase热点问题的文章,以便进一步了解。

相关问题