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

南宁网站seo推广优化公司厨具 技术支持东莞网站建设

南宁网站seo推广优化公司,厨具 技术支持东莞网站建设,2021东莞封城最新消息,dw建设网站教案背景 Spark 3.5 最近在看Spark UI 上的一些指标看到一个很有意思的东西, 相邻的Shuffle Exechange 和 BroadcastExechange 中的 datasize 居然不一样#xff0c; 前者为 765KB, 后者为 64.5MB。差别还不少#xff0c;中间就增加了一个 AQEShuffleRead 计划 结论 Shuffle E…背景 Spark 3.5 最近在看Spark UI 上的一些指标看到一个很有意思的东西, 相邻的Shuffle Exechange 和 BroadcastExechange 中的 datasize 居然不一样 前者为 765KB, 后者为 64.5MB。差别还不少中间就增加了一个 AQEShuffleRead 计划 结论 Shuffle Exechange 中的是真实 UnsafeRow的大小 BroadcastExechange 中的是 MemoryBlock 类型数据结构所占的大小 而不是UnsafeRow的大小。 且BroadcastExechange中的datasize大小 和 2的整数倍接近。 现象以及分析 上图 两个同样的 ShuffleExechange 记录条数和 ShuffleExechange 中 datasize 大小不一样而在BroadcastExechange 中 dataSize 大小却是一样的都是64.5MB 关于 ShuffleExchange中的 dataSize的计算可以参考:Spark UI中Shuffle dataSize 和shuffle bytes written 指标区别这里重点分析一下后者. 直接看BroadcastExechange代码: override lazy val relationFuture: Future[broadcast.Broadcast[Any]] {SQLExecution.withThreadLocalCaptured[broadcast.Broadcast[Any]](session, BroadcastExchangeExec.executionContext) {try {// Setup a job tag here so later it may get cancelled by tag if necessary.sparkContext.addJobTag(jobTag)sparkContext.setInterruptOnCancel(true)val beforeCollect System.nanoTime()// Use executeCollect/executeCollectIterator to avoid conversion to Scala typesval (numRows, input) child.executeCollectIterator()...val relation mode.transform(input, Some(numRows))val dataSize relation match {case map: HashedRelation map.estimatedSizecase arr: Array[InternalRow] arr.map(_.asInstanceOf[UnsafeRow].getSizeInBytes.toLong).sumcase _ throw new SparkException([BUG] BroadcastMode.transform returned unexpected stype: ${relation.getClass.getName})}longMetric(dataSize) dataSize其中child.executeCollectIterator() 是在把数据从各个 Executor 收集到 Driver 端来便于进行广播操作。 最主要的是 mode.transform(input, Some(numRows))这里的数据流如下: HashedRelationBroadcastMode.transform||\/ HashedRelation.apply(rows, key, numRows.toInt, isNullAware isNullAware)||\/ UnsafeHashedRelation.apply(input, key, sizeEstimate, mm, isNullAware, allowsNullKey,ignoresDuplicatedKey)||\/ new UnsafeHashedRelation(key.size, numFields, binaryMap) 最终调用的 UnsafeHashedRelation.estimatedSize的方法 override def estimatedSize: Long binaryMap.getTotalMemoryConsumption 而 getTotalMemoryConsumption 是dataPages所占用的大小再加上longArray的大小 public long getTotalMemoryConsumption() {long totalDataPagesSize 0L;for (MemoryBlock dataPage : dataPages) {totalDataPagesSize dataPage.size();}return totalDataPagesSize ((longArray ! null) ? longArray.memoryBlock().size() : 0L);} 那么 BytesToBytesMap 是怎么分配的呢如下 val binaryMap new BytesToBytesMap(taskMemoryManager,// Only 70% of the slots can be used before growing, more capacity help to reduce collision(sizeEstimate * 1.5 1).toInt,pageSizeBytes) 默认的PageSize值为defaultPageSizeBytes: private lazy val defaultPageSizeBytes {val minPageSize 1L * 1024 * 1024 // 1MBval maxPageSize 64L * minPageSize // 64MBval cores if (numCores 0) numCores else Runtime.getRuntime.availableProcessors()// Because of rounding to next power of 2, we may have safetyFactor as 8 in worst caseval safetyFactor 16val maxTungstenMemory: Long tungstenMemoryMode match {case MemoryMode.ON_HEAP onHeapExecutionMemoryPool.poolSizecase MemoryMode.OFF_HEAP offHeapExecutionMemoryPool.poolSize}val size ByteArrayMethods.nextPowerOf2(maxTungstenMemory / cores / safetyFactor)val chosenPageSize math.min(maxPageSize, math.max(minPageSize, size))if (Utils.isG1GC tungstenMemoryMode MemoryMode.ON_HEAP) {chosenPageSize - Platform.LONG_ARRAY_OFFSET} else {chosenPageSize}} 这个跟内存以及core有关。 当在进行val loc binaryMap.lookup 以及loc.append操作的时候就会进行dataPage以及longArray的分配。而该size的大小并不是实际占用的大小而是分配给该dataPage的大小。其实你会发现该datasize的大小几乎和2的倍数接近。
http://www.dnsts.com.cn/news/27716.html

相关文章:

  • 优质的南昌网站建设做平台网站怎么做
  • 北京优秀网站建设阿里建站价格
  • 在线买房网站建设 方案网站框架布局
  • 公司网站不备案吗青岛网站建设在哪
  • 北京北站苏州网站建设教程
  • 怎样建网站卖东西郑州网站设计费用
  • 网站三层结构示意图天津港建设公司官网
  • 做网站朋友圈广告的文案怎么写旅游网
  • 地方生活门户网站有哪些400网站建设价格
  • 建站网络公司页面设计的标准有哪些
  • 安庆做网站河北省永清县建设局网站
  • 网站建设规划方案ppt网站建设方案流程
  • 用jsp做网站有什么好处焦溪翠冠梨做的网站
  • 可做百度百科参考资料的网站市场策划方案
  • 电子政务系统网站建设的基本过程dede古风类网站源码
  • wordpress仿站难吗wordpress识图搜索代码
  • 二级域名网站怎么建设网站建设看什么书
  • 网站报价方案快站优惠券去哪里找
  • 仿制网站好的营销网站
  • 网站制作专业的公司重庆公司专业建站
  • 学生校园网站模板分析公司网站的开发策略
  • 宣城市建设银行网站首页网站站外优化推广方式
  • 广西住房和城乡建设厅官网桂建云东莞网络优化推广
  • 平板电脑做网站吗网站手机端 怎么做
  • 自己怎么优化网站排名做中英文网站
  • 安徽网站建设整体策划方案公共资源交易网招标信息
  • 关键词的选择网站提示摄影设备有哪些
  • 做推广都有哪些网站建设银行企业网站无法打印回单
  • 购物网站留言反馈页面机场建设投资公司官方网站
  • 手机企业wap网站iis 多网站安全设置