我安装了一个三台的hbase集群,
HMaster内存8G,
HRegionServer的内存为32G,
单个Region大小上限为1G,
单个RegionServer的Region上限为1000
然后写了简易代码做入库,使用20个线程不间断的获取文件做入库,初期入库速度总体为9万条/秒,后期速度降低到6万条/秒,目前已入库数据量为300亿(单个表)。
问题来了,我从hbase的16010前台查看信息,发现其中有一台服务器的【Read Request Count】特别高,而其他两台服务器的【Read Request Count】基本等于没有,这是为什么呢。
下面是16010界面的截图:
(本来其他两台服务器的数字都是0的,现在显示的数字,是我进行了几千次的查询测试)
后面我再附上hbase的配置文件:
hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_121
export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=8192m -XX:MaxPermSize=8192m"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=32768m -XX:MaxPermSize=32768m"
export HBASE_MANAGES_ZK=false
export HBASE_PID_DIR=/home/hadoop/hbase-1.2.2/pid
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/Linux-amd64-64/:/home/hadoop/snappy-1.1.3/lib
export HBASE_LIBRARY_PATH=$HBASE_LIBRARY_PATH:$HBASE_HOME/lib/native/Linux-amd64-64/:/home/hadoop/snappy-1.1.3/lib
hbase-size.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://ns/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>SV37,SV38,SV39</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/data/zookeeper/data</value>
</property>
<property>
<name>zookeeper.znode.parent</name>
<value>/hbase</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>SV37:60000</value>
</property>
<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
<description>Time difference of regionserver from master</description>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>180000</value>
</property>
<!--调优-->
<property>
<name>hbase.regionserver.handler.count</name>
<value>60</value>
</property>
<property>
<name>hbase.hregion.max.filesize</name>
<value>1073741824</value>
</property>
<property>
<name>hbase.hregion.memstore.block.multiplier</name>
<value>3</value>
</property>
<property>
<name>hbase.hregion.memstore.flush.size</name>
<value>268435456</value>
</property>
<!-- 禁用compact
<property>
<name>hbase.hregion.majorcompaction</name>
<value>0</value>
</property>
-->
<property>
<name>hbase.hstore.blockingStoreFiles</name>
<value>2100000000</value>
</property>
<property>
<name>dfs.socket.timeout</name>
<value>6000000</value>
</property>
<property>
<name>dfs.datanode.socket.write.timeout</name>
<value>6000000</value>
</property>
</configuration>