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,之后所有提交的应用程序运行状况都会被记录。

相关推荐
Cg1362691597410 分钟前
多态的定义
java·开发语言
云霄IT15 分钟前
新版电脑微信4.1.x.x小程序逆向之——寻找小程序存放位置目录和__APP__.wxapkg
java·微信·小程序
微信api接口介绍16 分钟前
微信社群管理开发
java·开发语言·网络·微信
渣哥19 分钟前
用错注入方式?你的代码可能早就埋下隐患
javascript·后端·面试
一枚前端小能手22 分钟前
🔍 重写vue之ref和reactive
前端·javascript·vue.js
芒果茶叶44 分钟前
深入浅出requestAnimationFrame
前端·javascript·html
歪歪1001 小时前
在哪些场景下适合使用 v-model 机制?
服务器·前端·javascript·servlet·前端框架·js
Do_GH1 小时前
【Linux】02.WSL搭建Linux环境
linux·运维·服务器
「QT(C++)开发工程师」1 小时前
C++语言编程规范-并发
java·linux·c++
Meteors.1 小时前
23种设计模式——迭代器模式 (Iterator Pattern)详解
java·设计模式·迭代器模式