当前位置: 首页 > 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/310660/

相关文章:

  • 上海网站建设上海黄金营销型网站设计注意
  • 电商网站有哪些功能模块宣传广告设计模板
  • 公司做网站需要给百度交钱吗微信分销是什么
  • 那些网站是做金融行业作图软件app
  • 网站建设策划书的主要内容网站建设基本流程规范
  • 景区网站建设原则网络营销产品概念的五个层次
  • wordpress淘宝客推广插件优化排名工具
  • 手机微网站平台word 发布到wordpress
  • 做网站主要来源国外优秀企业网站
  • 网站网站开发的公司电话网上营销号什么意思
  • 有趣实用的网站vue.js做的网站
  • 做网站要多少费用wordpress路径增加discuz
  • 网站前台首页无法显示大数据平台设计
  • 网站宣传平台wordpress链接设置
  • 网站开发计入什么科目网站建设属于行政那个模块
  • 租电信服务器开网站江阴市城乡建设网站
  • 沈阳网站建设 龙兴科技企业网络采购平台
  • 网站建设先进事迹漳州平台网站建设
  • 临沂网站建设公司招聘营销策略怎么写
  • 自己做网站还有出路吗傻瓜式网站源码
  • WordPress仪表盘主题seo检测
  • 如何在百度做自己公司的网站网页版微信仅传输文件
  • 如何做有亮点的网站建设方案网站建设中的主要功能
  • 组织网站建设应该注意什么怎样用apache做网站
  • 网站建设教程在线观看佛山网站建设方案服务
  • 上海网站建设哪里好网站后台使用什么做的
  • 海会网络做的网站怎么做优化小公司如何做网站隔离
  • 网站建设与 维护实训报告范文网站设计风格类型
  • 裴东莞嘘网站汉建设鱼台做网站多少钱
  • wordpress 分类目录 关键词郑州seo优化顾问