【发布时间】:2016-09-15 02:17:31
【问题描述】:
我有一个由 YARN 管理的 30 节点 Hadoop MR2 集群。目前有 10 个 Oozie 作业,每个作业都运行一个 Map 程序。我注意到 30 个节点中只有 11 个被实际使用;只有 11 个节点有容器运行 Map 程序。
我希望每个节点至少运行一个容器。为什么不是这样?是否由于输入拆分,并且基于我的 HDFS 块大小设置,输入数据最好仅拆分为 11 个节点?如果是这种情况,调整块大小以使所有节点都得到利用会更优化吗?
【问题讨论】:
-
30个节点都是datanode?我猜你的数据太稀疏了,它不需要所有的节点。数据本地化似乎正在发挥作用
-
嗯,按照 Hadoop/大数据标准,80GB 的平面文件是否被认为是稀疏的?我敢肯定,只是想确保我们说的是同一种语言!
-
取决于每个磁盘的大小,但是是的,不是那么大
-
每个磁盘 200GB,所以是的,我想那是有道理的。它必须能够在本地将所有数据拆分到仅 11 个节点。也就是说,将数据拆分并分发到所有可用节点不是更好吗?这样,您有更多的 CPU 处理?
-
这是 CPU 或带宽之间的权衡。考虑到所有数据都可以放在一个节点上,我相信 YARN 知道它在做什么。
标签: hadoop mapreduce hadoop-yarn azure-hdinsight