场景:
用Scala语言编写 Spark 独立应用程序,安装sbt后无法正确运行
问题描述
在安装sbt的时候,查询sbt版本,我当时候是先按照书本上的步骤安装了1.3.8版本的sbt,结果出现了error,后面安装了1.5.0版本的sbt后成功解决了这个问题。但是后面的用sbt打包Scala应用程序依旧出现了问题....
查看sbt版本代码:
cd /usr/local/sbt
./sbt sbtVersion
由于我的sbt版本是1.5.0的,我按着书本上的步骤操作,但是却频频出现下面的error:
(base) hadoop@ubuntu:~/sparkapp$ /usr/local/sbt/sbt package
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256M; support was removed in 8.0
[info] Updated file /home/hadoop/sparkapp/project/build.properties: set sbt.version to 1.5.0
[info] welcome to sbt 1.5.0 (Oracle Corporation Java 1.8.0_162)
[info] loading global plugins from /home/hadoop/.sbt/1.0/plugins
[info] loading project definition from /home/hadoop/sparkapp/project
/home/hadoop/sparkapp/simple.sbt:4: error: type mismatch;
found : sbt.librarymanagement.DependencyBuilders.OrganizationArtifactName
required: sbt.io.FileFilter
libraryDependencies +="org.apache.spark" && "spark-core" % "2 .4.0"
^
[error] Type error in expression
原因分析:
由于和书本上安装的版本不一样,对应的simple.sbt文件的内容也要适当修改。
好吧...当时候可能是不细心,把%% 看成了&& ,但是改了这个错误之后出现了另外的error,我意识到...估计是版本的问题导致不能按照书本上的来操作?simple.sbt文件用于声明该独立应用程序的信息以及与Spark的依赖关系。
书本上的simple.sbt文件如下:(书本的sbt是1.3.8)
name :="Simple Project"
version :="1.0"
scalaVersion :="2.11.12"
libraryDependencies +="org.apache.spark" %% "spark-core" % "2.4.0"
解决方案:
更改simple.sbt文件内容信息
我更改后simple.sbt文件如下:(我的是1.5.0)
name := "My Spark App"
version := "1.0"
scalaVersion := "2.12.10"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.0"
OK!成功解决。