intellij下spark提交集群调试

intellij下使用spark提交到集群进行调试

环境准备

  • 搭建spark集群,本例子使用standalone
  • 已经根据之前的文档intellij下spark程序本地调试创建测试项目,或者自己已有的测试项目

    编译打包

    因为提交集群,需要生成对应jar包,这里需要设置intellij idea能在编译生成对应jar,方便后面指定这个jar地址
  1. 打开项目project structure
  2. 在project setttins/artifacts/下新加jar/from modules with depenecies
    img
  3. 指定好对应的main函数,其他配置按照缺省
    img
  4. 点击保存
  5. 点击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包带有本地方信息,跟集群可能是测试集群,另一种方式是通过命令行参数来指定

  1. 先将SparkConf的代码修改成如下:
    1
    val conf = new SparkConf().setAppName("My SparkPi")

这里没有指定master跟jars路径

  1. 通过打开configuartion,在vm options下指定如下内容
    1
    -Dspark.master=spark://localhost:7077 -Dspark.jars=/Users/roger/Documents/code/mysparkpi/out/artifacts/mysparkpi_jar/mysparkpi.jar

运行,完成!调试,ok!

原创技术分享,您的支持将鼓励我继续创作