如何判断有多少映射器和减速器在运行?

时间:2014-11-26 23:04:26

标签: python hadoop mapreduce

我有一项旨在运行数十个map / reduce作业的任务。其中一些是IO密集型,一些是映射器密集型,一些是减速器密集型。我希望能够监视当前正在使用的映射器和缩减器的数量,这样,当一组映射器被释放时,我可以将另一个映射器密集型作业推送到集群。我不想将它们堆叠在队列中,因为它们可能会阻塞映射器而不会让减速器密集的运行。

我是否可以调用命令行界面从(例如)Python脚本中获取此信息?

2 个答案:

答案 0 :(得分:2)

可以通过以下方式访问Hadoop作业状态。

  • 可以通过hadoop Web UI管理Hadoop作业。

    Jobracker显示作业详细信息,默认端口为50030(localhost:50030,处于伪模式

    Tasktrackers显示各个map / reduce任务,并且可以在默认端口50060上使用。

  • Hadoop提供REST API来访问集群,节点,应用程序和应用程序历史信息。

    也可以从Python脚本调用此REST API以获取应用程序状态。 http://hadoop.apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-site/WebServicesIntro.html

答案 1 :(得分:0)

我发现了

mapred job -list

将列出当前正在运行的所有作业,

mapred job -status <job_id>

将为每项工作提供映射器和缩减器的数量。