用于为执行程序配置核心和内存。
spark-shell --help
--master MASTER_URL spark://host:port, mesos://host:port, yarn,
--executor-memory MEM Memory per executor (e.g. 1000M, 2G) (Default: 1G).
--total-executor-cores NUM Total cores for all executors.
--executor-cores NUM Number of cores used by each executor. (Default: 1 in YARN and K8S modes, or all available cores on the worker in standalone mode).
如果您的系统有 6 个内核和 6GB RAM,请选择以下命令之一:
- 创建 6 个执行程序,每个执行程序具有 1 个核心和 1GB RAM
spark-shell --master spark://sparkmaster:7077 --executor-cores 1 --executor-memory 1g
- 创建 3 个执行程序,每个执行程序具有 1 个核心和 2GB RAM。最大内存为 6GB,3 核是理想的。
spark-shell --master spark://sparkmaster:7077 --executor-cores 1 --executor-memory 2g
- 创建 2 个执行程序,每个执行程序具有 3 个内核和 3GB RAM。使用所有 RAM 和内核
spark-shell --master spark://sparkmaster:7077 --executor-cores 3 --executor-memory 3g
- 创建 2 个执行程序,每个执行程序具有 3 个内核,并且只有 1GB RAM。
spark-shell --master spark://sparkmaster:7077 --executor-cores 3 --executor-memory 1g
- 如果我们只想使用一个具有 1 个核心和 1GB RAM 的执行器
spark-shell --master spark://sparkmaster:7077 --total-executor-cores 1 --executor-cores 1 --executor-memory 1g
- 如果我们只想使用两个 executor,每个 1 core 和 1GB RAM
spark-shell --master spark://sparkmaster:7077 --total-executor-cores 2 --executor-cores 1 --executor-memory 1g
- 如果我们只想使用两个执行器,每个执行器有 2 个内核和 2GB RAM(总共 4 个内核和 4GB RAM)
spark-shell --master spark://sparkmaster:7077 --total-executor-cores 4 --executor-cores 2 --executor-memory 2g
- 如果我们应用 --total-executor-cores 2,那么只会创建一个执行器。
spark-shell --master spark://sparkmaster:7077 --total-executor-cores 4 --executor-cores 2 --executor-memory 2g
- 总执行器核心数:3 不能被每个执行器的核心数整除:2,剩下的核心数:1 将不会被分配。将创建一个具有 2 个核心的执行器。
spark-shell --master spark://sparkmaster:7077 --total-executor-cores 3 --executor-cores 2 --executor-memory 2g
所以--total-executor-cores / --executor-cores = 将创建的执行者数量。