问题描述及原因:hiveserver2的内存使用率持续高水位
可能影响:
- 服务响应慢,超时
处理建议:
- 排查hiveserver2服务内存配置以及优化gc参数
场景:hiveserver2内存持续高水位
在EMR控制台进入“集群服务”,点击“HIVE”,点击 角色管理 --> HiveServer2 --> memory_heap_used
观察的"JVM内存"监控中的指标MemoryHeapUsedM的变化情况,若MemoryHeapUsedM
持续维持在MemHeapMaxM接近的水位上,建议在EMR控制台-->集群服务/hive-->配置管理-->hive里修改以下配置项
HS2Opts | -Xms4g -Xmx32g -XX: UseG1GC -XX:MaxGCPauseMillis=200 -XX:GCPauseIntervalMillis=600 -XX:G1HeapRegionSize=8M -verbose:gc -XX: PrintGCTimeStamps -XX: PrintGCDateStamps -XX: PrintGCDetails -Xloggc:/data/emr/hive/logs/hiveserver2gc.log -XX:-UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=32M -XX:MaxDirectMemorySize=1g -XX:CompressedClassSpaceSize=256m -XX:-UseCompressedClassPointers -XX:-UseCompressedOops |
---|
-Xmx32g 实际配置大小需要结合机器内存调整,建议不小于24g,若机器内存不够,建议升配或扩router节点单独部署该服务。
配置下发后滚动重启hiveserver2即可