現在mapreduceジョブが実行されている、または特定のジョブに対して実行されようとしているスレーブノードのIPを調べたい。これを行う方法はありますか?
前もって感謝します。
どのジョブでも、Job Scheduler Web UIを介して実行中のタスクのリストを表示できます。これにより、タスクが実行されているノードの詳細が表示されます。
タスクが実行されようとしている場所については、これは必ずしも事前に決定されているわけではありません。ノードでスロットが使用可能になると、ジョブスケジューラ(ニーズに応じて動作が異なる番号があります)は、そのノードで実行されるジョブタスクを識別します(いくつかの基準に基づいて、可能な場合はデータの局所性を尊重します)そのノードのタスクトラッカーに特定のタスクを実行するように指示します。
プログラムで、JobClientクラスのjavadocsを見ると、実行中のタスクとそのノード名に関する情報を取得できるはずです(私が想像する実際のIPを取得するには、おそらくDNSルックアップを実行する必要があります)
Hadoop comes with several web interfaces which are by default (see conf/hadoop-default.xml) available at these locations:
http://localhost:50030/ – web UI for MapReduce job tracker(s
)
http://localhost:50060/ – web UI for task tracker(s)
http://localhost:50070/ – web UI for HDFS name node(s)
Thanks to @Chris.. Programatically, look at the javadocs for the JobClient class, it should be able to acquire information about the running tasks, and their node names.