Hi All,

I'm a newbie against Hbase. When I use YCSB to load data into Hbase, the 
compaction in two cluster looks different.

DEV: 6 nodes. A and B are master and standby for HDFS and Hbase. C/D/E/F are 
the HDFS datanode and regionservers.

PROD: 8 nodes. A and B are master and standby for HDFS and Hbase. C/D/E/F/G/H 
are the HDFS datanode and regionservers.

Network is 1000mbs.

Hadoop: 2.7.3

Hbase: 1.2.6

JDK:1.8

Zookeep: install on C/D/E



In DEV, I notice the compaction 4G files are about 30 seconds; however, it 
tooks about 30 seconds to process 400MB files in PROD.

For example, this is logs from one node of DEV:

2018-08-10 16:30:47,535 INFO  
[regionserver/node103/172.28.200.103:16020-shortCompactions-1533803656579] 
regionserver.HStore: Completed compaction of 6 file(s) in family of 
usertable_nosplit,,1533878791857.be420543a609c32475386855dee93a82. into 
abe3a5c0dbbd4708ae2523f9b4a53ad8(size=1.4 G), total size for store is 4.0 G. 
This selection was in queue for 0sec, and took 18sec to execute.


This is from PROD:

2018-08-17 23:29:28,751 INFO  
[regionserver/YJB-HADOOP-74-23/192.168.74.23:16020-shortCompactions-1534519629607]
 regionserver.HStore: Completed compaction of 3 (all) file(s) in family of 
usertable_nosplit,,1534518587365.95595277af1c56260b85de113c9687f1. into 
934669bf6a8a407aa6ee385439c4a7b5(size=430.8 M), total size for store is 430.8 
M. This selection was in queue for 0sec, and took 30sec to execute.


I thought this might be a problem of GC. So I change to use CG1 with this 
article "https://product.hubspot.com/blog/g1gc-tuning-your-hbase-cluster"; . The 
performance improve a little, not to good.


Is there any suggestion to find out what causes the problem and improve the 
performance?


BTW: I'm not sure what kind information can help so I attach my hbase-site.xml 
and hbase-env.sh first.

BTW2: to use GC1 against regionserver, I create a speraeted hbase-env.sh for 
regionserver.


Thanks,

Dillon

Attachment: hbase-env(regionserver).sh
Description: hbase-env(regionserver).sh

Attachment: hbase-env(master).sh
Description: hbase-env(master).sh

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
/**
 *
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-->
<configuration>
        <property>
            <name>hbase.rootdir</name>
            <value>hdfs://HaHdfs/apps/hbase/data</value>
        </property>

        <property>
            <name>hbase.cluster.distributed</name>
            <value>true</value>
        </property>

        <property>
            <name>hbase.master</name>
            <value>16000</value>
        </property>

        <property>
            <name>hbase.tmp.dir</name>
            <value>/opt/app/hbase/tmp</value>
        </property>

        <property>
            <name>hbase.zookeeper.quorum</name>
            <value>YJB-HADOOP-74-23,YJB-HADOOP-74-24,YJB-HADOOP-74-25</value>
        </property>

        <property>
            <name>hbase.zookeeper.property.dataDir</name>
            <value>/opt/app/zookeeper-3.4.9/data</value>
        </property>

        <property>
            <name>hbase.zookeeper.property.clientPort</name>
            <value>2181</value>
        </property>

        <property>
            <name>zookeeper.session.timeout</name>
            <value>120000</value>
        </property>

        <property>
            <name>hbase.regionserver.restart.on.zk.expire</name>
            <value>true</value>
        </property>


<property>
<name>hbase.ipc.server.callqueue.handler.factor</name>
<value>0.5</value>
</property>

<property>
<name>hbase.regionserver.region.split.policy</name>
<value>org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy</value>
</property>

<property>
<name>hbase.regionserver.handler.count</name>
<value>30</value>
</property>
<property>
<name>hbase.hregion.memstore.flush.size</name>
<value>268435456</value>
</property>

<property>
<name>hbase.hstore.compaction.max</name>
<value>20</value>
</property>

<property>
<name>hbase.hstore.compaction.min</name>
<value>3</value>
</property>

<property>
<name>hbase.hstore.compaction.min.size</name>
<value>268435456</value>
</property>
</configuration>

Reply via email to