【问题标题】:Why is my Hadoop MapReduce doesn't run faster even when i add nodes on the cluster?为什么即使我在集群上添加节点,我的 Hadoop MapReduce 也没有运行得更快?
【发布时间】:2019-06-17 05:41:11
【问题描述】:

所以我在我的 Hadoop 集群上使用 WordCount 运行了 50 MB 的数据。我在 5 个不同的集群大小、单节点集群到 5 个节点集群上运行测试。问题是,执行时间变化不大。每次运行只有 1 - 2 分钟不同。向集群中添加节点不是可以使用更多资源并使作业运行得更快吗?

我希望添加每个节点后执行时间会更快,但结果显示我不是这样。

我使用的节点有 2 GB 的 RAM 和 2 个内核。 我不会更改有关 yarn-site.xml 上的容器和 mapred-site.xml 上的 map/reduce allocation.mb 的任何内容。

【问题讨论】:

    标签: hadoop mapreduce


    【解决方案1】:

    您需要使用大量数据对其进行测试。 YARN 将为每个 HDFS 数据块分配一个映射容器。默认的 HDFS 块大小通常为 64Mb,因此您的测试文件可能只使用一个 HDFS 块。 容器是 YARN 将分配给节点的最小计算切片。在您的测试最坏的情况下,map 阶段只需要一个容器,reduce 阶段只需要一个容器。 2 个容器通常只适合一个节点,因此添加更多节点并不能提高速度。

    【讨论】:

    • 所以如果我有 256 MB 的数据和 64 MB 的块大小,Hadoop 会将文件分成 4 个块,文件将在 4 个节点上工作?
    • 不直接,因为同一个节点可以同时执行多个YARN容器。这取决于每个节点拥有的内存量,以及默认容器大小
    猜你喜欢
    • 2011-08-13
    • 2012-10-20
    • 2019-06-14
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多