歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Spark2.0源碼閱讀環境搭建既開發環境搭建圖解

Spark2.0源碼閱讀環境搭建既開發環境搭建圖解

日期:2017/2/28 13:44:35   编辑:Linux教程

Spark2.0源碼閱讀環境和Spark開發環境,我們選擇使用IDEA社區版,所以下載IDEA社區版;並且使用Java8環境。

1 jdk8安裝

下載略

解壓到當前目錄

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


…………

查看

移動到相應目錄(自己新建的目錄)

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

2 IDEA 安裝

下載略

解壓到當前目錄

tar -xzvf ideaIC-2016.2.2.tar.gz


…………..

查看

移動到相應目錄

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

3 IDEA設置

3.1 Scala插件安裝


IDEA最新版界面

打開之後選擇設置主題,在選擇安裝插件,我這裡已經安裝好了Scala插件,就不再截圖了

3.2 Git安裝

下載地址

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

選擇相應的系統下載(我們是Linux)


我們是Ubuntu16.04,所以我們使用以下命令在線安裝:

apt-get install git


我們是hjr用戶,沒有root權限,所以加上sudo

sudo apt-get install git



查看版本

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


設置GitHub登錄信息

密碼驗證

設置Spark源碼下載地址:

點擊Clone,開始下載Spark源碼

漫長的等待(時長由自己的網絡決定)。。。。。。

4.2 打開項目

打開項目的時候,IDEA會根據Maven工程的POM文件自動下載所需要的Jar包:

等待。。。。。。
終於jar包下載完成,打開了項目,如下圖所示:

4.3 設置項目的JDK

打開File–>Project Structure–>Platform settings–>SDKS選擇Java的安裝路徑即可Apply即可


然後選擇Setup JDK,就會自動識別我們剛才設置的的JDK

等待項目Updating……

項目更新完之後效果如下圖所示:(沒有報錯了)

4.4 測試運行examples


有問題:(各種找不到呗)

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後它會繼續)


(我這裡來了兩次,終於下載完全了,現在是編譯的過程,沒有報錯了,一大堆Warning…不管咯)

編譯成功之後,如下圖所示:

運行一個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,具體是哪個版本我們得查看一下。

Copyright © Linux教程網 All Rights Reserved