Spark---SparkCore(三)

一、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)、spark-default.conf配置文件中配置HistoryServer,对所有提交的Application都起作用

在客户端节点,进入../spark-1.6.0/conf/ spark-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,之后所有提交的应用程序运行状况都会被记录。

相关推荐
无足鸟ICT15 小时前
【RHCA+】影响Linux系统性能的因素
linux·运维·服务器
silvamux_15 小时前
微头条爆款体平台适配实测:把交付要求变成可计算的指标
java·线性代数·算法·决策树·矩阵
论文复现现场15 小时前
DeepSeek V4.1 Flash 和 V4 Pro 有什么区别?API 价格、性能与迁移建议
java·服务器·人工智能·python·大模型api·deepseek·deepseek v4.1
沫璃染墨15 小时前
从零入门计算机网络系列(十):HTTP协议进阶——从资源路径解析到状态码与请求头详解
linux·运维·服务器·网络·c++·http
上火的金鱼妹15 小时前
关于多进程sse连接通知的实战
javascript·状态模式·sse
迪康coolmu16 小时前
金融客户数据合规落地:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·数据库·经验分享·安全·网络安全·金融
郭小李16 小时前
转发与重定向
java·服务器·数据库
你看我名字16 小时前
数眼智能 Search + Reader 实战:联网问答怎样避免“搜到了,却引用错了”
android·java·开发语言
小嘉丶学长16 小时前
Day13 · 列表与元组
linux·运维·服务器·开发语言·python
boy快快长大16 小时前
EasyTier初次使用
服务器