一、Spark广播变量和累加器

1、广播变量

1)、广播变量理解

2)、广播变量使用

val conf = new SparkConf()
conf.setMaster("local").setAppName("brocast")
val sc = new SparkContext(conf)
val broadCast = sc.broadcast(list)
val lineRDD = sc.textFile("./words.txt")
lineRDD.filter { x => broadCast.value.contains(x) }.foreach { println }
sc.stop()

3)、注意事项

能不能将一个RDD使用广播变量广播出去?

不能,因为RDD是不存储数据的。可以将RDD的结果广播出去。

广播变量只能在Driver定义,不能在Executor端定义

在Driver端可以修改广播变量的值,在Executor端无法修改广播变量的值。

2、累加器

1)、累加器理解

2)、累加器的使用

val conf = new SparkConf()
conf.setMaster("local").setAppName("accumulator")
val sc = new SparkContext(conf)
val accumulator = sc.accumulator(0)
sc.textFile("./words.txt").foreach { x => {accumulator.add(1) } }
println(accumulator.value)
sc.stop()

3)、注意事项

累加器在Driver端定义初始值,累加器只能在Driver端读取,在Excutor端更新

二、Spark weibui界面

1、SparkUI界面介绍

可以指定提交Application的名称

./spark-shell --master  spark://node1:7077 --name myapp

2、配置historyServer

1)、临时配置,对本次提交的应用程序起作用

./spark-shell --master spark://node1:7077 
--name myapp1
--conf spark.eventLog.enabled=true
 --conf spark.eventLog.dir=hdfs://node1:9000/spark/test

停止程序,在Web Ui中Completed Applications对应的ApplicationID中能查看history

2)、sparkdefault.conf配置文件配置HistoryServer,对所有提交的Application都起作用

客户端节点进入../spark-1.6.0/confspark-defaults.conf最后加入:

//开启记录事件日志功能
spark.eventLog.enabled           true
//设置事件日志存储目录
spark.eventLog.dir                    hdfs://node1:9000/spark/test
//设置HistoryServer加载事件日志位置
spark.history.fs.logDirectory   hdfs://node1:9000/spark/test
//日志优化选项,压缩日志
spark.eventLog.compress         true

启动HistoryServer:

./start-history-server.sh

访问HistoryServer:node4:18080,之后所有提交的应用程序运行状况都会被记录

原文地址:https://blog.csdn.net/yaya_jn/article/details/134640103

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_19838.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注