使用Eclipse創建並運行scala項目--Spark實戰的方式

前提:

1.先安裝好Eclipse依賴的環境;

2.Eclipse的各種優化配置

 

環境:

OS: Deepin15.11

JDK: 1.8.0_221

Maven: 3.6.2

Eclipse-JEE: 2019-06 (4.12.0)

注意:

Spark嚴格依賴與Scala的版本,請不要隨意下載各自的最新版,如果不知道Spark對應的版本,可以訪問spark的官網下載頁:

http://spark.apache.org/downloads.html 頁面上有說明對應的scala的版本對應!例如:

groupId: org.apache.spark 

artifactId: spark-core_2.11 

version: 2.4.4

2.4.4是spark的版本,2.11是Scala的版本!!

 

1.安裝Eclipse兩個必須的插件:

A.Scala IDE 從在線商店就可以安裝,僅選擇Scala IDE for Eclipse項即可;

B.m2eclipse-scala插件,通過在線站點的方式安裝。

 

Name:m2eclipse-scala

Location:http://alchim31.free.fr/m2e-scala/update-site

 

2.創建Maven項目,但是使用作者的項目模板

 

https://github.com/spark-in-action/scala-archetype-sparkinaction/raw/master/archetype-catalog.xml

Spark in Action

 

3.項目創建時,將會依據模板文件初始化項目

注意,如果使用中央倉庫,會很慢,甚至失敗!

可以配置Maven使用阿里雲的maven倉庫,加快初始化速度。

 

4.創建項目運行配置:

 

5.運行項目

A.發現報錯:錯誤: 找不到或無法加載主類 org.sia.chapter03App.App

 

點擊Problems頁籤:

 

說明:Scala版本不匹配!!!Spark2.4.4對應Scala2.11.0

解決:

A1.修改項目的POM文件爲:

<properties>

<maven.compiler.source>1.8</maven.compiler.source>

<maven.compiler.target>1.8</maven.compiler.target>

<encoding>UTF-8</encoding>

<scala.tools.version>2.11</scala.tools.version>

<scala.version>2.11.0</scala.version>

<spark.version>2.4.4</spark.version>

</properties>

A2.升級插件版本:

<groupId>net.alchim31.maven</groupId>

<artifactId>scala-maven-plugin</artifactId>

<version>4.2.0</version> 原來爲3.2.0

 

B.再次運行:報錯java.lang.NoClassDefFoundError: scala/Product$class

原因:編譯器的版本不匹配,Eclipse使用了2.12版本,Scala的編譯器的版本也要匹配用2.11版本

解決:項目根目錄右鍵Properties,按照下圖更改:

 

C.再次運行:報錯java.io.FileNotFoundException: /usr/local/spark/logs/info.log (沒有那個文件或目錄) ---作者虛擬機裏的這個路徑是OK的

原因:作者項目的log4j的日誌文件目錄路徑是寫死的,我的卻不是在那個目錄

解決:更改日誌文件路徑即可!

 

log4j.appender.file.File=logs/info.log

5.再次運行項目,成功:

 

此時Problems頁面發現還有錯誤,但是已經提示更新項目的解決方法:

在項目的根目錄,右鍵--》Maven--》Update Project...後就完美解決了!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章