题外话:首先只是因为不想使用scala常用的IDE开发环境,所以就使用Eclipse来搭建scala运行平台。搭建过程比较波折,所以想把详细的搭建过程记录下来。
1.Scala安装
Scala下载安装地址:https://www.scala-lang.org/download/ 。直接滑动到网页最下面,下载对应的系统的文件解压就可以了。
之后需要配置scala环境变量。这里我是把scala解压后文件直接放在了D盘下。
具体的环境变量设置如下:
现在验证一下scala有没有正确安装,在dos环境下输入scala -version.若是能够显示出scala的安装版本信息,就说明正确安装了。
以下两点需要特别说明:
1:安装scala之前需要先安装JAVA环境,这个网上教程很多,这里就不详细介绍了。
2:我在安装scala的时候,不论是安装包的下载还是环境变量的设置都能网上其他博客上的内容不一样,具体原因不了解,但是scala我的确是安装成功了。
2.Scala for Eclipse环境搭建
先下载scala for eclipse:http://scala-ide.org/download/sdk.html ,按照自己的系统选择对应的文件下载,文件下载之后直接解压就可以了。由于我自己这台电脑上以前没有装过eclipse,所以我直接安装的scala for eclipse,这个版本的eclipse已经安装好了scala插件。貌似网上有很多是通过在现有的Eclipse中安装scala插件来配置的,对于这方面没有研究。
之后打开eclipse.exe 文件就可以进入编辑界面。
下面来写第一个scala程序。要先创建一个scala Project(file-->new-->scala project,都是熟悉的套路),然后在这个工程下创建一个package(右击Project名,new-->package),之后在这个package下就可以创建scala object里。最后的结构如下截图:
之后在helloworld.scala窗口下右击-->run as -->scala application 就可以运行了。运行结果如下:
到此,已经可以写scala程序了。以下两点需要特别说明:
1:我第一次安装的时候,右击run as的时候并没有scala application选项。后来发现是因为我没有把java\jre\bin安装路径加入到环境变量中。scala for eclipse:the version of scala library found in the build bath is prior to the one provided Scala IDE
导致这个错误的原因就是本地的scala版本和scala for eclipse中的版本不一致导致的。需要更改scala IDE的scala 版本。具体犯法如下:右击-->buid path-->configure build path……
3. 配置Spark
在scala for Eclipse中配置spark开发环境之前需要先安装hadoop和spark,这个网上资料很多,就不赘述了。
在hadoop的环境变量设置中最后先设置一个HADOOP_HOME,否则启动spark-shell时会一直报错(即使按网上说的把winutils.exex文件放到Hadoop的安装目录下依然解决不了问题):
Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable
null
\bin\winutils.exe in the Hadoop binaries.
之后就是要导入spark中的jars包.(这里跟网上很多其他资料不一样,这里根本找不到scala-assembly-*-.jar类似的jar包,应该是saprk版本的问题,1版本的spark可能会有这个jar包)。具体过程如下:
右击 工程名-->Build Path-->Configure build path
导入jar包之后发现Project名出现了一个红色的小叉号。
点开Problem可以看到具体的错误提示:
首先我们来解决方框圈出来的错误:
More than one scala library found in the build path (D:/Eclipse/scala-SDK-4.7.0-vfinal-2.12-win32.win32.x86_64/eclipse/plugins/org.scala-lang.scala-library_2.12.3.v20170725-052526-VFINAL-6ac6da8.jar, D:/spark/jars/scala-library-2.11.8.jar).At least one has an incompatible version. Please update the project build path so it contains only one compatible scala library.
这里需要我们把该Project下自带的scala library删除,就在刚才添加spark包的地方。
之后发现小红叉还在,但是又出现了一个新的报错信息:
The version of scala library found in the build path of test_Spark (2.11.8) is prior to the one provided by scala IDE (2.12.3). Setting a Scala Installation Choice to match.
这个的意思是说scala library库里的scala 版本比scalaIDE的版本低,这里需要说明的是,这里的scala是指spark安装包的scala(这里版本为2.11.8),而我们在第一步单独安装的scala版本时2.12.8。这个报错信息的意思就是需要我们把scala IDE中的scala版本调到2.11。具体操作如下:
右击Project-->scala-->set the scala Installation。之后报错信息就全部消失了,小红叉也消失了。(其他的错误可能也是由于版本冲突导致。)
到此,就完全配置好了。