我有一个包含3个节点的小型集群,Hbase部署在所有3个节点上。 似乎在将数据写入Hbase集群时,一切似乎最初都会转到同一个节点。
以下是我的相关hbase-site.xml
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://server1:8020/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>server1,server2,server3</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/hadoop/zookeeper</value>
</property>
区域服务器日志始终显示文件已添加到同一
2016-10-28 15:31:07,990 INFO [MemStoreFlusher.0] regionserver.HStore:
Added hdfs://server1
2016-10-28 15:31:19,195 INFO [MemStoreFlusher.0] regionserver.HStore: Added
hdfs://server1
我希望有人可以对此提供一些见解。
答案 0 :(得分:1)
您的hbase.rootdir属性表示您的所有数据都存储在HDFS中的特定节点中(在/ hbase下)。
您可能希望通过为群集定义名称服务来为HDFS配置HA,并将hbase.rootdir设置为类似
的内容<property>
<name>hbase.rootdir</name>
<value>hdfs://yournameservice/hbase</value>
</property>
有关详细信息,请参阅here。
HBase中的平衡数据分布还取决于您的行键设计。错误的行键设计可能会产生热点。