Scala的IDE有兩大陣營,ScalaIDE(Eclipse)和IntelliJ-idea,我之前基本上都是把Spark的開發環境搭建在ScalaIDE上,但是它的編譯確實太慢,不得已我遷移到了IntelliJ上,下面,我以圖解的方式說明在IntelliJ上搭建Spark和Spark SQL開發環境的主要步驟。
0. 假設IntelliJ-Idea for Scala和Spark最新的源代碼都已經准備好了
1. 生成IntelliJ的工程文件(必須)
sbt/sbt -Phive -Phive-0.13.1 -Phadoop-2.3 gen-idea
。。漫長的等待和重試,(有高速vpn翻牆經驗的偷笑吧)
2. 打開IntelliJ,導入Spark工程(必須)
3. 打開Project Structure,設置相關模塊(必須)
4. 刪除不需要的模塊(可選)
(Scala代碼的編譯時間一般比較長,不常用的模塊就直接刪除吧,不會真正從磁盤刪除源代碼,只是工程文件而已)
5. 替換”CORE“模塊中的mesos jar(必須)
6. 把“CORE”模塊中的"resources"文件夾真正標示為“Resource”(必須)
否則會說Jetty啟動失敗,一堆ui/static下的文件找不到
7. 修改文件IntelliJ中class文件的輸出路徑(可選)
通常我都會修改“Output Path”,將其設置到ramdisk中,原因有二:1).避免和sbt輸出的文件路徑相同,會導致在sbt和ide切換執行單元測試時編譯時間過長;2).ramdisk畢竟能減少磁盤的讀寫,能省一點就省一點吧。
上圖只修改了“CORE”模塊,對應其它模塊和“Test Output Path”的路徑也一並修改
8.把conf文件夾作為“resource”放到hive模塊中(可選)
通常,我把hive-site.xml文件也會放到conf下,把常用配置設置好。
9.打開SparkSQLCLIDriver.scala,配置執行環境(可選)
10.執行,測試!(可選)
以上就是我配置開發環境的完整過程,可能有些細節沒有完全說到位,大家多嘗試一下!