Spark2.0源码阅读环境搭建既开发环境搭建图解

Spark2.0源码阅读环境和Spark开发环境,我们选择使用IDEA社区版,所以下载IDEA社区版;并且使用Java8环境。

1 jdk8安装

下载略
Spark2.0源码阅读环境搭建既开发环境搭建图解
解压到当前目录

tar -xzvf jdk-8u101-linux-x64.tar.gz

Spark2.0源码阅读环境搭建既开发环境搭建图解
…………
Spark2.0源码阅读环境搭建既开发环境搭建图解
查看
Spark2.0源码阅读环境搭建既开发环境搭建图解
移动到相应目录(自己新建的目录)

mv jdk1.8.0_101 /home/hjr/develop/java8

Spark2.0源码阅读环境搭建既开发环境搭建图解

2 IDEA 安装

下载略
Spark2.0源码阅读环境搭建既开发环境搭建图解
解压到当前目录

tar -xzvf ideaIC-2016.2.2.tar.gz

Spark2.0源码阅读环境搭建既开发环境搭建图解
…………..
Spark2.0源码阅读环境搭建既开发环境搭建图解
查看
Spark2.0源码阅读环境搭建既开发环境搭建图解
移动到相应目录

mv idea-IC-162.1628.40 /home/hjr/develop

Spark2.0源码阅读环境搭建既开发环境搭建图解

3 IDEA设置

3.1 Scala插件安装

Spark2.0源码阅读环境搭建既开发环境搭建图解
IDEA最新版界面
Spark2.0源码阅读环境搭建既开发环境搭建图解
打开之后选择设置主题,在选择安装插件,我这里已经安装好了Scala插件,就不再截图了
Spark2.0源码阅读环境搭建既开发环境搭建图解

3.2 Git安装

下载地址

https://git-scm.com/downloads/

选择相应的系统下载(我们是Linux)
Spark2.0源码阅读环境搭建既开发环境搭建图解
Spark2.0源码阅读环境搭建既开发环境搭建图解
我们是Ubuntu16.04,所以我们使用以下命令在线安装:

apt-get install git

Spark2.0源码阅读环境搭建既开发环境搭建图解
我们是hjr用户,没有root权限,所以加上sudo

sudo apt-get install git

Spark2.0源码阅读环境搭建既开发环境搭建图解
Spark2.0源码阅读环境搭建既开发环境搭建图解
查看版本
Spark2.0源码阅读环境搭建既开发环境搭建图解

4 Spark2.0源码下载

我们使用Github上的Spark源码作为源码下载地址:(也可以直接到Spark官网上面去下载,然后Import进来,都是可以的)

Spark官方的Github源码地址
https://github.com/apache/spark
Spark官网下载地址
http://spark.apache.org/downloads.html

4.1 Check out from Version Control–GitHub

Spark2.0源码阅读环境搭建既开发环境搭建图解
设置GitHub登录信息
Spark2.0源码阅读环境搭建既开发环境搭建图解
密码验证
Spark2.0源码阅读环境搭建既开发环境搭建图解
设置Spark源码下载地址:
Spark2.0源码阅读环境搭建既开发环境搭建图解
点击Clone,开始下载Spark源码
Spark2.0源码阅读环境搭建既开发环境搭建图解
漫长的等待(时长由自己的网络决定)。。。。。。
Spark2.0源码阅读环境搭建既开发环境搭建图解

Spark2.0源码阅读环境搭建既开发环境搭建图解

4.2 打开项目

打开项目的时候,IDEA会根据Maven工程的POM文件自动下载所需要的Jar包:
Spark2.0源码阅读环境搭建既开发环境搭建图解
等待。。。。。。
终于jar包下载完成,打开了项目,如下图所示:
Spark2.0源码阅读环境搭建既开发环境搭建图解
Spark2.0源码阅读环境搭建既开发环境搭建图解

4.3 设置项目的JDK

打开File–>Project Structure–>Platform settings–>SDKS选择Java的安装路径即可Apply即可
Spark2.0源码阅读环境搭建既开发环境搭建图解
Spark2.0源码阅读环境搭建既开发环境搭建图解
然后选择Setup JDK,就会自动识别我们刚才设置的的JDK
Spark2.0源码阅读环境搭建既开发环境搭建图解
等待项目Updating……
Spark2.0源码阅读环境搭建既开发环境搭建图解
项目更新完之后效果如下图所示:(没有报错了)
Spark2.0源码阅读环境搭建既开发环境搭建图解
Spark2.0源码阅读环境搭建既开发环境搭建图解

4.4 测试运行examples

Spark2.0源码阅读环境搭建既开发环境搭建图解
有问题:(各种找不到呗)

Error:(45, 66) not found: type SparkFlumeProtocol
  val transactionTimeout: Int, val backOffInterval: Int) extends SparkFlumeProtocol with Logging {
Error:(70, 39) not found: type EventBatch
  override def getEventBatch(n: Int): EventBatch = {
Error:(85, 13) not found: type EventBatch
        new EventBatch("Spark sink has been stopped!", "", java.util.Collections.emptyList())

这是下载jar包的时候,没有下载完全,再来一次就行,或者再来多次就行了。
View –> Tool Windows –> Maven Projects –>Generate Sources and Update Folders For All Projects(两个箭头首尾相连的那个按钮),然后等待…(这个过程如果你需要关闭idea,随意就行,因为重启idea后它会继续)
Spark2.0源码阅读环境搭建既开发环境搭建图解
Spark2.0源码阅读环境搭建既开发环境搭建图解
(我这里来了两次,终于下载完全了,现在是编译的过程,没有报错了,一大堆Warning…不管咯)
Spark2.0源码阅读环境搭建既开发环境搭建图解

编译成功之后,如下图所示:
Spark2.0源码阅读环境搭建既开发环境搭建图解

运行一个Example实例:
运行LocalPi,又报错了:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/Function1
    at org.apache.spark.examples.LocalPi.main(LocalPi.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.ClassNotFoundException: scala.Function1
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 6 more

Process finished with exit code 1

错误原因分析:Scala 的版本与 Spark2.0所使用的Scala版本不匹配

这里Spark2.0默认使用的是Scala2.11.8,所以我们也得将我们的Scala调整为Scala2.11.8

IDEA安装的Scala插件里所对应的Scala版本不是2.11.8,具体是哪个版本我们得查看一下。

更多Spark相关教程见以下内容

Spark 的详细介绍:请点这里
Spark 的下载地址:请点这里

相关推荐