1.Spark Submit任务提交

本文基于http://www.louisvv.com/archives/1340.html修改,感谢原作者。
Spark源码版本: 2.1.0


Spark在集群上的运行方式.png

Spark在集群上的运行方式及相关概念

Spark应用程序在集群上以独立的进程集运行,整个的任务执行过程如下:

  1. 用户提交编写的程序(Driver Program),Driver初始化SparkContext对象,SparkContext负责将应用程序在集群上启动运行;

  2. SparkContext连接到Cluster Manager,申请资源,注册Application;

  3. SparkContext连接到Cluster Manager后,Cluster Manager根据申请的资源,在集群中的Worker节点上创建并启动Executor;

  4. 启动Executor后,Executor将注册信息发送给Driver,告诉Driver,Executor已添加;

  5. SparkContext初始化过程中会创建并启动DAGScheduler,DAGScheduler将用户编写的程序转化为Task,DAGScheduler将Task发送给指定Executor,进行任务计算 ;

  6. Executor将Task计算结果返回给Driver,Spark任务计算完毕,一系列处理关闭Spark任务。


提交Spark程序:

从Spark任务的第一步开始,如何提交用户编写的程序?Spark提交程序
使用$SPARK_HOME/bin目录下的 spark-submit 脚本去提交用户的程序

spark-sumbit脚本提交示例.png
# Run application locally on 8 cores
./bin/spark-submit \
  --class org.apache.spark.examples.SparkPi \
  --master local[8] \
  /path/to/examples.jar \
  100

# Run on a Spark standalone cluster in client deploy mode
./bin/spark-submit \
  --class org.apache.spark.examples.SparkPi \
  --master spark://207.184.161.138:7077 \
  --executor-memory 20G \
  --total-executor-cores 100 \
  /path/to/examples.jar \
  1000

# Run on a Spark standalone cluster in cluster deploy mode with supervise
./bin/spark-submit \
  --class org.apache.spark.examples.SparkPi \
  --master spark://207.184.161.138:7077 \
  --deploy-mode cluster \
  --supervise \
  --executor-memory 20G \
  --total-executor-cores 100 \
  /path/to/examples.jar \
  1000

# Run on a YARN cluster
export HADOOP_CONF_DIR=XXX
./bin/spark-submit \
  --class org.apache.spark.examples.SparkPi \
  --master yarn \
  --deploy-mode cluster \  # can be client for client mode
  --executor-memory 20G \
  --num-executors 50 \
  /path/to/examples.jar \
  1000

# Run a Python application on a Spark standalone cluster
./bin/spark-submit \
  --master spark://207.184.161.138:7077 \
  examples/src/main/python/pi.py \
  1000

# Run on a Mesos cluster in cluster deploy mode with supervise
./bin/spark-submit \
  --class org.apache.spark.examples.SparkPi \
  --master mesos://207.184.161.138:7077 \
  --deploy-mode cluster \
  --supervise \
  --executor-memory 20G \
  --total-executor-cores 100 \
  http://path/to/examples.jar \
  1000

未完待续。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、 性能调优 1.1、 分配更多资源 1.1.1、分配哪些资源? Executor的数量 每个Executor所...
    Frank_8942阅读 4,869评论 2 36
  • 1.1、 分配更多资源 1.1.1、分配哪些资源? Executor的数量 每个Executor所能分配的CPU数...
    miss幸运阅读 3,285评论 3 15
  • spark-submit的时候如何引入外部jar包 在通过spark-submit提交任务时,可以通过添加配置参数...
    博弈史密斯阅读 3,066评论 1 14
  • Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AM...
    大佛爱读书阅读 2,990评论 0 20
  • Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校...
    达微阅读 668评论 0 0

友情链接更多精彩内容