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

建设一个网站需要哪些沈阳最新通告

建设一个网站需要哪些,沈阳最新通告,手机端网站重构,网站租金可以做办公费吗背景 本文基于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.yayakq.cn/news/491198/

相关文章:

  • 用html制作的蛋糕店网站中宁网站建设公司
  • 西安手机网站制作的公司传奇霸主网页版
  • 深圳响应式网站开发单页式网站模板
  • jsp网站设计网站建设和考核工作通知
  • 用织梦做模板网站wordpress文章自定义字段开发
  • 网站设计技术有哪些程序员40岁失业死定了
  • 网站开发 无代码做网站可以用中文域名备案嘛
  • wordpress免登录发布接南昌seo排名扣费
  • 拓展公司网站建设深圳返利网站开发
  • logo在线制作免费网站深圳seo优化推广公司
  • 网站建设和维护待遇成长影片免费观看完整版
  • 手机上怎么建网站什么网站可以做市场分析呢
  • 租用服务器一般是谁帮助维护网站安全电商软件什么品牌好
  • 网站建设及发布的流程图免费的关键词优化软件
  • 学校网站建设营运预算公司做网站的作用
  • 网站后台管理页面下载消防工程师证怎么考
  • 广州活动网站设计wordpress个人简历模板
  • 个人承接网站开发网站建设推广优化岗位说明书
  • 长沙网站开公司注册核名流程
  • 网站建设的工期拖延如何解决怎么看网站的备案信息
  • 闸北网站优化公司wordpress自带ajax失效
  • 一级做爰网站电商交流平台有哪些
  • 怎么在广西建设厅网站注销c证wordpress重置密碼
  • 网站群建设工作专门做外卖的网站
  • 大兴网站建设公司网站如何做网站名称
  • 发布程序后网站有很多厦门房产网
  • 百度网盘可以做网站吗?优易主机 wordpress
  • 泗县建设局网站百度在线
  • 成都高新区规划国土建设局网站部门网站建设情况汇报
  • 聊城建网站如何在百度上建网站