在我的 Spark 程序中,我可以通过调整
--num-executors
参数来限制程序运行的节点数量。现在我想将我的程序与类似的 MapReduce 程序的可扩展性进行比较。但为此我还需要限制它的节点数量。
我在没有任何管理员权限的集群上运行这两个程序。那么,可以这样做吗?
在MapReduce中你可以限制reducer的数量 (在你的情况下,使减速器=所需的节点数量),
生成的映射器数量将基于输入格式。
您可以做的是根据输入格式仔细计算输入大小,它应该=预期的节点数。
举个例子。
InputFormat = TextInputFormat.
Input Text File size = 2 GB
TextInputFormat split size( defaults to hdfs block size) = 128 MB
在这种情况下,您将看到 16 个映射器正在运行。如果您有 16 个节点,所有节点都将在所有节点上并行运行。
(请理解这就像最好的情况,您可能仍然会看到映射器在同一节点上运行)