Hbase Thrift集群问题总结(1)

原创 2018年04月13日 16:43:02

Hbase thrift 1 问题汇总

Hbase thrift 启动线程池:./bin/hbase thrift start -threadpool , 报下面的错误:

Exception in thread "thrift-worker-103" java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:713)
at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:949)
at java.util.concurrent.ThreadPoolExecutor.processWorkerExit(ThreadPoolExecutor.java:1017)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1163)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

原因:
系统线程数太少,增加nproc线程数

修改/etc/security/limits.conf 中指定用户的线程最大个数

*    soft    nofile    65536
*    hard    nofile    65536
xxx soft nproc  65535
xxx hard nproc  65535
xxx soft stack  1024
xxx hard stack  1024

xxx是hbase运行的用户。

同时可以调整服务所占内存的最小/最大值,具体数值根据硬件配置而定。

修改hbase/conf/hbase-env.sh配置文件:

export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS $HBASE_JMX_BASE -Xmx20g -Xms10g -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS $HBASE_JMX_BASE -Xmx20g -Xms10g  -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps"
export HBASE_THRIFT_OPTS="$HBASE_THRIFT_OPTS $HBASE_JMX_BASE -Xms10g -Xmx20g"
export HBASE_HEAPSIZE=8000

这里把Master、Region Server、Thrift的内存大小都改为:10g、20g

堆大小改为80g

把所有的hbase节点都做了同样的修改。

重启服务后,问题解决。可以通过ps -ef | grep master进程号 看到内存确实由之前的默认1g改为10g了。

Thrift服务启动有两种方式:
1. 每个节点上启动thrift服务

./bin/hbase-daemon.sh start thrift
  1. 仅在Master上启动线程池服务
./bin/hbase thrift start -threadpool

由于系统Hbase集群节点数很多,第二种方式更简单些

其他的优化配置还包括:超时时间间隔、最小/最大 thrift工作线程等,都在hbase-site.xml中:

<property>
        <name>hbase.regionserver.handler.count</name>
        <value>400</value>
    </property>
    <property>
            <name>hbase.thrift.minWorkerThreads</name>
                <value>1000</value>
        </property>
    <property>
            <name>hbase.thrift.maxWorkerThreads</name>
                <value>2000</value>
        </property>
    <property>
             <name>hbase.thrift.server.socket.read.timeout</name>
             <value>6000000</value>
             <description>eg:milisecond</description>
     </property>
    <property>
             <name>hbase.regionserver.thrift.maxreadlength</name>
             <value>0</value>
             <description>0:not check data length</description>
     </property>

其他优化,还需要调整系统的打开文件数、栈大小等。

ulimit -a

参考:
https://blog.csdn.net/wolf_soul/article/details/62045732

https://blog.csdn.net/lulynn/article/details/46415805

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wwlhz/article/details/79931211

HBase 单台服务器启动多个 thrift 服务

两种应用场景: 1.单台服务器上启动多个thrift作为单个HBase集群客户端 2.单台服务器上启动多个thrift作为多个HBase集群客户端...
  • zqfzxm
  • zqfzxm
  • 2015-06-03 18:39:19
  • 2104

【hbase】thrift2 集群 && 指定端口

说明: 1. 通过--config可以指定多个集群(copy 不同集群的配置文件至该服务器不同目录) 2. 通过-p可以指定不同的端口(不适用该参数,端口默认为9095) 3. 和thrift端口相关...
  • kelonsen
  • kelonsen
  • 2017-11-08 12:04:43
  • 382

thrift2访问hbase

使用thrift2访问hbase需求与环境项目中需要使用c++访问hbase批量导入数据,所以这两天配置了一个hadoop集群,安装了hadoop,zookeeper,hbase。 使用三台虚拟机,...
  • zhenyangzhijia
  • zhenyangzhijia
  • 2015-06-02 20:34:13
  • 4937

ambari 安装hbase thrift2服务

hbase thrift 服务
  • yinzhiqing
  • yinzhiqing
  • 2016-07-18 16:47:39
  • 905

python通过thrift连接Hbase

安装python 安装thrift 生成接口文件 启动thrift服务 运行test
  • UmbrellaCheng
  • UmbrellaCheng
  • 2016-07-07 09:56:18
  • 1873

Thrift介绍与应用(三)—hbase的thrift接口

一、概述 Hbase是目前比较火的列存储数据库,由于Hbase是用Java写的,因此它原生地提供了Java接口,对非Java程序人员,怎么办呢?幸好它提供了thrift接口服务器,因此也可以采用其他...
  • guxch
  • guxch
  • 2013-09-29 14:43:51
  • 39175

hbase的thriftserver开启

要使用Hbase的thrift接口,必须将它的服务启动,命令行为: hbase-deamon.sh start thrift2 thrift默认的监听端口是9090,可以用netstat -nl | ...
  • jiangheng0535
  • jiangheng0535
  • 2013-09-27 12:44:59
  • 4506

HBase thrift/thrift2 使用指南

HBase thrift/thrift2 使用指南 摘要: Thrift server简介 Thrift server是HBase中的一种服务,主要用于对多语言API的支持。基于Apache T...
  • javastart
  • javastart
  • 2017-05-24 19:31:23
  • 4449

Hbase集群运维及应用性能优化总结(hbase1.20+)

(一). 操作系统              1. 足够大的内存       2. 操作系统64位,jdk64位       3. 设置linux swap空间的swappin...
  • xiaolang85
  • xiaolang85
  • 2017-08-18 16:20:53
  • 1174

HBase & thrift & C++编程

目录 目录 1 1. 前言 1 2. 启动和停止thrift2 1 2.1. 启动thrift2 1 2.2. 停止thrift2 1 2.3. 启动参数 2 3. hbase.thrift 2 3....
  • Aquester
  • Aquester
  • 2016-01-27 16:11:59
  • 1940
收藏助手
不良信息举报
您举报文章:Hbase Thrift集群问题总结(1)
举报原因:
原因补充:

(最多只允许输入30个字)