【问题标题】:Why Hbase doesn't use all nodes in the cluster?为什么 Hbase 不使用集群中的所有节点?
【发布时间】:2019-06-25 12:57:34
【问题描述】:

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

Hbase 状态屏幕:

Dfshealth 屏幕:

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>

node-master regionservers(hadoop worker 相同)

node1
node2
node3
node4
node5
node6

【问题讨论】:

    标签: hadoop hbase


    【解决方案1】:

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

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

    也请阅读HBase热点问题,你会得到更多的了解。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-02
      • 1970-01-01
      • 2021-12-04
      • 2016-11-23
      • 2020-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多