1. 问题现象
1) Reports Manager告警
查看Reports Manager历史告警,unknow health时有发生。
2) Service Monitor告警
Service Monitor 运行状况 存在隐患1 变成存在隐患The health test result for MGMT_SERVICE_MONITOR_HEALTH has become concerning: The health of the Service Monitor is concerning. The following health tests are concerning: heap size.
3) 查看报错频率
在CMS界面 -> 扩展"运行状况" -> 选择时间长度(如1天),点击图例中的"concerning health",查看告警发生频率,一天发生数次,则告警频率较高,则建议优化。
2. 问题处理
下面根据CM主机整体资源,粗略调整RM和SM值。
Cloudera Management Service -> 配置 -> 搜索"heapsize",调整经常告警的两项:
1) Reports Manager 的 Java 堆栈大小(字节)[headlamp_heapsize]
由2G调整为4G;
2) Service Monitor 的 Java 堆栈大小(字节)[firehose_heapsize]
由2G调整为4G,有报错,后续继续调整为8G。
调整完,重启服务,重启服务对现有运行业务不影响,重启后,impala、zookeeper等服务可能存在短暂告警,正常现象。
观察运行一段时间后,RM、SM服务再无告警。
3. 精确计算Java 堆栈大小值
可以通过查看RM、SM当前内存使用情况,根据告警阈值90%,精细调整RM和SM的值。
查看Service Monitor的Java内存使用:
CM -> Cloudera Management Service -> Service Monitor[状态摘要栏下] -> 图表库 -> 状态页面图表[或进程资源] -- JVM 堆内存使用情况
可看到当前使用内存和最大使用内存,根据告警90%告警阈值,可通过最内使用内存和告警阈值精细估算SM java堆栈大小的设置值。
也可以在"图标生成器"中使用tsquery语句查看SM当前内存使用情况:
select jvm_max_memory_mb, jvm_heap_used_mb where entityName="mgmt-SERVICEMONITOR-3ab5e398455d6db440ba5b540c7ce1a4"
同样的RM JAVA内存使用也可以参考上述方式进行计算设置,也可以使用tsquery语句RM当前内存使用情况:
select jvm_max_memory_mb, jvm_heap_used_mb where entityName="mgmt-REPORTSMANAGER-3ab5e398455d6db440ba5b540c7ce1a4"
Java 堆栈大小可由小调大,也可由大调小,调整时但不要低于现有使用内存大小,图标监控时间间隔10分钟。
4. 小结
在一定规模集群,CMS各组件默认的java heap size参数设置较低,可根据当前资源使用需要适当调大参数,避免频繁告警。
不足之处,还望抛砖。
作者:王坤,微信公众号:rundba,欢迎转载,转载请注明出处。
如需公众号转发,请联系wx: landnow。

往期推荐




