如何用IntelliJ IDE build & run Spark

准备工作:

1. 下载并安装java 1.8(spark依赖)

2. 下载IntelliJ Community版本并安装,配置JDK。在欢迎界面右下角,选择Configure,选Structure for New Projects,在弹出来的对话框里面选择SDKs,找到你的JAVA_HOME,指定好,保存。

3. 下载spark源代码,本博客使用spark 2.3.0

4. 安装scala,切记安装spark源码pom.xml里面指定版本的scala,否则在IntelliJ里面会有问题。spark需要的scala版本写在pom.xml的scala.version里面,本博客依赖的scala版本是2.11.8,一定下载这个版本,解压,在IntelliJ的Global Libraries里面指定scala-sdk。

如何用IntelliJ IDE build & run Spark_第1张图片

5. 将Spark源码根目录导入IntelliJ,执行build。这个过程有点长,需要十几分钟。只要版本配对,应该没有错误。

常见错误:

找一个example,比如SparkPi.scala,运行一下。一般会碰到错误:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/Seq
    at org.apache.spark.examples.SparkPi.main(SparkPi.scala)
Caused by: java.lang.ClassNotFoundException: scala.collection.Seq
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
这个错误的解决很简单,右键点击要运行的SparkPi.scala,选择Edit ‘SparkPi’,在弹出来的对话框里面选中Include dependencies with "Provided" scope.

如何用IntelliJ IDE build & run Spark_第2张图片

如何用IntelliJ IDE build & run Spark_第3张图片

第二次运行,还会碰到错误“Exception in thread "main" org.apache.spark.SparkException: A master URL must be set in your configuration”,这个是少了一个设置,为了不改源代码,我们会在Edit 'SparkPi'里面选择增加一个VM option: -Dspark.master=local

如何用IntelliJ IDE build & run Spark_第4张图片

看到如下运行结果,证明一切ok了:

如何用IntelliJ IDE build & run Spark_第5张图片

 

你可能感兴趣的:(编程技巧,Spark,IntelliJ)