問題一
在修改表location與默認的hdfs機器不一致導致hiveserver2阻塞
alter table asd.asd add if not exists partition (inc_day='2021-11-30') location 'hdfs://asd/apps/hive/warehouse/ods/asd/asd/2021-11-30'
排查
使用jstack排查發(fā)現(xiàn)如下信息、由日志輸出328線程,后續(xù)執(zhí)行查詢會日志線程為209但不會輸出sql,發(fā)現(xiàn)是waiting狀態(tài),看棧信息是在執(zhí)行tryAcquireCompileLock方法,看到源碼發(fā)現(xiàn)是未開啟并行parseSql配置
修改
| key | value | note |
|---|---|---|
| hive.server2.compile.lock.timeout | 60s | 編譯鎖超時時間 |
| hive.driver.parallel.compilation | true | 是否開啟并行編譯sql |
問題二
hiveserver2 服務器運行緩慢問題排查
當時堆棧情況

image.png
當時服務器內存使用情況

image.png
排查
內存使用率高,已經開始使用swap內存。 懷疑是hive 內存使用了虛擬內存導致。
解決
調整hiveserver2的內存大小,重啟。運行速度恢復到以前水平