在我的 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/