Ubuntu+Spark+IDEA+SBT+scala專案搭建流程記錄
阿新 • • 發佈:2019-01-24
環境配置:
自行配置好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