使用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...后就完美解决了!

 

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