如何监控每个容器的YARN应用程序内存?

时间:2017-06-11 14:27:34

标签: hadoop apache-spark monitoring yarn

我正在寻找一种方法来监控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

正确解析日志可以生成可用于绘制内存使用情况图表的数据。

这正是我们想要的,但有两个缺点:

  1. 它涉及读取人类可读的日志行并将其解析为数字数据。我们很乐意避免这种情况。
  2. 如果这些数据可以被消费,我们希望它将来会有更多我们可能感兴趣的信息。我们不想花时间解析日志,只是为了意识到我们需要别的东西。
  3. 有没有其他方法可以通过插入现有生产者或编写简单的监听器来提取这些指标?

    也许是另一种方法?

0 个答案:

没有答案