hive on spark僵死问题分析

背景:

最近大数据平台为租户经分系统提供运算及存储能力,经分的资源需求如下

Memory:  6T

CPU:     1600 c

存储:   600T

文件系统:HDFS

运算组件: hive on spark

权限管理:sentry

问题描述:

       为经分系统分配完租户在运行SPARK作业的时候,会重现任力僵死的情况,后台hiveserver2登录,一直卡在登录命令行,查看hive日志发现过多的GC 等待

  通过jstat  查看FGC记录(注,这是更改后的图,更改前的GC图未保存,当时FGC 一分钟达到200多次,E,O区一直在100%)。

再通过jmap 查看下heap信息(此图也是更改后的图,当时原图未保留,原MaxHeapSize=512M)。


通过以上分析可以定们到JVM的堆信息太小,但当时部署时更改了hive-env.sh中的JVM信息了

但我们通过jmap查看只分到了512M内存,问题在哪儿呢。

通过jinfo看下加载的命令信息。

看到加载了xmx=512M,但为何是512M呢,经分析,是hive做为hadoop的客户端加载hadoop的配置文件,hadoop-env.sh,如下图

[

在hivesiver2加载的时候会先加载hive-env.sh再加载hadoop-env.sh 的客户端参数HADOOP_CLIENT_OPTS,即然我们知道是加载的HADOOP_CLIENT_OPTS参数。我们只要更改hive-env.sh

增加如下配置。

重启hiveserver2可以看到hiveserver2的heap大小已变为8192M,前台作业及hive

on spark作业正常(经15天的运行再未出出僵死的情况。)

你可能感兴趣的:(hive on spark僵死问题分析)