Spark案例练习-打包提交

关注公众号:分享电脑学习
回复"百度云盘" 可以免费获取所有学习文档的代码(不定期更新)
云盘目录说明:
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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章