首頁 > 軟體

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

2020-06-16 17:23:29

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,具體是哪個版本我們得檢視一下。

更多Spark相關教學見以下內容

CentOS 7.0下安裝並設定Spark  http://www.linuxidc.com/Linux/2015-08/122284.htm

Spark1.0.0部署指南 http://www.linuxidc.com/Linux/2014-07/104304.htm

Spark2.0安裝設定文件  http://www.linuxidc.com/Linux/2016-09/135352.htm

Spark 1.5、Hadoop 2.7 叢集環境搭建  http://www.linuxidc.com/Linux/2016-09/135067.htm

Spark官方文件 - 中文翻譯  http://www.linuxidc.com/Linux/2016-04/130621.htm

CentOS 6.2(64位元)下安裝Spark0.8.0詳細記錄 http://www.linuxidc.com/Linux/2014-06/102583.htm

Spark2.0.2 Hadoop2.6.4全分散式設定詳解 http://www.linuxidc.com/Linux/2016-11/137367.htm

Ubuntu 14.04 LTS 安裝 Spark 1.6.0 (偽分散式) http://www.linuxidc.com/Linux/2016-03/129068.htm


IT145.com E-mail:sddin#qq.com