我正在设置Hbase群集,但遇到了问题。当我将数据写入集群时,某些节点仍然为空。
Hbase状态屏幕:
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
答案 0 :(得分:0)
Hbase在区域中写入数据,其中每个区域都是基于排序键的行的集合。当达到区域限制时,HBase将区域分为2个区域,当第二个区域达到限制时,HBase将其再次分割。每个区域都分配给一个区域服务器(Datanode)。
因此您的表没有足够多的区域来使用所有节点。因此,为了在节点之间平衡数据,您可以在创建表时预先拆分表。 Hbase Table Pre-split
还请阅读有关HBase热点问题的信息,这样您将获得更多了解。