hiveserver2服务异常停止java.lang.OutOfMemoryError: Java heap space

原创 2017年01月03日 10:52:38
2017-01-02 15:34:04,461 WARN  [IPC Client (188363230) connection to nn01/192.168.1.4:8020 from hive]: ipc.Client (Client.java:run(955)) - Unexpected error reading responses on connection Thread[IPC Client (188363230) connection to nn01.100.cloud/172.16.8.4:8020 from hive,5,main]
java.lang.OutOfMemoryError: Java heap space
    at com.google.protobuf.CodedInputStream.<init>(CodedInputStream.java:573)
    at com.google.protobuf.CodedInputStream.newInstance(CodedInputStream.java:55)
    at com.google.protobuf.AbstractParser.parsePartialFrom(AbstractParser.java:199)
    at com.google.protobuf.AbstractParser.parsePartialDelimitedFrom(AbstractParser.java:241)
    at com.google.protobuf.AbstractParser.parseDelimitedFrom(AbstractParser.java:253)
    at com.google.protobuf.AbstractParser.parseDelimitedFrom(AbstractParser.java:259)
    at com.google.protobuf.AbstractParser.parseDelimitedFrom(AbstractParser.java:49)
    at org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcResponseHeaderProto.parseDelimitedFrom(RpcHeaderProtos.java:2364)
    at org.apache.hadoop.ipc.Client$Connection.receiveRpcResponse(Client.java:1055)
    at org.apache.hadoop.ipc.Client$Connection.run(Client.java:949)
2017-01-02 15:34:03,365 FATAL [Thread-51]: thrift.ThriftCLIService (ThriftBinaryCLIService.java:run(91)) - Error starting HiveServer2: could not start ThriftBinaryCLIService
java.lang.OutOfMemoryError: Java heap space
    at java.io.BufferedOutputStream.<init>(BufferedOutputStream.java:76)
    at org.apache.thrift.transport.TSocket.<init>(TSocket.java:78)
    at org.apache.thrift.transport.TServerSocket.acceptImpl(TServerSocket.java:114)
    at org.apache.thrift.transport.TServerSocket.acceptImpl(TServerSocket.java:35)
    at org.apache.thrift.transport.TServerTransport.accept(TServerTransport.java:31)
    at org.apache.thrift.server.TThreadPoolServer.serve(TThreadPoolServer.java:121)
    at org.apache.hive.service.cli.thrift.ThriftBinaryCLIService.run(ThriftBinaryCLIService.java:86)
    at java.lang.Thread.run(Thread.java:745)
2017-01-02 15:34:29,186 INFO  [Thread-50]: server.HiveServer2 (HiveServer2.java:stop(266)) - Shutting down HiveServer2
2017-01-02 15:34:29,186 INFO  [Thread-50]: thrift.ThriftCLIService (ThriftCLIService.java:stop(137)) - Thrift server has stopped
2017-01-02 15:34:29,187 INFO  [Thread-50]: service.AbstractService (AbstractService.java:stop(125)) - Service:ThriftBinaryCLIService is stopped.
2017-01-02 15:34:29,187 INFO  [Thread-50]: service.AbstractService (AbstractService.java:stop(125)) - Service:OperationManager is stopped.
2017-01-02 15:34:29,187 INFO  [Thread-50]: service.AbstractService (AbstractService.java:stop(125)) - Service:SessionManager is stopped.
2017-01-02 15:34:29,188 INFO  [Thread-3]: server.HiveServer2 (HiveStringUtils.java:run(679)) - SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down HiveServer2 at nn02.100.cloud/192.168.1.5

分析及解决:

java.lang.OutOfMemoryError: Java heap space内存溢出报错

This Error happened during connect hiveserver2 via beeline, both happened from hiveserver node and remote node.

heapsize太小了,可以适当的调大些
Root cause, the heapsize of hadoop opts is too small, need to increase the size in hive-env.sh as bold:
if [ "$SERVICE" = "cli" ]; then
   if [ -z "$DEBUG" ]; then
     export HADOOP_OPTS="$HADOOP_OPTS -XX:NewRatio=12 -Xms10m -Xmx12288m -XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:+UseParNewGC -XX:-UseGCOverheadLimit"
   else
     export HADOOP_OPTS="$HADOOP_OPTS -XX:NewRatio=12 -Xms10m -Xmx12288m -XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:-UseGCOverheadLimit"
   fi
fi

# The heap size of the jvm stared by hive shell script can be controlled via:
#
export HADOOP_HEAPSIZE=2048

继续分析查看下进程:

监控语句如下:

jstat -gcutil [进程号] 5000 --每5秒打印一次jvm各个内存区的状态

另外找了一个监控系统内存的语句:

vmstat | sed -n '/[0-9]/p'  


观察2天后发现新生代和老年代都已经爆满,永久代几乎爆满,jvm一直在做full GC,但是没有效果,各个内存区都被占用了。
就日志来看,老年代和持久代的内存只要上去了,就再没有下降过,而当这两块区域饱和后,新生代也出现了这种现象。

是有什么资源没释放吧?一看代码,果然,有的连接没有关闭!

如果还是有问题,hive0.14版本,自身也存在着bug,可以考虑进行定期重启hiveserver2服务,别笑实际工作中很多大的公司都是这样做的。

参考:

http://blog.csdn.net/gklifg/article/details/50418109

http://blog.csdn.net/lulynn/article/details/46455097

版权声明:原创文章,欢迎转载但请备注来源及原文链接

hive-1.2.1配置hiveserver2

hive-1.2.1配置hiveserver2
  • zhangge360
  • zhangge360
  • 2016年07月06日 15:51
  • 1037

Hive学习之HiveServer2服务端配置与启动

在之前的学习和实践Hive中,使用的都是CLI或者hive –e的方式,该方式仅允许使用HiveQL执行查询、更新等操作,并且该方式比较笨拙单一。幸好Hive提供了轻客户端的实现,通过HiveServ...
  • sky_walker85
  • sky_walker85
  • 2014年08月01日 13:49
  • 33434

Hive的hiveserver2后台开启和关闭

前提:hive/bin配置了环境变量。如果没有配置,cd到 hive目录下的bin里,再执行。 开启命令: nohup hive --service hiveserver2 & 产生...
  • zengmingen
  • zengmingen
  • 2017年10月30日 13:57
  • 1377

Java程序运行时报错 Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

最近在做一个工具类,由于读取的数据量比较大,Java程序运行的时候出现Exception in thread "main" java.lang.OutOfMemoryError: Java heap ...
  • rookie_s
  • rookie_s
  • 2016年11月25日 09:30
  • 1078

hadoop的mapreduce作业中经常出现Java heap space解决方案

我们经常遇到这样的问题,内存溢出,内存溢出的原因是很简单,不够用了,不够用该怎么设置,通过水设置。可以参考下面案例 一、hadoop的mapreduce作业中经常出现Java heap space解...
  • xiaoshunzi111
  • xiaoshunzi111
  • 2016年08月10日 16:30
  • 3065

HIVE 语句执行 中报错:Java heap space

1、报错信息 ask with the most failures(4): ----- Task ID:   task_1472873234260_9322_m_000004 URL...
  • lazythinker
  • lazythinker
  • 2016年10月20日 14:17
  • 3546

hiveserver2服务异常停止,报错:java.lang.OutOfMemoryError: Java heap space

错误详情如下: Exception in thread "HiveServer2-Handler-Pool: Thread-956" Exception in thread "HiveServe...
  • u011563666
  • u011563666
  • 2018年01月11日 13:49
  • 51

hadoop hive执行count(*)提示OutOfMemoryError: Java heap space

昨天在把hive部署到hadoop2.0 HA MR1集群中的时候,hive执行count(*)出错,日志为: java.lang.Exception: java.lang.OutOfMemoryEr...
  • sanms
  • sanms
  • 2013年11月15日 15:35
  • 4565

hiveserver 占用内存过大的问题

今天为了求解hiveserver占用内存过大的问题,特地加了hive在apache的邮件列表,讨论半天。特别说的是 里面的人确实很热情啊 ,外国人做事确实很认真,讨论帖发的时候都狠详细。 粘...
  • wf1982
  • wf1982
  • 2011年12月12日 19:40
  • 4300

CDH HiveServer2异常退出

本篇参考:http://blog.csdn.net/gklifg/article/details/50418109、http://blog.csdn.net/levy_cui/article/deta...
  • fansy1990
  • fansy1990
  • 2017年07月10日 14:09
  • 671
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hiveserver2服务异常停止java.lang.OutOfMemoryError: Java heap space
举报原因:
原因补充:

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