關注公衆號:分享電腦學習
回覆"百度雲盤" 可以免費獲取所有學習文檔的代碼(不定期更新)
雲盤目錄說明:
tools目錄是安裝包
res 目錄是每一個課件對應的代碼和資源等
doc 目錄是一些第三方的文檔工具
承接上一篇文檔《Spark案例練習-PV的統計》
打開端口18080的歷史服務,會發現沒有歷史日誌,現在我們想要顯示歷史日誌。
採取以下的方式
一:
//1. 構建SparkContext上下文對象
val conf = new SparkConf()
.setMaster("local") // 指定應用在哪兒執行,可以是local、或者stadnalone、yarn、mesos集羣
.setAppName("logpvuv") //指定應用的名字
.set("spark.eventLog.enabled","true")
.set("spark.eventLog.dir","hdfs://master:8020/spark/history")
可以看到日誌信息
二:
Spark應用參數可以配置的地方
1. 在spark-default.conf裏面配置
2. ${SPARK_HOME}/bin/spark-submit腳本
添加參數 --conf "spark.ui.port=4050"
3. 可以在代碼中構建SparkConf的時候通過相關API指定參數
如果上面三個都配置的話,我們配置不同的端口的話,會運行那種呢?
比如:
(1) spark-default.conf 配置 4055
(2) 添加參數 --conf "spark.ui.port=4051
(3) .set("spark.ui.port","4050")"
結果會運行4050
運行一個spark應用的時候,先去加載spark-default.conf裏面的配置文件,第二個回去加載運行spark-submit命令的配置參數,最後代碼中的配置會覆蓋前面的配置
優先級:3 》 2 》 1
現在我們準備將代碼打包提交到集羣上運行,先將一部分代碼去掉,保留下面的部分
保存到數據庫的部分也註釋掉,不往數據庫保存
基於maven進行打包(clean install即可)
(1)clean:刪除target文件
(2)package:打包
(3)install: 打包,並且會jar包安裝到本地的maven倉庫中
使用spark-submit提交應用
將jar上傳後
1. 在local運行
./bin/spark-submit \
--class 全包路徑.類名 \
--master local \
Jar包的位置
可以省略--master local \ 因爲默認就是在local運行
./bin/spark-submit \
--class 全包路徑..LogPVAndUVCount \
/opt/modules/jar/logpvuv.jar
2. 在standalone集羣運行
./bin/spark-submit \
--class 全包路徑.類名 \
--master spark://bigdata.ibeifeng.com:7070 \
Jar包的位置
8080頁面可以找到
可以查看歷史服務中也是有的
有一個參數
deploy-mode 部署模式 :決定driver運行在哪裏
client:客戶端,driver運行客戶端(指提交SparkSubmit應用的這臺機器)
cluster:集羣,driver運行在集羣中任意一臺Worker節點上
如果不指定的話默認是在客戶端 我們現在指定
./bin/spark-submit \
--class 全包路徑.LogPVAndUVCount \
--master spark://master:7070 \
--deploy-mode cluster \
/opt/modules/jar/logpvuv.jar
可以在客戶端模式下面查看8080頁面
不過這個地方端口常用的6060作爲集羣模式 而客戶端模式使用7070的
./bin/spark-submit \
--class 全包路徑.LogPVAndUVCount \
--master spark://master:6066 \
--deploy-mode cluster \
--name logpvuv1 \
/opt/modules/jar/logpvuv.jar