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

时间:2019-06-25 12:57:34

标签: hadoop hbase

我正在设置Hbase群集,但遇到了问题。当我将数据写入集群时,某些节点仍然为空。

Hbase状态屏幕:

enter image description here Dfshealth屏幕: enter image description here

  

Hbase 1.4.10,Hadoop 3.1.2

node-master 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 worker相同)

node1
node2
node3
node4
node5
node6

1 个答案:

答案 0 :(得分:0)

Hbase在区域中写入数据,其中每个区域都是基于排序键的行的集合。当达到区域限制时,HBase将区域分为2个区域,当第二个区域达到限制时,HBase将其再次分割。每个区域都分配给一个区域服务器(Datanode)。

因此您的表没有足够多的区域来使用所有节点。因此,为了在节点之间平衡数据,您可以在创建表时预先拆分表。 Hbase Table Pre-split

还请阅读有关HBase热点问题的信息,这样您将获得更多了解。