hadoop2.2.0如何确定map任务在哪个节点上运行?

发布于 2022-08-29 23:36:56 字数 575 浏览 12 评论 0

我通过将输入文件分为四份使得hadoop程序运行时有四个map,但是我无法确定到底哪个map在哪个节点上运行。Web UI显示如下:
图片描述
我的集群nodeManager有两个,这里好像表明四个map都运行在了centos2节点上。试了多次都是同一个结果。

为什么map任务不能分配到多个节点上呢?还有,我的配置文件基本上是默认的,也就是说mapreduce.job.maps为默认值2, mapreduce.tasktracker.map.tasks.maximum也为默认值2, 个人觉得一个设置了每个jobtask数为2, 一个设置了每个tasktracker(每个节点)的任务数不超过2,不可能存在一个节点上四个map的情况啊?这两个配置参数究竟是如何影响程序的?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笑饮青盏花 2022-09-05 23:36:56

1.首先,你不能确定map运行在哪个机器上,hadoop有内部有算法决定。其实你可以通过

hadoop job -list-active-trackers

看看tasktracker是不是都正常
2.为什么有4个map任务呢?一个map分为不同阶段,比如SETUP、CLEANUP,所以其中两个attempt对应这两个,其余两个才是真正的map逻辑。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文