Hbase-1.1.2 HRegionServer全部挂掉的报错信息图片及解决办法

1、集群环境

集群环境:三台机器,每台2g内存,安装了handoop2.2.0,Hbase1.1.2.

数据源:4G的tar.gz包,里面是zip包,zip包里面是txt文件。压缩包解析、插入hbase代码已经用java实现了

2、hbase配置

hbase.site.xml

<configuration>
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://master1:8020/hbase</value> >
        </property>
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
        <property>
                <name>hbase.master</name>
                <value>hdfs://master1:60000</value>
       </property>
       <property>
               <name>hbase.zookeeper.quorum</name>
               <value>master1,pc2,pc3</value>
       </property>
</configuration>

3、java代码

插入hbase–java代码

Configuration cfg = HbaseConfiguration.create();
Connnection conn = ConnectionFactory.createConnection();
Table table = conn.getTable(TableName.valueOf("table_name"));

List<Put> list = new ArrayList<Put>();
while(......){
    Put  put = new Put(...);
    ...........
    list.add(put);
}
table.put(list);

我使用的是hbase1.1.2自带的zookeeper,没有另外安装
hbase-env.sh
export HBASE_MANAGES_ZK = true

当数据量小的时候(我自己打了一个几十M的tar包),程序时可以跑完。
当把4G的压缩包放到程序中运行时,大概2-3个小时后,程序就不动了,不报错,也不往下执行。查看Hbase之后发现,hbase集群上Master和slave节点的HRegionServer都挂了,其他的都在。

4、报错信息

我查看了master节点上的hbase-hadoop2-regionserver-master1.log文件,发现在程序运行过程中还是有不好报错的,由于刚开始学习,解决器这些问题比较困难,现将主要报错贴出来,求大神帮忙看看。报错是按日志中的顺序贴的,有些问题是重复的,就没有重复贴出。
Hbase-1.1.2 HRegionServer全部挂掉的报错信息图片及解决办法_第1张图片

Hbase-1.1.2 HRegionServer全部挂掉的报错信息图片及解决办法_第2张图片

这里写图片描述

Hbase-1.1.2 HRegionServer全部挂掉的报错信息图片及解决办法_第3张图片

Hbase-1.1.2 HRegionServer全部挂掉的报错信息图片及解决办法_第4张图片

Hbase-1.1.2 HRegionServer全部挂掉的报错信息图片及解决办法_第5张图片

Hbase-1.1.2 HRegionServer全部挂掉的报错信息图片及解决办法_第6张图片

Hbase-1.1.2 HRegionServer全部挂掉的报错信息图片及解决办法_第7张图片

Hbase-1.1.2 HRegionServer全部挂掉的报错信息图片及解决办法_第8张图片

Hbase-1.1.2 HRegionServer全部挂掉的报错信息图片及解决办法_第9张图片

Hbase-1.1.2 HRegionServer全部挂掉的报错信息图片及解决办法_第10张图片

Hbase-1.1.2 HRegionServer全部挂掉的报错信息图片及解决办法_第11张图片

Hbase-1.1.2 HRegionServer全部挂掉的报错信息图片及解决办法_第12张图片

Hbase-1.1.2 HRegionServer全部挂掉的报错信息图片及解决办法_第13张图片

Hbase-1.1.2 HRegionServer全部挂掉的报错信息图片及解决办法_第14张图片

这里写图片描述

5、问题分析

机器配置太低了。首先hbase内存至少要12G以上开给JVM, CMS回收,解决JVM hang问题。台数得根据自己的业务需求压力测试,评估负载。用途不一样,优化方向不一向发生的问题第一个是memstore, 第二个是compaction. 第三个JVM hang.memstore, compaction优化后的参数。当然,环境不一样,参数不一定适合,以下给个思路。下面是一个高并发,数据本身小的参数优化。

<!-- memstore --> 
<property><name>hbase.regionserver.global.memstore.upperLimit</name>    <value>0.2</value><!-- default:0.4 -->  
</property> 

<property>    <name>hbase.regionserver.global.memstore.lowerLimit</name>    <value>0.15</value><!-- default:0.38 -->  
</property>

<property>   
<name>hbase.regionserver.optionalcacheflushinterval</name>    <value>3600000</value><!-- 1 hour, default: 1 hour -->   </property>  

<property>
<name>hbase.hregion.memstore.mslab.chunksize</name>    <value>2097152</value>  
</property>  

<property>    <name>hbase.hregion.memstore.mslab.max.allocation</name>    <value>1024768</value>  
</property> 

<!-- compaction -->
<property>
<name>hbase.hregion.majorcompaction</name>    <value>86400000</value><!-- 1 day, default:7 days -->  </property>  

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

<property>    
<name>hbase.hstore.compaction.max</name>   
<value>10</value><!-- default: 10 -->  
</property>  

<property>    
<name>hbase.hstore.blockingStoreFiles</name>  
<value>30</value><!-- default: 10 -->  
</property>  

<property>    <name>hbase.regionserver.thread.compaction.large</name>    <value>2</value><!-- default: 1 -->  
</property>

“`
以上是针对配置较低的Hbase集群做出的优化,最根本的是提高集群的配置。

你可能感兴趣的:(java,hbase)