我有一项旨在运行数十个map / reduce作业的任务。其中一些是IO密集型,一些是映射器密集型,一些是减速器密集型。我希望能够监视当前正在使用的映射器和缩减器的数量,这样,当一组映射器被释放时,我可以将另一个映射器密集型作业推送到集群。我不想将它们堆叠在队列中,因为它们可能会阻塞映射器而不会让减速器密集的运行。
我是否可以调用命令行界面从(例如)Python脚本中获取此信息?
答案 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>
将为每项工作提供映射器和缩减器的数量。