能查到的所有资料都指向下面这个公式: executor 数量 = spark.cores.max/spark.executor.cores 意思是 executor 进程的数量为我们设置的 spark 程序的最大核心数除以每个 executor 分配的核心数. 那么问题来了! 假设:某个 rdd 对应数据文件的 block 块有 4 个,加载的时候合成两个 inputSplit 处理,对应两个 Task 然后我设置 spark.cores.max=10,spark.executor.cores=2. 按照公式,会有 10/2=5 个 executor 进程 spark 肯定不会给两个 Task 分配 5 个 executor,那么 spark 具体是怎么确定 executor 数量的呢?
1
scalaer 2019-01-20 23:14:12 +08:00 via Android
配置项 –– num – executors
|