文章目录
资源调度
资源调度 Master 路径
spark-1.6.0/core/src/main/scala/org.apache.spark/deploy/Master/Master.scala
提交应用程序,submit 的路径
spark-1.6.0/core/src/main/scala/org.apache.spark/ deploy/SparkSubmit.scala
总结:
- Executor 在集群中分散启动,有利于 task 计算的数据本地化。
- 默认情况下(提交任务的时候没有设置–executor-cores 选项),每一个 Worker 为当前的 Application 启动一个 Executor,这个Executor 会使用这个 Worker 的所有的 cores 和 1G 内存。
- 如果想在 Worker 上启动多个 Executor,提交 Application 的时候要加–executor-cores 这个选项。
- 默认情况下没有设置–total-executor-cores,一个 Application 会使用 Spark 集群中所有的 cores。
结论演示
使用 Spark-submit 提交任务演示。也可以使用 spark-shell,
- 默认情况每个 worker 为当前的 Application 启动一个 Executor,这个 Executor 使用集群中所有的 cores 和 1G 内存。
./spark-submit --master spark://node1:7077 --class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-hadoop2.6.0.jar 10000
- 在 workr 上启动多个 Executor,设置–executor-cores 参数指定每个executor 使用的 core 数量。
./spark-submit --master spark://node1:7077 --executor-cores 1 --class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-hadoop2.6.0.jar 10000
- 内存不足的情况下启动 core 的情况。Spark 启动是不仅看 core 配置参数,也要看配置的 core 的内存是否够用。
./spark-submit --master spark://node1:7077 --executor-cores 1 --executor-memory 3g --class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-hadoop2.6.0.jar 10000
- –total-executor-cores 集群*使用多少 cores
注意:一个进程不能让集群多个节点共同启动。
./spark-submit --master spark://node1:7077 --executor-cores 1 --executor-memory 2g --total-executor-cores 3 --class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-hadoop2.6.0.jar 10000