0

ローカル マシンでテストするために、擬似分散モードで Hadoop を実行しています。JVisualVM でマッパーとリデューサーのメモリと CPU の使用状況を監視したいと考えています。ただし、JVisualVM のローカル アプリケーションのリストには、org.apache.hadoop.util.RunJar.

  • マッパーとリデューサーは別々のプロセスとして実行されていますか? ( ではtop、2 つのマッパーが実行されている間、「java」という名前の 2 つのプロセスが 100% の CPU を使用しているように見えます。) それらが別々のプロセスである場合、なぜ JVisualVM はそれらを監視できるアプリケーションとしてリストしないのですか?
  • マッパーとレデューサーはorg.apache.hadoop.util.RunJarプロセス内に含まれていますか? もしそうなら、(a)マッパー/リデューサーのコードではなく JVisualVM Sampler のみに表示されるのはなぜですか? (b) 100% と報告されているのに、JVisualVM がほぼ 0% の CPU をTool報告するのはなぜですか?ToolRunnertop

少なくとも疑似分散モードでのデバッグ中に、JVisualVM がそれらを認識できるようにマッパー/リデューサーを変更する方法はありますか?

完全を期すために、私は Cloudera から Hadoop 0.20 を実行していると言わなければなりません。apt-get install hadoop-0.20-conf-pseudo(リポジトリから使ってUbuntuにインストールしまし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
4

1 に答える 1

1

を使用hadoop jar [your_args]してアプリケーションを起動する場合、実際の実際のコマンドはjava -jar org.apache.hadoop.util.RunJar [your_args]. そのため、MapReduce ジョブの開始に使用されるドライバーがプロセスで実行されていますRunJar

デフォルトでは、マッパーとリデューサーは別々のプロセスとして実行されます。JVisualVM で表示されないのは、JVisualVM に適切な権限がないためです。Mapper と Reducer は user の下で起動されますmapred。したがって、JVisualVM を使用する場合は、sudo -E -u mapred jvisualvm.

于 2013-09-29T05:52:54.777 に答える