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

泉州网站建设哪家公司好南宁网站seo外包

泉州网站建设哪家公司好,南宁网站seo外包,办公室装修会计分录,网上帮别人做网站背景 本文基于Spark 3.1.1 目前在做一些知识回顾的时候,发现了一些很有意思的事情,就是Spark UI中ShuffleExchangeExec 的dataSize和shuffle bytes written指标是不一样的, 那么在AQE阶段的时候,是以哪个指标来作为每个Task分区大…

背景

本文基于Spark 3.1.1
目前在做一些知识回顾的时候,发现了一些很有意思的事情,就是Spark UI中ShuffleExchangeExec 的dataSize和shuffle bytes written指标是不一样的,
那么在AQE阶段的时候,是以哪个指标来作为每个Task分区大小的参考呢

结论

先说结论 dataSzie指标是 是存在内存中的UnsafeRow 的大小的总和,AQE阶段(规则OptimizeSkewedJoin/CoalesceShufflePartitions)用到判断分区是否倾斜或者合并分区的依据是来自于这个值,
shuffle bytes written指的是写入文件的字节数,会区分压缩和非压缩,如果在开启了压缩(也就是spark.shuffle.compress true)和未开启压缩的情况下,该值的大小是不一样的。
开启压缩如下:
在这里插入图片描述
未开启压缩如下:
在这里插入图片描述

先说杂谈

这两个指标的值都在 ShuffleExchangeExec中:

case class ShuffleExchangeExec(override val outputPartitioning: Partitioning,child: SparkPlan,shuffleOrigin: ShuffleOrigin = ENSURE_REQUIREMENTS)extends ShuffleExchangeLike {private lazy val writeMetrics =SQLShuffleWriteMetricsReporter.createShuffleWriteMetrics(sparkContext)private[sql] lazy val readMetrics =SQLShuffleReadMetricsReporter.createShuffleReadMetrics(sparkContext)override lazy val metrics = Map("dataSize" -> SQLMetrics.createSizeMetric(sparkContext, "data size")) ++ readMetrics ++ writeMetrics

dataSize指标来自于哪里

涉及到datasize的数据流是怎么样的如下,一切还是得从ShuffleMapTask这个shuffle的起始操作讲起:

ShuffleMapTask||\/
runTask||\/
dep.shuffleWriterProcessor.write //这里的shuffleWriterProcessor是来自于 ShuffleExchangeExec中的createShuffleWriteProcessor||\/
writer.write()  //这里是writer 是 UnsafeShuffleWriter类型的实例||\/
insertRecordIntoSorter||\/
UnsafeRowSerializerInstance.writeValue||\/
dataSize.add(row.getSizeInBytes)

这里的 rowUnsafeRow的实例,这样就获取到了实际内存中的每个分区的大小,
而ShuffleMapTask runTask 方法最终返回的是MapStatus,而该MapStatus最终是在UnsafeShuffleWriter的closeAndWriteOutput方法中被赋值的:

void closeAndWriteOutput() throws IOException {assert(sorter != null);updatePeakMemoryUsed();serBuffer = null;serOutputStream = null;final SpillInfo[] spills = sorter.closeAndGetSpills();sorter = null;final long[] partitionLengths;try {partitionLengths = mergeSpills(spills);} finally {for (SpillInfo spill : spills) {if (spill.file.exists() && !spill.file.delete()) {logger.error("Error while deleting spill file {}", spill.file.getPath());}}}mapStatus = MapStatus$.MODULE$.apply(blockManager.shuffleServerId(), partitionLengths, mapId);}

shuffle bytes written指标来自哪里

基本流程和dataSize 一样,还是来自于ShuffleMapTask

ShuffleMapTask||\/
runTask||\/
dep.shuffleWriterProcessor.write //这里的shuffleWriterProcessor是来自于 ShuffleExchangeExec中的createShuffleWriteProcessor||\/
writer.write()  //这里是writer 是 UnsafeShuffleWriter类型的实例||\/
closeAndWriteOutput||\/
sorter.closeAndGetSpills() ->  writeSortedFile -> writer.commitAndGet -> writeMetrics.incBytesWritten(committedPosition - reportedPosition) -> serializerManager.wrapStream(blockId, mcs) // 这里进行了压缩||\/
mergeSpills||\/
mergeSpillsUsingStandardWriter||\/
mergeSpillsWithFileStream -> writeMetrics.incBytesWritten(numBytesWritten)||\/
writeMetrics.decBytesWritten(spills[spills.length - 1].file.length())
http://www.zhongyajixie.com/news/21362.html

相关文章:

  • 滁州市琅琊区规划建设局网站百度网盘下载
  • 新乡网站优化谁能给我个网址
  • 怎么做网站出肉狗抖音广告推广怎么收费
  • 德州市建设街小学网站网站的营销推广方案
  • 网站前端设计要做什么的谷歌排名推广
  • 购买手表的网站网络营销策划与创意
  • 做鱼网站的域名长春百度seo排名
  • 资源网站很难做网站长尾关键词排名软件
  • 真正免费网站申请全国疫情防控最新数据
  • 网站做百度百科百度地图关键词优化
  • php企业网站管理系统拉新充场app推广平台
  • wordpress 在线教育模板seo网络推广企业
  • 做一份网站的步zou谷歌应用商店app下载
  • 免费网站模板软件手机如何制作网站教程
  • 连云港东海县做网站天津百度分公司
  • 免费做销售网站有哪些百度seo排名公司
  • 推广网站刷排名广告sem是什么意思
  • 大淘客网站怎么做自动点击器
  • 一个网站同时做竞价和seo怎么自己做网站
  • html5 3d网站百度地图广告投放
  • 怎么做ppt教程网站最近新闻摘抄
  • erp网站代做市场调研报告包括哪些内容
  • 怎样做网站首页的banner上海野猪seo
  • 网站建设b2b北京百度推广投诉电话
  • 哪个网站可以免费设计房子互联网舆情信息
  • 个人网站备案材料填写seo可以从哪些方面优化
  • 购物网站的基本功能百度在线客服问答
  • 全国响应式网站建设china东莞seo
  • 如果做动态网站的开发做seo推广一年大概的费用
  • 黑马程序员python教程专业seo网站