背景
hive 任务运行中被自己kill 掉,而日志中都是很正常的没有报错
image.png
排查
hive client 预编译sql 生成执行任务,提交hiveserver 生成一个线程跟踪处理这个任务(提交到yarn),线程会输出这个任务执行的情况(关键执行步骤)
通过job_id来grep hiveserver的日志发现发现找到这个进程
image.png
根据进程号来过滤日志
grep -A 5 "Thread-349362" hiveserver.log
image.png
发现主要是由于任务kill后导致的stream closed,没啥
根据日志中的kill 记录很显然是调用hadoop job -kill 命令
解决
通过修改$HADOOP_HOME/bin/mapred,直接屏蔽掉kill命令
strA=$@
strB="kill"
result=$(echo $strA | grep "${strB}")
if [[ "$result" != "" ]]
then
echo "包含"
else
exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@"
fi
网友评论