记录一次hive的JVM调优

关于Execution Error, return code -101 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. GC overhead limit exceeded
解决过程
1.查看集群负载情况,可以通过jstat | jmap | jconsole 等命令查看
使用jstat -gc pid 5000 输出情况
在这里插入图片描述
这个是报错之后截取的,其实看看得出除开O区其他都还好
如果我想去调节hive的JVM堆和垃圾回收该怎么改呢?
先去看一下启动文件 hive
首先看到:
if [ -f “ H I V E C O N F D I R / h i v e − e n v . s h " ] ; t h e n . " {HIVE_CONF_DIR}/hive-env.sh" ]; then . " HIVECONFDIR/hiveenv.sh"];then."{HIVE_CONF_DIR}/hive-env.sh”
Fi
然后我就又去看了一下 hive-env.sh
#Hive Client memory usage can be an issue if a large number of clients
#are running at the same time. The flags below have been useful in
#reducing memory usage:
#if [ “KaTeX parse error: Expected 'EOF', got '#' at position 26: … "cli" ]; then #̲if [ -z "DEBUG” ]; then
#export HADOOP_OPTS=“KaTeX parse error: Expected 'EOF', got '#' at position 127: …OverheadLimit" #̲else #export HA…HADOOP_OPTS -XX:NewRatio=12 -Xms10m -XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:-UseGCOverheadLimit”
#fi
#fi
这翻译过来不就是当一个大的连接量的时候 取消这个注释
我就取消了 还加了一堆jvm参数
但是发现没有用 对我想要改的操作没啥用 这一看自己分析错了
我就继续看hive的启动脚本, 看到 那是不是应该参数加到HADOOP_CLIENT_OPTS上
if [[ " S E R V I C E " =   ( h i v e s e r v e r 2 ∣ b e e l i n e ∣ c l i ) SERVICE" =~ ^(hiveserver2|beeline|cli) SERVICE"= (hiveserver2beelinecli) ]] ; then

If process is backgrounded, don’t change terminal settings

if [[ ( ! $(ps -o stat= -p KaTeX parse error: Expected 'EOF', got '&' at position 12: ) =~ "+" ) &̲& ! ( -p /dev/s…) =~ “?” ) ]]; then
export HADOOP_CLIENT_OPTS=“ H A D O O P C L I E N T O P T S − D j l i n e . t e r m i n a l = j l i n e . U n s u p p o r t e d T e r m i n a l " f i F i 之 后 我 在 我 就 还 是 在 h i v e − e n v . s h 添 加 了 以 下 配 置 i f [ " HADOOP_CLIENT_OPTS -Djline.terminal=jline.UnsupportedTerminal" fi Fi 之后我在我就还是在hive-env.sh 添加了以下配置 if [ " HADOOPCLIENTOPTSDjline.terminal=jline.UnsupportedTerminal"fiFihiveenv.shif["SERVICE” = “hiveserver2” ]; then
export HADOOP_CLIENT_OPTS=“$HADOOP_CLIENT_OPTS -Xms2048m -Xmx2048m -XX:+UseParNewGC -XX:ParallelGCThreads=13 -XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled -XX:ParallelCMSThreads=13 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSClassUnloadingEnabled -XX:+DisableExplicitGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=1”
-XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:-UseGCOverheadLimit"
Fi
重启一下之后 jstat 一下
在这里插入图片描述
有错误指正一下!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值