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