我在伪分布式模式下运行 Hadoop,以便在我的本地机器上进行测试。我想在 JVisualVM 中监控我的映射器和减速器的内存和 CPU 使用情况。但是,在 JVisualVM 的本地应用程序列表中,我只看到org.apache.hadoop.util.RunJar
.
- 映射器和减速器是否作为单独的进程运行?(在
top
中,它们看起来像:两个名为“java”的进程正在使用 100% CPU,而我的两个映射器正在运行。)如果它们是独立的进程,为什么 JVisualVM 不将它们列为我可以监控的应用程序? - 映射器和缩减器是否包含在
org.apache.hadoop.util.RunJar
流程中?如果是这样,(a)为什么我只在 JVisualVM 采样器中看到Tool
和ToolRunner
,而不是任何映射器/归约器代码,以及(b)为什么 JVisualVM 在top
报告 100% 时报告几乎 0% 的 CPU?
有什么方法可以修改我的映射器/减少器,以便 JVisualVM 可以看到它们,至少在伪分布式模式下调试时?
为了完整起见,我应该说我正在运行 Cloudera 的 Hadoop 0.20。(它是使用存储库安装在 Ubuntu 上apt-get install hadoop-0.20-conf-pseudo
的http://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