内容纲要
常用命令
1. 查看gc
Inceptor server没有单独的GC日志文件,GC的信息混在hive-server2.log里面;GC的信息是通过leviathan输出的,每分钟一次。
- 如果间隔超过了1分钟,中间肯定发生了比较严重的GC;
- gcTime计算, gcTime是累积的时间,两个相减就是期间的GC总时间;
-
如果gc的count发生重置了,代表inceptor server发生过重启
# 进入到inceptor日志目录,接下来的命令默认在此目录下执行
cd /var/log/inceptor1
# 下面这个命令可以查找2021年20号-21号期间,inceptor的gc情况,并重定向输出到 /tmp/gc.log
find ./ -name 'hive-server2.log*' -newermt '2021-12-20 00:00:00' ! -newermt '2021-12-21 00:00:00' -exec grep -a 'JVM heap gc status:' {} \; > /tmp/gc.log
2. 查看一段时间内的job数,可以观察并发
# 查看2021年20号-21号期间start了多少job
find ./ -name 'hive-server2.log*' -newermt '2021-12-20 00:00:00' ! -newermt '2021-12-21 00:00:00' -exec grep -a "Starting job" {} \; | wc -l
# 查看2021年20号-21号期间finish了多少job
find ./ -name 'hive-server2.log*' -newermt '2021-12-20 00:00:00' ! -newermt '2021-12-21 00:00:00' -exec grep -a "Job finished" {} \; | wc -l
# 替换如下关键字可以查看task的情况
# Starting task
# Finished task
3. 查看执行时间在100~1000s的task,可以找出耗时比较久的任务
grep -a "Finished task" ./hive-server2.log* | grep -E "in [0-9]{6} ms" | wc
4. 查看每个executor上执行的task情况
# 查看每个executor finish了多少task
grep -a "Finished task" ./hive-server2.log* | grep -oE "on [0-9\.]+" | sort |uniq -cd
# 查看每个executor start了多少task
grep -a "Starting task" ./hive-server2.log* | grep -oE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"| sort | uniq -cd
5. 查看并发session数
# 查看2021年20号-21号期间并发的session
find ./ -name 'hive-server2.log*' -newermt '2021-12-20 00:00:00' ! -newermt '2021-12-21 00:00:00' -exec grep -ai "Starting command" {} \; | grep -oE "Thread-[0-9]{1,10}" | sort | uniq -cd | wc -l