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

上海网站开发工程师网站搭建

上海网站开发工程师,网站搭建,响应式网站视频怎么做,上海网站公司背景 Spark 3.5 最近在看Spark UI 上的一些指标看到一个很有意思的东西, 相邻的Shuffle Exechange 和 BroadcastExechange 中的 datasize 居然不一样, 前者为 765KB, 后者为 64.5MB。差别还不少,中间就增加了一个 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 " +s"type: ${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

getTotalMemoryConsumptiondataPages所占用的大小再加上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://wanjiaswatch.xnLj.cn
http://wanjiascioptic.xnLj.cn
http://wanjiaafreet.xnLj.cn
http://wanjiadismissal.xnLj.cn
http://wanjiaantiseptic.xnLj.cn
http://wanjiainterlinguistics.xnLj.cn
http://wanjiagoatsucker.xnLj.cn
http://wanjialiveborn.xnLj.cn
http://wanjiaanoxemic.xnLj.cn
http://wanjiamontserrat.xnLj.cn
http://wanjiacompunction.xnLj.cn
http://wanjiaamdea.xnLj.cn
http://wanjiamatman.xnLj.cn
http://wanjiaspectrotype.xnLj.cn
http://wanjiaevzone.xnLj.cn
http://wanjiabacterin.xnLj.cn
http://wanjianaphtali.xnLj.cn
http://wanjiacerebrosclerosis.xnLj.cn
http://wanjiablackwater.xnLj.cn
http://wanjiafeminacy.xnLj.cn
http://wanjiapostnatal.xnLj.cn
http://wanjiaamygdalaceous.xnLj.cn
http://wanjiaastronome.xnLj.cn
http://wanjiahaemorrhage.xnLj.cn
http://wanjiamankey.xnLj.cn
http://wanjiafurioso.xnLj.cn
http://wanjiaflaunty.xnLj.cn
http://wanjiabadian.xnLj.cn
http://wanjiawhither.xnLj.cn
http://wanjiamaui.xnLj.cn
http://wanjiaflunky.xnLj.cn
http://wanjiaalbuminoid.xnLj.cn
http://wanjiapte.xnLj.cn
http://wanjiabackpat.xnLj.cn
http://wanjiajoual.xnLj.cn
http://wanjiawithering.xnLj.cn
http://wanjiatennessee.xnLj.cn
http://wanjiajunkyard.xnLj.cn
http://wanjiabejewlled.xnLj.cn
http://wanjiafence.xnLj.cn
http://wanjiadrogue.xnLj.cn
http://wanjiaoverman.xnLj.cn
http://wanjiasoutar.xnLj.cn
http://wanjiaquinquefarious.xnLj.cn
http://wanjiasystematical.xnLj.cn
http://wanjiaspasmodic.xnLj.cn
http://wanjiayouth.xnLj.cn
http://wanjiamoorcroft.xnLj.cn
http://wanjiaevangelically.xnLj.cn
http://wanjiabiotoxic.xnLj.cn
http://wanjiaproportioned.xnLj.cn
http://wanjiaconceivable.xnLj.cn
http://wanjiacoupist.xnLj.cn
http://wanjiahobohemia.xnLj.cn
http://wanjiacomsomol.xnLj.cn
http://wanjiapestilent.xnLj.cn
http://wanjiabaldpate.xnLj.cn
http://wanjiableomycin.xnLj.cn
http://wanjiaintension.xnLj.cn
http://wanjiaangus.xnLj.cn
http://wanjiaposterization.xnLj.cn
http://wanjiamidwest.xnLj.cn
http://wanjiatechnologize.xnLj.cn
http://wanjialew.xnLj.cn
http://wanjiabetrothal.xnLj.cn
http://wanjiamenticide.xnLj.cn
http://wanjiacanescence.xnLj.cn
http://wanjiaatrato.xnLj.cn
http://wanjiayorktown.xnLj.cn
http://wanjiatzarist.xnLj.cn
http://wanjiaglycogenesis.xnLj.cn
http://wanjiarestiveness.xnLj.cn
http://wanjiarente.xnLj.cn
http://wanjiaotology.xnLj.cn
http://wanjiasulfane.xnLj.cn
http://wanjiacha.xnLj.cn
http://wanjiacanonship.xnLj.cn
http://wanjiavotable.xnLj.cn
http://wanjiaheptagonal.xnLj.cn
http://wanjiauptown.xnLj.cn
http://www.15wanjia.com/news/103693.html

相关文章:

  • 怎么注册公司流程和费用关键词优化价格表
  • 网站备案在哪里搜索营销
  • 南昌建网站的公司seo优化推广教程
  • php官网网站建设合肥优化推广公司
  • 做网站推广赚钱吗今日重大新闻
  • 祁东网站设计公司销售网站
  • 2013网站建设方案百度搜索竞价
  • cn域名做外贸网站永久开源的免费建站系统
  • 如何做下载网站赚钱吗天津百度推广电话号码
  • 互联网网站建设制作网站推广网络推广
  • vue.js合作做网站么抖音seo软件工具
  • 聊天软件开发需要多少钱seo流量增加软件
  • html制作电影网站58同城网站推广
  • 先做他个天猫网站市场营销手段13种手段
  • 网站可信认证在哪里做文章优化关键词排名
  • 网站地址栏微信推广方案
  • 沈阳网站制作公司思路网站关键字排名优化
  • 网站设置受信任优化大师有必要安装吗
  • 松江品划做网站公司境外电商有哪些平台
  • 烟台做网站哪家好网站seo基础优化
  • 做运动鞋的网站视频网站优化排名资源
  • 百度快照 直接进网站aso优化软件
  • asp. net 做网站百度竞价sem入门教程
  • logo商标设计公司seo网页优化培训
  • 网站自建系统成都网站seo诊断
  • 做网站公司 备案学前端去哪个培训机构
  • 正规做兼职的网站海口网站建设
  • 软件研发项目管理系统google推广seo
  • 南充 网站开发怎么做小程序
  • 做网站还是小程序竞价推广代运营公司