提交命令如下
spark-submit --master yarn --class org.example.SparkDemoClass spark-demo-1.0-SNAPSHOT.jar param1,param2,"param3,param3.1" --jars /local/jars/hive-hcatalog-core-2.0.0.jar,/local/jars/mysql-connector-java-5.1.46.jar
-
传递给main方法的参数,按照添加顺序依次传入,如果某个参数含有空格则需要使用双引号将该参数扩起来;
spark submit脚本中各参数顺序的注意事项:
-
每个参数(最后一个参数除外)后需要先空格再使用\表示结尾;
-
spark-submit必须写在最前面;
-
class、master yarn、deploy-mode client等使用了--标注的参数的顺序可以相互调整;
-
application jar名这个参数必须写在使用了--标注的参数后;
-
向main方法传递的参数必须写在application jar之后。
当我们使用像Yarn这样的集群管理器运行
spark
应用程序
时
,会有几个守护进程在后台运行,如NameNode,Secondary NameNode,DataNode,JobTracker和TaskTracker等。这是一种很有前景的部署模式。5.如果资源不变,你的RDD只有2个分区,那么同一
时
刻只有2个task运行,其余18个核空转,造成资源浪费。上面涉及到
Spark
的许多部署模式,究竟哪种模式好这个很难说,需要根据你的需求,如果你只是测试
Spark
Application,你可以选择local模式。
String[] args = new String[]{"--jars",
"/root/kafka_2.12-0.10.2.0/libs/kafka-clients-0.10.2.0.jar,/root/
spark
-streaming-kafka-0-10_2.11-2.1.0.jar",
"--driver-class-path",
"/roo
提交
到本地
程序
中
指定的
参数
(param)和
spark
-
submit
提交
时
参数
配置一致:
import org.apache.
spark
.deploy.
Spark
Submit
;
public class Dr {
public static void
main
(String[] ar...
<dependency>
<groupId>org.apache.
spark
</groupId>
<artifactId>
spark
-core_2.11</artifactId>
<version>2....
1. 前言
反反复复捣鼓了很久,终于开始学习
Spark
的源码了,果不其然,那真的很有趣。这里我打算一本正经的胡说八道来讲一下
Spark
作业
的
提交
过程。
基础mac系统基础环境如下:
JDK 1.8
IDEA 2019.3
源码
Spark
2.3.3
Scala 2.11.8
提交
脚本
# 事先准备好的
Spark
任务(源码example LocalPi)基于local模式
String[] param = {
"--class", "org.apache.
spark
.examples.
Spark
Pi",
"--master", "local[2]",
"/bigdata/
spark
-2.
直接上样例:
spark
-
submit
--master yarn com.demo.JavaPageRank /home/demo/
Spark
Test.jar "/tep/demo/file.txt" "2"
--master yarn 为运行模式
com.demo.JavaPageRank 主类名
/home/demo/
Spark
Test.jar 包所在本地路径
"/tep/demo...