Ubuntu+Spark+IDEA+SBT+scala项目搭建流程记录

环境配置:

自行配置好IDEA、jdk

在spark官网下载spark-2.1.0-bin-hadoop2.7.tgz并解压,运行spark-shell检验是否可用

IDEA中添加SBT、scala插件


学习步骤建议:尽管网上很多写好的算法代码,spark初学者还是应从基本操作学起。否则用别人的代码跑,报错都不知道错在哪里

1.在spark-shell中尝试简单的scala代码实现

2.用IDEA+SBT练习简单的Helloworld打印代码

3.用IDEA+SBT完成简单的jar打包练习,并在Spark本地模式运行成功

4.继续进阶....


正文:

1.IDEA中通过scala-SBT新建项目

//注意scala-sdk版本要和spark版本对应.

//IDEA自带插件版本是2.12.x,本文选择scala-2.11.x和spark2.1.0匹配

//不知道是不是必须这样。但是尝试其他版本会报错

//推荐使用SBT建立项目,最保险。我试过用scala-IDEA建项目,再自己修改目录、导入jar,会报object xxx is not a member of org.apache.spark.xxx这样的错

2.修改build.sbt文件

name := "SBTassemblyJar"

version := "1.0"

scalaVersion := "2.11.0"

libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0"

libraryDependencies += "org.apache.spark" %% "spark-mllib" % "2.1.0"

libraryDependencies += "org.apache.spark" %% "spark-mllib-local" % "2.1.0"

resolvers += "Akka Repository" at "http://repo.akka.io/releases/"

//注意:每行之间要有空行
//如果代码中用到MLlib则一定要在此处标注libraryDependencies
//SBT的作用和Maven类似,不需要再自己导入jar包。我自己导入了MLlib包,反而报错

3.在src/main/scala目录下新建object类型scala文件,写入代码

//此处记录一个遇见的问题
//前后代码略 
val testData = sc.textFile("file:///home/liang/IdeaProjects/SBTassemblyJar/ALS/test.data")
//用textFile读取本地文件时
//1.要标明“file://”
//2.写绝对路径时,不要写成“/home/IdeaProjects/..”会报错找不到目录


4.在IDEA的终端输入sbt package命令,显示“Done package”
//注意:不需要用IDEA对项目打包/编译/run
5.到projectname/target/scala目录下复制新打包好的jar包,粘贴到spark的目录下

6.在终端输入命令

./bin/spark-submit --class "test" ./target/scala/sbtassemblyjar.jar



猜你喜欢

转载自blog.csdn.net/u013584334/article/details/69388482