1. 程式人生 > >Scala2.11.8 + Sbt + Maven + IntelliJ Idea + Spark2.0開發環境搭建備忘

Scala2.11.8 + Sbt + Maven + IntelliJ Idea + Spark2.0開發環境搭建備忘

已有hadoop yarn 和 spark 叢集部署、執行在分散式環境中,程式開發編碼在PC上,由於逐漸增多scala編寫spark2.0程式,入鄉隨俗使用sbt和IntelliJ Idea,順便對PC上的Scala + sbt + maven + IntelliJ Idea一些要注意的開發環境配置細節進行記錄,側重於現在網上比較少總結又可能讓人有些困擾的部分,目前這方面總結比較完整的文章好像還比較少(也可能是自己看的不夠多),有些內容也是google國外和自己摸索的,在此進行記錄,一方面方便跟可能有同樣需求的程式猿們討論交流,一方面給做個備忘記錄。

整體上主要是以下幾個步驟。

1. Java JDK 安裝與配置

2. Scala2.11.8 安裝與配置

3. maven 安裝與配置設定檔案

4. sbt 安裝與配置sbt-lauch.jar包

5. 整合開發環境IDE IntelliJ Idea 安裝與配置外掛

6. 通過sbt依賴建立 Spark2.0 專案

1. Java JDK 安裝與配置

官網下載對應作業系統的安裝包,做好環境變數配置,命令列java 相關命令成功執行,網上很多參考文件,不多敘述。

2. Scala 安裝與配置

官網下載對應作業系統的安裝包,做好環境變數配置,命令列scala相關命令成功執行,網上很多參考文件,不多敘述。

3. maven 安裝與配置設定檔案

maven或sbt等開發管理軟體的使用,在開發中能夠較為系統的生成開發目錄結構,管理依賴關係,幫開發人員節省時間,提高效率,當然具體使用與否還是看個人實際開發情況選擇,沒有maven或sbt等管理軟體也可以照樣開發。

官網下載對應作業系統的安裝包,解壓到自己設定的目錄,成功執行mvn相關命令。

(1)由於國內連線預設maven倉庫,網路狀況和速度是個老大難問題,可以在maven目錄下conf/settings.xml檔案配置修改<mirrors></mirrors>部分,查詢並增加國內外的當時仍有效的快速maven倉庫映象,比如阿里雲的maven倉庫映象。先備份原有settings.xml檔案,再如下修改當前settings.xml。

<mirror> 

    <id>nexus-aliyun</id>

    <name>Nexus aliyun</name>

    <url>http://maven.aliyun.com/nexus/content/groups/public</url> 

    <mirrorOf>central</mirrorOf> 

</mirror>

(2)本地下載儲存依賴的目錄路徑,預設是.m2下面(Linux使用者家目錄裡面,Windows C盤使用者目錄裡面),可以改為其他指定目錄,修改conf/settings.xml檔案,<localRepository>修改為指定路徑</localRepository>,以防在使用者目錄下被誤刪或受到其他影響。

(3)這時候沒有安裝IDE,可以通過mvn命令生成maven專案,修改pom.xml,管理專案依賴包,進行程式碼編寫,編輯器自選。

4. sbt 安裝與配置sbt-lauch.jar包

為了進行scala+spark的開發,入鄉隨俗使用sbt,官網下載對應作業系統的安裝包,解壓或安裝到自己設定的目錄,成功執行sbt相關命令。

(1)同樣的,sbt國內連線預設倉庫,網速老大難,下載過程極其緩慢,測速可低至0-2KB/S,典型小水管,還有可能中途連線被斷開,所以同樣需要做更改倉庫映象的嘗試。

修改的方法有幾種不同的方式,考慮到最終呼叫的是sbt路徑下的bin/sbt-launch.jar,這裡採用了直接修改sbt-launch.jar的方式。

先複製備份原有sbt-launch.jar檔案,再開啟當前修改編輯的sbt-launch.jar中的sbt/sbt.boot.properties,這裡修改了[repositories]的local部分, maven-central沒有改,添加了幾個網上找的映象源,都加上去了,也不一定是最快的,速度目前在個人可接受範圍內。

  aliyun-nexus: http://maven.aliyun.com/nexus/content/groups/public/  
  ibiblio-maven: http://maven.ibiblio.org/maven2/
  typesafe-ivy: https://dl.bintray.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
  uk-repository: http://uk.maven.org/maven2/
  jboss-repository: http://repository.jboss.org/nexus/content/groups/public/

(2)sbt使用了ivy,預設將依賴包儲存在家目錄或C盤使用者目錄.ivy下面,如果覺得預設路徑不合適,可以把sbt.boot.properties檔案的[boot]和[ivy]目錄修改為指定目錄,比如ivy-home是cache依賴包路徑,打比方可以改為/home/user/.../ivy-home/  或者  F:\...\ivy-home\,然後指定路徑下生成的cache目錄將具體儲存sbt專案依賴包。 

(3)使用sbt命令生成專案模板,可以編寫build.sbt,進行依賴管理。

5. 整合開發環境IDE IntelliJ Idea 安裝與配置外掛

上面的開發環境配置完成,已可以進行專案開發,個人覺得沒有結合IDE使用來的方便,scala、java開發IDE選擇見仁見智,IntelliJ Idea比較適合本人口味。

官網下載對應作業系統的安裝包,對比免費和付費版本功能,免費的community版一般夠用了,解壓或安裝到指定路徑。

(1)開啟IntelliJ Idea,在彈出的啟動介面中,先進行預設的專案配置(注意是default project配置,以後每個生成的當前專案current project都會先採用該預設配置),包括外掛安裝、引數配置等。開啟可見目前安裝的版本屬於2016.2,截圖介面中,選擇configure中的settings。


(2) 左側選擇plugins,預設已自帶maven外掛,在browse repositories輸入scala,查詢並下載安裝scala外掛,同樣完成sbt外掛安裝。IDE下載這些外掛的作用通常是用於連線IDE和對應的軟體,比如上面已裝好的scala,sbt,maven,通過外掛方便在IDE呼叫已裝軟體的命令和功能,有效地進行開發。

(3)外掛安裝完成後,點選左側Build, Execution, Deployment,在Build Tools裡面分別maven和sbt外掛進行設定,確保外掛呼叫的不是idea預設下載的maven和sbt軟體,而是上述自己手動安裝的比較新的maven和sbt。

maven的設定,首先看到介面右上角,確認是有一行小字“For default project”,表明是做預設專案配置,如果專案生成後,同樣此處的配置介面,將是"For current project",表示只為當前專案做獨立設定。然後對介面上maven home目錄進行選擇,選取上面自己下載的maven目錄;設定檔案選擇maven下的conf/settings.xml,override打勾替換預設的檔案;local 倉庫位置選擇前面設定好的maven本地倉庫路徑。


由於maven下載預設倉庫依賴時,會下載一個模板檔案archetype-catalog.xml,網速慢情況下過於耗時,可能導致下載介面卡住停滯,可以在介面的maven-->runner中設定執行引數,在VM Options寫上引數:-DarchetypeCatalog=internal,表示用本地的archetype-catalog.xml,跳過自動網路下載卡住的步驟,然後手動http連線web網頁,在maven映象或中央倉庫通過下載路徑 org\apache\maven\archetype\archetype-catalog\相應版本號\,下載archetype-catalog.xml,放置在本地maven倉庫路徑的 org\apache\maven\archetype\archetype-catalog\相應版本號\  的對應目錄位置裡面。這樣maven外掛基本設定完了。


類似的,點選sbt外掛,在設定介面將sbt軟體由idea打包的bundled選項改為custom,選擇上面安裝sbt軟體的已經修改好的bin/sbt-launch.jar。


接下來還需要在設定介面左側other settings--->SBT中,去掉Use IDE Settings選項,配置使用自己安裝的sbt包和引數,包括下方的SBT laucher JAR file,需要明確地選擇自己的sbt軟體包,sbt外掛才能在idea中按照期望正確地工作。


這個時候回到原來啟動介面,選擇建立生成新專案,maven或sbt專案,或者直接的java、scala專案,通常已經可以正常工作了,過程不做敘述,網上有很多參考。

6. 通過sbt依賴建立Spark2.0專案

首先在建立的sbt專案中,修改build.sbt,下載spark2.0依賴包,scala編寫spark程式,生成jar包放到spark2.0研發的分散式叢集執行測試。

(1) 在建立新專案介面中,選擇scala--->sbt,在生成的介面中設定專案名稱和儲存位置,程式根目錄。


(2)選擇finish,sbt外掛將自動呼叫上述本地安裝sbt軟體,下載預設依賴包,生成sbt專案結構目錄,這裡第一次建立需要耐心等待一段時間,等待專案依賴包都下好,sbt程式碼木結構才能生成。


(3)在生成的sbt專案中,編輯build.sbt,在scalaVersion後面新增spark依賴,注意格式要求,每行之間還要空一行。spark依賴有兩種編寫方式。

一種是不明確指定spark庫的版本,在依賴包的組織部分 "org.apache.spark" 後面加兩個%號,讓sbt自己去倉庫源裡面根據scala版本匹配,例如


libraryDependencies += "org.apache.spark" %% "spark-core" % "2.0.0" 。


另一種是明確指明spark庫版本,依賴包組織部分 "org.apache.spark" 後面只加一個%號,例如

libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.0.0"
libraryDependencies += "org.apache.spark" % "spark-mllib_2.11" % "2.0.0"
libraryDependencies += "org.apache.spark" % "spark-streaming_2.11" % "2.0.0"
libraryDependencies += "org.apache.spark" % "spark-sql_2.11" % "2.0.0"
libraryDependencies += "org.apache.spark" % "spark-graphx_2.11" % "2.0.0"
編寫好build.sbt,儲存重新整理,將下載spark依賴,正常情況下等待下載完,依賴新增成功,可以通過spark API編寫程式。

但是有時候由於與源倉庫的網速太慢等原因,依賴庫的下載未必順利,導致build.sbt檔案總是顯示unresolved dependencies,就是指下載庫沒有下載完整,或配置檔案沒有記錄完整, 比如網路慢導致spark的某些包沒下下來,也沒什麼好辦法,只能在idea sbt外掛視窗繼續重新整理下載,如果重新整理後sbt下載不正常工作,可以將sbt配置的本地下載庫路徑cache裡相關依賴包目錄刪除,比如org.apache.spark,然後將本地下載庫路徑下面與cache目錄平行的幾個生成配置檔案刪除(做了測試,有時候spark依賴包已全部下載完成,但不知什麼原因,這幾個配置檔案可能沒有相應更新,導致idea中sbt外掛仍然顯示unresolved dependencies,刪除配置檔案後再重新整理sbt,不再顯示錯誤,新增成功),重新重新整理和下載,正常情況下可以完成依賴,build.sbt檔案不會報錯unresolved dependencies。

如果更換了硬碟或重灌了系統,原來Idea仍可使用,如果build.sbt新增庫以後依賴解析報錯,類似invalid ivy2 cache找不到,可以在Idea的Build下SBT配置 JVM Options,原來的VM Parameters為-XX:MaxPermSize=384M,繼續新增-Dsbt.ivy.home=.../ivy-home,-Dsbt.boot.directory=.../sbt-dir/boot,指明cache庫所在路徑,該路徑應與使用的sbt外掛中相關路徑一致。

(4)接下來可以寫個簡單的hello spark程式,import spark的一些基礎包,試試是否可以正常通過sbt編譯和打包,放到叢集執行。由於程式很簡單,只是列印了sparkcontext的類名,setMaster使用local引數,表示讓Spark執行在單機單執行緒上而不用連線到spark叢集,可以直接在idea裡面run一下直接檢視結果。如果有條件,spark程式開發,建議打包在研發測試叢集上執行,分散式程式編寫環境和執行環境儘量分開,如果有問題,在執行叢集裡面去檢視日誌,對比程式,查詢定位問題,不用什麼都在IDE裡完成,個人認為IDE作用是有利於方便編寫程式碼這個步驟。在研發叢集多方面測試通過,再部署到生產環境叢集當中。


相關推薦

Scala2.11.8 + Sbt + Maven + IntelliJ Idea + Spark2.0開發環境搭建

已有hadoop yarn 和 spark 叢集部署、執行在分散式環境中,程式開發編碼在PC上,由於逐漸增多scala編寫spark2.0程式,入鄉隨俗使用sbt和IntelliJ Idea,順便對PC上的Scala + sbt + maven + IntelliJ Ide

“mac os + intellij idea 13 + nodejs開發環境搭建教程(附詳細圖解)

最近剛搭建這套環境,現將其記錄如下: 此時,預設已經裝好node.js和IntelliJ IDEA。 1、開啟IntelliJ IDEA ,點選Configure,再點選Plugins,會出現如圖視窗。 選擇Browse repositories...,。 2此時會彈出

Intellij IDEA工具Java web 環境搭建

ech aid deploy cal 項目 -- windows 7 acl 目錄 Java web 環境搭建 環境依賴 操作系統:Windows 7 64位 開發工具:IntelliJ IDEA 13.1.4 開發工具依賴環境 JDK版本:1.7+ 開發工具依賴插

IntelliJ IDEA配置Lua開發環境

搜索 redist ctu 擁有 ext ++ 可能 默認 pro 一 準備軟件 ?? vredist_x86.exe,是C++開發環境的一個支持插件,如果缺少了vcredist_x86,安裝LuaForWindows-5.1.4-35.exe可能會報錯。 LuaForW

intellij IDEA建立nodejs專案---環境搭建

前提是在你的系統下已經對nodejs安裝成功並環境配置,這個可以見本人的前一篇博文http://blog.csdn.net/stubbornaccepted/article/details/71374489然後就可以繼續啦。 1.預設安裝好了IDEA,在IDE

Golang-------IntelliJ IDEA配置Golang開發環境

工具:IntelliJ IDEA Ultimate 2016.2.4 、 go1.7.3.darwin-amd64.pkg 3、安裝(這裡就不細寫了,相信大家都懂) 4、環境配置 <1> 選擇Configure中的Plugins,

Intellij IDEA配置PHP開發環境

Intellij IDEA是一款非常強大的編譯器,能很好地支援Java HTML CSS等。當然,加入PHP語言也是小菜一碟~ 環境: Windows 7、Intellij IDEA 2016.2.5、PHP5-7、Apache 2.4 步驟: 1、配置好PHP開發環境,包

基於IDEA的JavaWeb開發環境搭建

follow eva 用戶 tomcat bin 壓縮包 模板 地方 服務 基於IDEA的JavaWeb開發環境搭建 基於IDEA的JavaWeb開發環境搭建 jdk下載安裝配置環境變量 下載 安裝 配置環境變量 下載安裝激活使

Hadoop-2.8.0 開發環境搭建(Mac)

Hadoop是一個由Apache基金會開發的分散式系統架構,簡稱HDFS,具有高容錯性、可伸縮性等特點,並且可以部署在低配置的硬體上;同時,提供了高吞吐量的資料訪問效能,適用於超大資料集的應用程式,以及通過叢集拓撲高效快速的處理資料的能力。 本文主要介紹一下Hadoop的開

eclipse4.7.0+maven3.3.9+scala2.11.8+spark2.1.0+hadoop2.7.1在ubuntu16裡的wordcount例項

刪掉src/test下的junit內容 pom.xml參考如下進行修改(確認好使) <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XM

Spark2.2,IDEA,Maven開發環境搭建附測試

前言:   停滯了一段時間,現在要沉下心來學習點東西,出點貨了。   本文沒有JavaJDK ScalaSDK和 IDEA的安裝過程,網路上會有很多文章介紹這個內容,因此這裡就不再贅述。 一、在IDEA上安裝Scala外掛 首先開啟IDEA,進入最初的視窗,選擇C

IntelliJ IDEA 12.0搭建Maven Web SSH2架構專案示例(一)

       用IDEA搭建Maven web專案,對於很多用慣了Eclipse的人可能會很不適應。在專案的目錄結構設定上,Eclipse和IDEA的確有些區別。這篇文章將在原來的基礎上更加詳細的介紹,最後會給出兩個示例來展示實際效果。文章將從5個方面來介紹:(文章貼圖較多

最新版scala2.11.8與spark1.6.1一步到位安裝

一,scala安裝: 先到官網下載一個scala的壓縮包,它沒有過多的要求,然後在Linux下按照如下步驟操作: 1,解壓包: [email protected]:/mysoftwaretar−zxvfscala−2.11

Hadoop實踐(二)---叢集和開發環境搭建Intellij IDEA & Maven 開發Hadoop)

1. 開發環境準備 1. Hadoop叢集安裝 2. Maven安裝 3. Intellij IDEA安裝 2. 建立專案 1. 建立Maven專案 2. 輸入GroupId 和 ArtifactId 新建專案後有提示

Ubuntu+IntelliJ IDEA+Android 配置NDK環境+openCV

reat which .text jnicall find http pytho ava main 最近需要將Python人證對比模型移植安卓端.安卓端需要使用openCV簡單的人像提取處理.在配置openCV前首先需要配置NDK環境. NDK的介紹(http://www.

01_PC單機Spark開發環境搭建_JDK1.8+Spark2.3.1+Hadoop2.7.1

tor 環境 eve exe ring row test source 分享圖片 本文檔基於Windows搭建本地JAVA Spark開發環境。 1 JDK 1.8安裝 官網下載JDK。 註意JDK安裝目錄不可以包含空格,比如:C:\Java\jdk1.8.

IntelliJ IDEA 插件開發視頻教程

evel target ria tor 視頻教程 教程 學習 develop tutorial IntelliJ IDEA 插件開發視頻教程 學習了:http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/plu

Intellij IDEA磨刀之開發工具配置

alt css 技術 安裝使用 ado 編輯 工具 pes 進行 1.主題及主題自體大小設置 2.類和方法註釋模板設置 因為Intellij IDEA 自帶的註釋模板不是很好用,所以我自行設置,每個人根據自己的喜好進行設置即可。 a.打開setting找到File and

java開發環境搭建--jdk安裝、maven配置、Idea

    安裝 JDK 下載安裝 首先開啟 Oracle 官網 JDK 1.8 下載頁面,根據下圖選擇下載各系統對應的版本,這裡以 Win10 64 位作業系統為例。 下載完成之後,雙擊滑鼠進行安裝,一直單擊“下一步”按鈕直至安裝完畢。 環境

Intellij Idea 2017.3 開發前基本設定

作為一名剛入坑Idea的新手程式設計人員,需要對自己的編輯器進行一定的設定,進行程式碼優化,更容易查詢bug等。 一、首先展示一下我自己的介面。        (再次推薦一下 Being輸入法,真的很好用。) 二、安裝Idea