《從0到1學習spark》-- spark初體驗

  • 2019 年 10 月 6 日
  • 筆記

Spark工程環境搭建

Spark工程相關配置的版本

  • JDK: 1.8.0_181
  • Spark: 2.3.0
  • Hadoop: 2.7
  • Scala: 2.12.6
  • OS: mac
  • Maven: 3.5.4

下載並安裝JDK、Scala、Maven

安裝步驟很簡單,這裡就不做闡述啦。

通過IDEA安裝Scala插件

通過maven方式創建scala工程

按照步驟 點擊next

修改pom.xml中的文件

增加spark和scala相關的依賴

小強直接把pom.xml文件上傳到雲盤,需要的同學可以直接下載。

https://pan.baidu.com/s/1M7KJVH89h6bVMJVpai1s8A 密碼:vdp5

本地模式

將創建好scala工程,可以在本地調試,需要配置sparkConf和創建SparkContext

創建scala的object類

在本地環境運行wordcount

在Edit Configurations設置為本地運行,VM options設置如下:

-Dspark.master=local

然後直接運行main函數即可。在結果輸出的路徑可以查看到相關文件。

該任務的執行結果

集群模式

編譯打包

在生產環境下,通過在IDEA中編寫程式,然後打成jar包,再提交到集群中。可以利用mavne或sbt打包,小強一般用maven創建一個項目,利用maven來管理jar包的依賴。

使用maven打包,首先修改pom.xml中的mainClass,使其和自己對應的類對應起來

運行maven打包命令:mvn clean package

上傳jar包到集群

編譯打包成功後,將對應的jar包上傳到spark集群中的某個節點上

一般公司內都有現成的hadoop集群和spark集群。使用bin/spark-submit腳本執行我們的應用,spark-submit腳本可以為我們配置spark所要用到的一系列環境變數。

在spark-submit可以通過設置參數對spark任務進行調優,這個小強後續會有專題介紹。

交互模式

如果是scala版本的shell,輸入: bin/spark-shell,稍等數秒,shell提示符就會出現。

如果覺得shell中輸出的日誌資訊過多而使人分心,可以調整日誌級別來控制輸出的資訊量。需要在conf的目錄下創建一個名為log4j.prpperties的文件來管理日誌設置。將日誌級別設置為只顯示警告及更嚴重的資訊:

log4j.rootCategory=WARN, console

這會再打開shell,輸出大大減少

總結

我們講到了spark在單機和集群模式下運行spark以及spark的使用。相比java程式碼,scala程式碼更簡潔,spark是由scala開發的,由此可見scala在spark工程中的優勢。

Tags: