当前位置: 首页 > news >正文

网站介绍模板临桂城乡建设局网站

网站介绍模板,临桂城乡建设局网站,网站建设三大部分,河北常见网站建设价格概述 共享变量 共享变量的工作原理Broadcast VariableAccumulator 共享变量 共享变量的工作原理 通常,当给 Spark 操作的函数(如 mpa 或 reduce) 在 Spark 集群上执行时,函数中的变量单独的拷贝到各个节点上,函数执行时,使用…

概述

  • 共享变量
    • 共享变量的工作原理
    • Broadcast Variable
    • Accumulator

共享变量

共享变量的工作原理

通常,当给 Spark 操作的函数(如 mpareduce) 在 Spark 集群上执行时,函数中的变量单独的拷贝到各个节点上,函数执行时,使用的是自己节点执行上的变量,节点上的变量更新不会更新至 driver ,在任务之间支持通用的读写共享变量是低效的;然而,Spark 的提供了两种有限类型的共享变量:broadcast variablesaccumulators

Broadcast Variable

Broadcast Variable会将使用到的变量,仅仅为每个节点拷贝一份,而不会为每个task都拷贝一份副本,因此其最大的作用,就是减少变量到各个节点的网络传输消耗,以及在各个节点上的内存消耗
通过调用SparkContextbroadcast()方法,针对某个变量创建广播变量
注意: 广播变量,是只读的,在算子函数内,使用到广播变量时,每个节点只会拷贝一份副本。可以使用广播变量的value()方法获取值。

由下图,深入理解 Broadcast Variable
在这里插入图片描述
由图可知,普通变量Broadcast Variable 区别就是,网络传输可以大大的降低,Broadcast Variable 是每个节点机器只有一份,而 普通变量 是每个 task 都会有一份,浪费内存存储。

可以想象一个极端情况,如果map算子有10个task,恰好这10个task还都在一个worker节点上,那么这个时候,map算子使用的外部变量就会在这个worker节点上保存10份,这样就很占用内存了。

接下来通过具体的案例,来使用一下这个广播案例;代码如下图:

object BroadcastOpScala {def main(args: Array[String]): Unit = {val conf = new SparkConf()conf.setAppName("BroadcastOpScala").setMaster("local")val sc = new SparkContext(conf)val dataRdd = sc.parallelize(Array(1, 2, 3, 4, 5))val variable = 2// 1.定义广播变量val variableBroadcast = sc.broadcast(variable)// 2.使用广播变量,调用其 value方法dataRdd.map(_ * variableBroadcast.value).foreach(println _)}
}

在这里插入图片描述

Accumulator

Spark 提供的 Accumulator,主要用于多个节点对一个变量进行共享性的操作。
正常情况下在 Spark的任务中,由于一个算子可能会产生多个 task 并行执行,所以在这个算子内部执行的聚合计算,都是局部的,想要实现多个 task 进行全局聚合计算,此时就需要用到 Accumulator 这个共享的累加变量 。

注意: Accumulator只提供了累加的功能。在task只能对Accumulator进行累加操作,不能读取它的值。只有在Driver进程中才可以读取Accumulator的值。

代码如下:

object AccumulatorOpScala {def main(args: Array[String]): Unit = {val conf = new SparkConf()conf.setAppName("AccumulatorOpScala").setMaster("local")val sc = new SparkContext(conf)val dataRDD = sc.parallelize(Array(1,2,3,4,5))// 1.定义累加变量val sumAccumulator = sc.longAccumulator// 2.使用累加变量dataRDD.foreach(sumAccumulator.add(_))println(sumAccumulator.value)}
}

在这里插入图片描述

结束

至此共享变量就结束了,如有问题,欢迎评论区提问。

http://www.yayakq.cn/news/818863/

相关文章:

  • 南宁营销型网站制作wordpress申请网站吗
  • 咨询公司网站源码佛山市品牌网站建设价格
  • 深圳定制专业网站在线制作图片散发光芒
  • 做新房什么网站好杭州网站建设公司排名
  • 怎样做元古建筑的网站结构图信息发布网站有哪些
  • 广州建设银行网站可以查企业的网站
  • 蒙阴网站优化做渠道该从哪些网站入手
  • 三种常用的网站设计软件外贸资源网
  • 做网站多少分辨率就可以wordpress 如何重启
  • 动软代码生成器 做网站济南网站建设方案报价
  • 东莞个人免费建网站微信ios分身版下载
  • 惠州市建设局网站做贸易上什么网站
  • 加油站项目建设背景徐水网站建设公司
  • 有口碑的模板网站建设关于用户网站建设的论文
  • 建设游戏运营网站开展工作总结网站seo分析工具
  • 网站域名怎么改衡阳房产网
  • 手机建公司网站房地产找客源10个方法
  • 怎么做网站的排名优化如何做网站刷题
  • 网站开发 英语词汇自己做的网站怎么显示表格边框
  • 做it的兼职网站有哪些wordpress编辑器字体大小
  • 2021年建站赚钱邢台建设银行官方网站
  • 旅游网站建设流程海外网络搭建
  • 2014网站设计风格百度广告推广怎么收费
  • 电商素材网站福田区罗湖区宝安区龙华区
  • 手机网站制作移动高端网站建设如何制作企业网页
  • 电子商务网站建设与实验西安网站设计西安搜推宝
  • 北京做网站制作的公司阿克苏网站建设优化
  • 法学网站阵地建设郴州是几线城市
  • 网站的模块wordpress 主题 激活
  • 地方网站盈利备案图标怎么放在网站中