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

酒店网站建设方案结束语如何在百度上推广业务

酒店网站建设方案结束语,如何在百度上推广业务,网页ui设计的排版,公益事业单位网站建设方案引言:本文将全面且深入地解析Blaze RangePartitioning算子的Native实现过程。相较于原生Spark,RangePartitioning的Native实现在执行时间上达到了30%的显著下降,同时在资源开销方面节省了高达76%。这一改进大幅降低了运行成本,展现…

引言:本文将全面且深入地解析Blaze RangePartitioning算子的Native实现过程。相较于原生Spark,RangePartitioning的Native实现在执行时间上达到了30%的显著下降,同时在资源开销方面节省了高达76%。这一改进大幅降低了运行成本,展现了Native实现带来的巨大优势。

一、算子描述

RangePartitioning是shuffle partitioning的一种分区类型。它通过根据数据的值范围将数据划分成多个分区。每个分区包含特定范围内的值,通常用于处理有序的数据集,能够根据数据值进行动态划分。

RangePartitioning 的基本思想是:先对数据采样找到划分标志bounds,根据bounds将数据划分成多个近似大小的区间,然后将数据按所属区间写入对应partition,用于order by 全排序场景。

二、实现方案

RangePartitioning 实现主要包含采样和partition划分两个部分。

步骤一:首先需要获取每个partition对应的区间划分范围bounds,所以会先对全量数据进行采样,算出 partitionNum - 1 个区间分割点bounds。具体流程如下:

1、在driver端基于InternalRow进行数据采样:

  • 通过spark.sql.execution.rangeExchange.sampleSizePerPartition参数控制每个分区平均采样数量,设置一个稍微过采样一点的采样数sampleSizePerPartition。

  • 对每个分区采用蓄水池采样(Reservoir Sampling)算法进行采样。

  • 对采样结果评估,记录采样不均衡的分区重新采样(某个分区数据量过多,按照sampleSizePerPartition均值采样会出现样本数少于实际应采样数量,即采样不均衡的情况)。

  • 计算每个样本的权重weight,通过sumWeights/numReducer = step找到每个边界的步长,类似于直方图划分边界找出numReducer-1个分割点bounds。

2、由于采样数据量可能不足导致bounds较少,需要重新设置partitionNum=bounds.len + 1。因此会出现RangePartitioning的实际partition num与设置数量不同的情况。

3、定义rangepartition的序列化方式,主要包括三个参数:SortExpr、numPartitions、Bounds。进而转成native 算子进行后续处理。

图片

步骤二:在native端需要再计算一次全量数据,将数据按分割点bounds写入对应的partition。具体流程如下:

1、将bounds和input数据都转成可直接比较的arrow-row类型。

2、针对每个batch,对将数据与bounds进行比较并确定所在partition id:

  • 如果bounds.len<=128,直接进行比较。

  • 如果bounds.len>128,进行二分查找提速。

图片

三、优化效果

通过构造sql语句测试加速效果:

sql测试例子

11.8GB数据量:

insert overwrite table blaze_t.like_lineitem select * from tpch_parquet_1000.lineitem order by l_quantity
实现Native RangePartitioning

执行计划:

图片

sql 时间1073.516 s

Stage Total Time Across All Tasks: 8.9h

没有实现Native RangePartitioning,会回退到spark的RangePartitioning

图片

sql 时间 1357.814 s

Stage Total Time Across All Tasks  38.1h

Blaze‍‍Spark‍‍‍

sql总耗时

1073.516 s

1357.814 s

Stage Total Time Across All Tasks

8.9h

38.1h

Stage时间提升

(38.1-8.9)/38.1 = 0.7664042

多个不同sql测试取均值

Stage时间提升:76.94%

四、总结

  • 多次测试取均值,RangePartitioning 实现native相比旧版执行时间下降30%,资源开销节约70%

  • 由于采样结果可能较少导致bounds小于partition num-1,RangePartitioning可能实际执行的partition num与设置不同。

 

http://www.dtcms.com/wzjs/354919.html

相关文章:

  • 免费自己制作网站方法wordpress网站建设
  • 昌吉州建设局网站进入百度app查看
  • 手机网站制作教程html5+css3视频教程大全网络营销师主要做什么
  • 做网站维护有前途吗营销技巧培训
  • 镇江网站设计建设价格个人推广网站
  • 安吉网站建设以下属于网站seo的内容是
  • 熊撑号怎么做网站推广福州关键词快速排名
  • 网站开发平台及常用开发工具手机营销软件
  • 贵州网站开发流程搜索引擎搜索器
  • 怎么用大淘客做网站推广的公司
  • 网站建设 经济效益seo服务商
  • 服务器2003系统如何建设网站武威网站seo
  • 住房城乡建设部官方网站网站快速优化排名推荐
  • 人社部能力建设中心网站免费广告推广平台
  • 什么软件做网站好百度域名注册官网
  • 温州企业建站程序全球搜是什么公司
  • 2015手机版网站制作关键词搜索优化公司
  • java可以做网站后台吗免费引流人脉推广软件
  • 小红书seo排名帝搜软件百度的搜索引擎优化
  • 烟台网站制作培训找相似图片 识别
  • 获奖网站设计电商运营去哪里学比较好
  • 网站建设企业服务商推广游戏怎么拉人最快
  • 在西宁做网站可以吗爱站网ip反查域名
  • 西安专业网站建设公司排名百度一下马上知道
  • 免费网站源码大全下载网络营销软文
  • 用vultr做网站优化营商环境心得体会
  • 做外贸不能访问国外网站怎么办stp营销战略
  • 网站运营和seo的区别上海百度seo网站优化
  • 网站安排百度人工在线客服
  • wordpress 魔北京官网优化公司