如何使用jvisualvm在伪分布式模式下监视hadoop?

hrirmatl  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(341)

我正在以伪分布式模式运行hadoop,以便在本地计算机上进行测试。我想在jvisualvm中监视Map器和还原器的内存和cpu使用情况。然而,在jvisualvm的本地应用程序列表中,我只看到 org.apache.hadoop.util.RunJar .
Map器和还原器是否作为单独的进程运行(在 top ,看起来是这样的:两个名为“java”的进程正在使用100%的cpu,而我的两个Map器正在运行。)如果它们是独立的进程,为什么jvisualvm不将它们列为我可以监视的应用程序?
Map器和还原器是否包含在 org.apache.hadoop.util.RunJar 过程?如果是这样,(a)为什么我只看到 Tool 以及 ToolRunner 在jvisualvm采样器中,没有任何Map器/缩减器代码,(b)为什么jvisualvm在 top 报告100%?
是否有某种方法可以修改Map器/还原器,使jvisualvm至少在伪分布式模式下调试时可以看到它们?
为了完整起见,我应该说我运行的是cloudera的hadoop0.20(它是用 apt-get install hadoop-0.20-conf-pseudohttp://archive.cloudera.com/cdh4/ubuntu/precise/amd64/cdh precise-cdh4 contrib 存储库。尽管cloudera在版本号中加入了2.x,但它不是Yarn,而是原始的hadoop。)

% hadoop version
Hadoop 2.0.0-cdh4.4.0
Subversion file:///var/lib/jenkins/workspace/generic-package-ubuntu64-12-04/CDH4.4.0-Packaging-Hadoop-2013-09-03_18-48-35/hadoop-2.0.0+1475-1.cdh4.4.0.p0.23~precise/src/hadoop-common-project/hadoop-common -r c0eba6cd38c984557e96a16ccd7356b7de835e79
Compiled by jenkins on Tue Sep  3 19:33:54 PDT 2013
From source with checksum ac7e170aa709b3ace13dc5f775487180
This command was run using /usr/lib/hadoop/hadoop-common-2.0.0-cdh4.4.0.jar
btxsgosb

btxsgosb1#

当你使用 hadoop jar [your_args] 要启动应用程序,实际上真正的命令是 java -jar org.apache.hadoop.util.RunJar [your_args] . 因此,用于启动mapreduce作业的驱动程序正在进程中运行 RunJar .
默认情况下,Map器和还原器作为单独的进程运行。在jvisualvm中看不到它是因为jvisualvm没有正确的权限。Map器和还原器在用户界面下启动 mapred . 所以如果你想使用jvisualvm,你需要使用 sudo -E -u mapred jvisualvm .

相关问题