分享

map任务运行节点

elena 发表于 2015-7-2 16:57:13 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 11908
运行mapreduce程序的Map阶段时,hadoop通过产生多个map任务自动实现并行化,并且通过Web UI界面可以看到任务运行的详细信息,包括该任务被哪个节点执行。现在我想在程序中获取每个map任务运行时所在的节点,也就是想知道某个map任务被哪个节点执行。有哪个类的某个方法可以实现这个信息的输出吗?

已有(3)人评论

跳转到指定楼层
leo_1989 发表于 2015-7-2 20:09:06
这个肯定能实现的。但是楼主需要一定的功底,最起码对hadoop源码已经分析透彻。否则实现起来困难度很大。

具体由于在分配任务的时候,是由master根据调度策略、还有各种资源考虑,然后会把任务放到那个机器上。这时候我们就需要记录下来。我们就能看到他们的分布了。

当然还有一些监控工具,但是不一定能满足楼主的需求。
所以主要熟悉源码,一定搞定。
如果不熟悉的话,难度就大了,不是谁指导下就能搞定的。
回复

使用道具 举报

elena 发表于 2015-7-2 20:46:43
leo_1989 发表于 2015-7-2 20:09
这个肯定能实现的。但是楼主需要一定的功底,最起码对hadoop源码已经分析透彻。否则实现起来困难度很大。
...

hadoop自带的一些类的属性里不包含这个信息吗?比如context或者InputSplit这些类?
回复

使用道具 举报

Alkaloid0515 发表于 2015-7-2 20:59:38
elena 发表于 2015-7-2 20:46
hadoop自带的一些类的属性里不包含这个信息吗?比如context或者InputSplit这些类?



hadoop肯定有相关类,我来直接使用。但是都是用哪些类,需要花时间和功夫了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条