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的内存溢出(OutOfMemoryError: Java heap space)排查

刚刚从java组转岗找数据组,学习大数据的知识,开发语言也从java转到python新奇之外也遇到了诸多问题,其中最令我头疼的就是在hive上的统计任务总是三天两头地报告OutOfMemory一开始因...
  • gklifg
  • gklifg
  • 2015-12-28 14:41
  • 4079

java.lang.OutOfMemoryError: Java heap space

写完代码,似乎一切都很顺利,测试了一个小文件Ok上差的速度也很快! 于是同事说你上传一个电影! Ok 我想着最多就是上传慢点,但是不会出现异常! Ok上传了一个大约60Mb的文件 滚动条再走,突然...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

java.lang.OutOfMemoryError: Java heap space

解决方案[转] 一直都知道可以设置jvm heap大小,一直用eclipse写/调试java程序。一直用命令行or console加参数跑程序。现象:在eclipse的配置文件eclipse.ini中...

java.lang.OutOfMemoryError: Java heap space

//首先检查程序有没有限入死循环   本人亲自试过第二种方法,以及解决了问题 这个问题主要还是由这个问题 java.lang.OutOfMemoryError: Java heap space 引起...

java.lang.OutOfMemoryError: Java heap space

javaweb项目运行是出现内存溢出错误,windodws系统的解决方法: 在tomcat/bin/catalina.bat文件中,加入set JAVA_OPTS=-Xms64m -Xmx256m,...

java.lang.OutOfMemoryError: Java heap space

一:起因 (1)学习IT的人,不论是写前端还是后台;有时候需要对数据进行清洗处理,例如,数据库日志分析。 (2)处理数据的大小由MB 到 GB,在到TB,最后导致处理的每一个文件都超过java jvm...

java.lang.OutOfMemoryError: Java heap space

以下是从网上找到的关于堆空间溢出的错误解决办法: java.lang.OutOfMemoryError: Java heap space  ==========================...

java.lang.OutOfMemoryError: Java heap space

这两天真的被这个错误气死啦,开服务器,然后就出这个错误,然后服务器自动关闭,吖的,我真的好生气啊! java.util.concurrent.ExecutionException: java.l...

java.lang.OutOfMemoryError: Java heap space

Eclipse设置内存 eclipse报错信息:java.lang.OutOfMemoryError: Java heap space 从上边的异常信息可以看到,JVM 需要使用的内存已经超过了我...

java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: Java heap space          at oracle.jdbc.driver.T4CDriverExtension.alloc...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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