如何获取Hadoop Yarn应用程序的内存和CPU使用情况?

5
我想问一下,在运行了我的Hadoop MapReduce应用程序之后,如何获取该应用程序的总内存和CPU使用情况。我在日志和资源管理器网页上看到过,但是没有理解清楚。
这是否可能?我可以按作业执行或按应用程序获取它,还可以按节点使用或总使用情况获取吗?
非常感谢...
1个回答

10

是的,您可以很好地检查应用程序的总内存和CPU使用情况。

您可以使用作业跟踪器UI,在已完成页面上点击计数器链接,可能会得到以下典型视图。内存和CPU计数器已突出显示。

enter image description here

点击突出显示的链接将向您显示作业中每个任务(Map/Reduce)的消耗。

要从命令行查看这些消耗计数器的值,您可以使用

hadoop job -counter <job-id> org.apache.hadoop.mapreduce.TaskCounter CPU_MILLISECONDS 用于CPU使用情况

hadoop job -counter <job-id> org.apache.hadoop.mapreduce.TaskCounter PHYSICAL_MEMORY_BYTES 用于内存使用情况


所以这是针对每个作业,而不是我执行的整个jar文件? - Kenny Basuki
是的,您必须手动计算使用您执行的jar运行的所有作业数量。 - suresiva
欢迎。另外,要计算每个任务级别(Map / Reduce)的资源消耗,您必须单击突出显示的链接。 - suresiva
哦,顺便问一下,我可以再问你一件事吗?我想问一下有关Yarn上的内存和vcore配置。在作业时间性能方面起作用的是vcore,而不是内存配置,对吗?谢谢。 - Kenny Basuki
很抱歉,我想再问一遍,我如何在命令提示符上看到它而不是在 Web 视图上。Hadoop 是否像 Web 一样保存日志?谢谢。 - Kenny Basuki
是的,您可以在命令行中检查。使用 hadoop job -counter <job-id> org.apache.hadoop.mapreduce.TaskCounter CPU_MILLISECONDS 查询CPU使用情况,使用 hadoop job -counter <job-id> org.apache.hadoop.mapreduce.TaskCounter PHYSICAL_MEMORY_BYTES 查询内存使用情况。 - suresiva

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接