导读:spark和yarn整合后,可以将Application提交到Yarn上运行,和StandAlone提交模式一样,Yarn也有两种提交模式。
具体:
1. yarn-client提交任务
配置:在spark目录下的spark-env.sh添加Hadoop_HOME的配置目录即可提交yarn 任务,具体步骤如下:
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
其他配置不在这里阐释。
提交命令:
1: /home/hadoop/apps/spark-2.3.1-bin-hadoop2.7/bin/spark-submit \
2: --master yarn\
3: --name spark_name \
4: --class com.arua.relstionship.GreateGraph \
5: --num-executors 40 \
6: --executor-memory 4G \
7: --executor-cores 8 \
8: --driver-memory 2G \
9: --conf spark.default.parallelism=400 \
10: --conf spark.storage.memoryFraction=0.5 \
11: --conf spark.shuffle.memoryFraction=0.3 \
12: --conf spark.serializer=org.apache.spark.serizlizer.KryoSerializer \
13: /home/hadoop/Jerry/hello-1.0-SNAPSHOT.jar \
14: yarn /output1234
解释:
1:调用spark-submit命令(即spark-submit命令在linux中的路径)
2:指定任务调度参数(spark和Yarn整合后固定模式)
3:指定任务的名称
4:提交任务的主类的全限定路径
5:任务的executor的数量,默认启动2个
6:executor内存的大小,默认1G
7:每个executor使用内核数,默认1个
8:driver的内存大小,默认为1G
9:该参数用于设置用于设置每个stage的默认task的数量,这个参数很重要,如果不设置会直接影响你的spark作业性能。建议500-100合适。
10:该参数用于设置RDD在exector中持久化内存占比,默认0.6
11:该参数代表exector内存中,分配给shuffle read task 进行聚合操作的比例,默认0.2
12:指定序列化类型
13:jar包的存放位置
14:Yarn调度命令+指定代码中的args参数
2、yarn-cluster提交任务方式
提交命令:./spark-submit --master yarn-cluster --class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-hadoop2.6.0.jar 100
3、参考
spark submit 提交脚本的参数详解_kiki_jay的博客-CSDN博客_spark脚本参数