java - 有没有办法限制 MapReduce 程序的节点数?

标签 java scala hadoop apache-spark bigdata

在我的 Spark 程序中,我可以通过调整 --num-executors 参数来限制我的程序运行的节点数。现在我想将我的程序的可伸缩性与类似的 MapReduce 程序进行比较。但为此我还需要限制它的节点数量。

我在没有任何管理员权限的集群上运行这两个程序。那么,是否可以这样做呢?

最佳答案

在 MapReduce 中你可以限制 reducer 的数量 (在你的例子中,make reducers = 需要的节点数),

生成的映射器数量将基于输入格式。
您可以做的是根据 InputFormat 仔细计算 InputSize,它应该 = 预期的节点数。

给你举个例子。

InputFormat = TextInputFormat. 
Input Text File size = 2 GB  
TextInputFormat split size( defaults to hdfs block size) = 128 MB

在这种情况下,您将看到 16 个 Mappers 正在运行。如果您有 16 个节点,所有这些节点都将在所有节点上并行运行。

(请理解这是最好的情况,您可能仍会看到映射器在同一节点上运行)

请关注http://bytepadding.com/big-data/map-reduce/understanding-map-reduce-the-missing-guide/详细了解

关于java - 有没有办法限制 MapReduce 程序的节点数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42719167/

相关文章:

java - Karger MinCut Java Large Input Error 的 Minimum Cut

java - 安装了 Java 7u9 和 Eclipse (Juno) 但 Eclipse 没有看到 JavaFX2

scala - 从 Scala 控制台读取密码

java - Scala Map 和 ConcurrentHashMap 抛出 java.lang.UnsupportedOperationException

java - Hadoop Jar 运行但没有输出。 Driver、mapper 和 reduce 在 namenode 中编译成功

hadoop - Apache pig -错误 2118 : For input string: "4f8:0:a111::add:9898"

java - 使用java源码包

scala - 为什么添加同伴对象时不能使用“组合”的case类?

maven - 在 ARM (Raspbian) 上编译 Hadoop 2.7.1

java - 当任何给定的 CompletableFutures 完成且结果与某个谓词匹配时,如何创建一个完成的 future ?