我正在寻找一种方法来监控YARN容器的内存使用情况。
具体来说 - 给定YARN application-id,如何获得图表,显示每个容器的内存使用情况?
主要目标是更好地适应YARN应用程序(Spark / Map-Reduce)的内存分配要求,以避免过度分配和群集资源浪费。一个侧面目标是在开发我们的工作并尝试选择合理的资源分配时调试内存问题的能力。
我们已尝试使用Data-Dog integration,但它并没有按容器细分指标。
另一种方法是解析hadoop-yarn
日志。这些日志包含以下消息:
Memory usage of ProcessTree 57251 for container-id container_e116_1495951495692_35134_01_000001: 1.9 GB of 11 GB physical memory used; 14.4 GB of 23.1 GB virtual memory used
正确解析日志可以生成可用于绘制内存使用情况图表的数据。
这正是我们想要的,但有两个缺点:
有没有其他方法可以通过插入现有生产者或编写简单的监听器来提取这些指标?
也许是另一种方法?