上一篇文章已经介绍了spark源码环境搭建,本文的目的是spark开发环境的搭建。

spark开发环境搭建

预备知识

开发者一般会采用项目构建工具来辅助完成项目的构建、源码的编译、依赖的解决等工作,通常情况下开发者会采用“java + maven、 scala + sbtt”的搭配组合。

  • sbt
    sbt会构建项目,并将scala文件编译出来的class文件打包成一个jar文件,在此期间sbt会自动从仓库中下载编译与运行程序所依赖的jar包。构建完成后会自动生成所需要的jar文件。

  • spark-submit
    spark-submit命令用于部署一个应用程序在spark集群中运行,使用该命令可以提交java、scala项目导出的jar包。

编译运行示例程序

打开在上一章节中的spark源码项目,在{spark dir}/examples/目录下打开SparkPi.scala

配置运行参数

依次打开Run -> Edit Configurations -> 选择 + -> Application

参数配置如下:

VM options: -Dspark.master=local代表使用本地模式运行Spark代码,也可以选择其他模式。

添加运行依赖的jars

再次运行,这次会花费比较长的时间,因为已经可以成功编译SparkPi啦,但是还是没能运行成功,报错如下:

这说明你的代码编译已经成功啦,运行出错的原因是,运行Spark App一般都是通过spark-submit命令,把你的jar运行到已经安装的Spark环境里,也就是所有的Spark依赖都已经有啦,现在你用IDE的方式,就会缺少依赖。

依次打开File -> Project Structure -> Modules -> spark-examples_2.11 -> Dependencies,添加依赖 jars -> {spark dir}/spark/assembly/target/scala-2.11/jars/


需要注意是:
jars/*.jar: 这些依赖jars是在编译打包Spark项目的时候产生的,如果这个目录是空的,或者修改了源代码想更新这些jars,需要重新编译spark

成功运行实例代码

再次运行SparkPi的时候,可以看到输出啦:


参考资料:

  1. blog.tomgou.xyz
  2. linbojin