Scala 開發Spark 基本模板
阿新 • • 發佈:2018-12-29
一、JDK安裝(略)
二、Scala安裝配置
2.1進入scala官網下載對應版本的scala 安裝包。
2.2 新建目錄
mkdir -p /usr/local/scala
2.2解壓
tar -zxvf scala-2.10.4.tar.gz -C /usr/local/scala
2.3配置環境變數
vi /etc/profile
#scala path
export SCALA_HOME=/usr/local/scala/scala-2.10.4
export PATH=$PATH:$SCALA_HOME/bin
source /etc/profile
2.4 在命令列輸入 scala 回車
三、新建maven專案
3.1 File > New > Project,
3.2 填寫maven基本資訊
3.3 選擇自己安裝的maven,自己配置的本地倉庫和settings.xml檔案
四、新增Scala的支援
4.1 在新建的專案右鍵 選擇 AddFramework Support... > Scala
五、修改pom.xml檔案,增加Spark依賴支援
5.1增加阿里雲映象
<repositories> <repository> <id>aliyun</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </repository> <repository> <id>cloudera</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url> </repository> <repository> <id>jboss</id> <url>http://repository.jboss.com/nexus/content/groups/public</url> </repository> </repositories>
5.2 增加spark 依賴
<!--Spark Core--> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.10</artifactId> <version>${spark.version}</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>${hadoop.version}</version> <scope>compile</scope> </dependency>
5.3 新建 一個scala檔案 ModuleSpark
/**
* Created by dengwenqi on 2018/8/8
* Spark Application 程式設計模板
*/
object ModuleSpark {
/**
* 如果Spark Application 執行在本地的話,Driver
* @param args
*/
def main(args: Array[String]): Unit = {
/**
* 從前面spark-shell命令列可知
* Spark 資料分析的程式入口SparkContext,用於讀取資料
*/
//讀取Spark Application 的配置資訊
val sparkConf = new SparkConf()
//設定SparkApplication名稱
.setAppName("ModuleSpark Application")
//設定程式執行的環境,通常情況下,在IDE中開發的時候,設定為local mode,至少是兩個Thread
//在實際部署的時候通過提交應用的命令去進行設定
.setMaster("local[2]")
val sc = SparkContext.getOrCreate(sparkConf)
/**==================================
*/
/**
* step1: read data
* SparkContext 用於讀取資料
*/
/**
* step2:process data
* RDD#transformation
*/
/**
* step3:write data
* 將處理的結果資料儲存
* RDD#action
*/
/**
* ========================
*/
//在開發測試的時候,為了在每個Application頁面監控檢視應用中的Job的執行
Thread.sleep(50000)
//關閉資源
sc.stop()
}