java - 如何使用VisualVM以伪分布式模式监控Hadoop?

标签 java hadoop jvisualvm

我正在伪分布式模式下运行 Hadoop,以便在本地计算机上进行测试。我想在 JVisualVM 中监视映射器和缩减器的内存和 CPU 使用情况。但是,在 JVisualVM 的本地应用程序列表中,我只看到 org.apache.hadoop.util.RunJar .

  • 映射器和缩减器是否作为单独的进程运行? (在 top 中,看起来它们是:当我的两个映射器运行时,两个名为“java”的进程正在使用 100% CPU。)如果它们是单独的进程,为什么 JVisualVM 不将它们列为我可以监视的应用程序?
  • 映射器和缩减器是否包含在 org.apache.hadoop.util.RunJar 中过程?如果是这样,(a) 为什么我只看到 ToolToolRunner在 JVisualVM Sampler 中,没有任何映射器/ reducer 代码,以及 (b) 为什么 JVisualVM 在 top 时报告几乎 0% CPU报告 100%?

有什么方法可以修改我的映射器/化简器,以便 JVisualVM 可以看到它们,至少在伪分布式模式下调试时如此?

为了完整起见,我应该说我正在运行 Cloudera 的 Hadoop 0.20。 (它是使用 apt-get install hadoop-0.20-conf-pseudo 存储库中的 http://archive.cloudera.com/cdh4/ubuntu/precise/amd64/cdh precise-cdh4 contrib 安装在 Ubuntu 上的。尽管 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

最佳答案

当您使用hadoop jar [your_args]启动应用程序时,实际上真正的命令是java -jar org.apache.hadoop.util.RunJar [your_args] 。因此,用于启动 MapReduce 作业的驱动程序正在 RunJar 进程中运行。

默认情况下,映射器和化简器作为单独的进程运行。您在 JVisualVM 中看不到它是因为 JVisualVM 没有正确的权限。映射器和缩减器在用户 mapred 下启动。所以如果你想使用JVisualVM,你需要使用sudo -E -u mapred jvisualvm

关于java - 如何使用VisualVM以伪分布式模式监控Hadoop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19060651/

相关文章:

performance - 在 jvisualvm 中获取方法执行时间的分割

java - 了解 jvisualVM 中的 java 度量库单位

java - 多个实体的 Play 框架 Form 对象

hadoop - 如何判断 hadoop namenode 是否已经格式化?

java - 避免抽象静态方法(或覆盖静态方法)的设计模式

python - mongodb_hadoop 流与 python : -inputURI not recognized

hadoop - Map-reduce oozie程序示例在CDH 4.5上不起作用

java - jvisualvm 连接到远程 jstatd 不显示应用程序

java - 用于方法排序的 Checkstyle 模块

java - 图片之间切换(JFrame、JButton)