环境准备
- 搭建spark集群,本例子使用standalone
- 已经根据之前的文档intellij下spark程序本地调试创建测试项目,或者自己已有的测试项目
编译打包
因为提交集群,需要生成对应jar包,这里需要设置intellij idea能在编译生成对应jar,方便后面指定这个jar地址
- 打开项目project structure
- 在project setttins/artifacts/下新加jar/from modules with depenecies

- 指定好对应的main函数,其他配置按照缺省

- 点击保存
- 点击build/build artifacts/,在弹框下选择build,生成对应的jar包
配置方法
一种最直接的方法是直接在代码里指定SparkConf的中master跟添加jar包,将1
val conf = new SparkConf().setMaster("local").setAppName("My SparkPi")
修改如下1
val conf = new SparkConf().setMaster("spark://localhost:7077").setAppName("My SparkPi").setJars(List("/Users/roger/Documents/code/mysparkpi/out/artifacts/mysparkpi_jar/mysparkpi.jar"))
这里setJars路径设置成对应的jar路径
运行,完成!调试,ok!
但是上述方法有点问题就是后面的jar包带有本地方信息,跟集群可能是测试集群,另一种方式是通过命令行参数来指定
- 先将SparkConf的代码修改成如下:
1
val conf = new SparkConf().setAppName("My SparkPi")
这里没有指定master跟jars路径
- 通过打开configuartion,在vm options下指定如下内容
1
-Dspark.master=spark://localhost:7077 -Dspark.jars=/Users/roger/Documents/code/mysparkpi/out/artifacts/mysparkpi_jar/mysparkpi.jar
运行,完成!调试,ok!