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

上海新闻网头条新闻进行优化

上海新闻网头条新闻,进行优化,wordpress加密数据,福州在线项目建设管理系统目录 HQL语法优化之任务并行度 优化说明 Map端并行度 Reduce端并行度 优化案例 HQL语法优化之任务并行度 优化说明 对于分布式计算任务来说,设置一个合理的并行度至关重要。Hive的计算任务依赖于MapReduce框架来完成,因此并行度的调整需要从Map端和…

目录

HQL语法优化之任务并行度

优化说明

Map端并行度

 Reduce端并行度

 优化案例


HQL语法优化之任务并行度

优化说明

对于分布式计算任务来说,设置一个合理的并行度至关重要。Hive的计算任务依赖于MapReduce框架来完成,因此并行度的调整需要从Map端和Reduce端两方面考虑。

Map端并行度

Map端的并行度指的是Map任务的数量,这通常是由输入文件的切片数决定的。在大多数情况下,Map端的并行度无需手动调整。但在以下特殊情况下,可以考虑调整Map端并行度:

  1. 查询的表中存在大量小文件 按照Hadoop默认的切片策略,每个小文件会被分配给一个独立的map task进行处理。如果查询的表包含大量的小文件,则会导致启动大量的map task,造成计算资源的浪费。为了解决这个问题,可以使用Hive提供的CombineHiveInputFormat,将多个小文件合并成一个切片,从而减少map task的数量。相关参数如下:

    set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
  2. Map端有复杂的查询逻辑 如果SQL语句中包含了复杂的查询逻辑,如正则替换、JSON解析等,那么Map端的计算可能会相对较慢。在这种情况下,如果计算资源充足,可以考虑增加Map端的并行度,使每个map task处理的数据量减少,以加快计算速度。相关参数如下:

    -- 一个切片的最大值
    set mapreduce.input.fileinputformat.split.maxsize=256000000;
 Reduce端并行度

Reduce端的并行度是指Reduce任务的数量。与Map端相比,Reduce端的并行度更为关键。Reduce端的并行度可以由用户指定,也可以由Hive根据输入文件的大小自动估算。Reduce端并行度的相关参数如下:

  • set mapreduce.job.reduces; (指定Reduce端并行度,默认值为-1,表示用户未指定)
  • set hive.exec.reducers.max; (Reduce端并行度最大值)
  • set hive.exec.reducers.bytes.per.reducer; (单个Reduce Task计算的数据量,用于估算Reduce并行度)

Reduce端并行度的确定逻辑如下:

如果指定了参数mapreduce.job.reduces的值为一个非负整数,则Reduce并行度为该指定值。否则,Hive将自行估算Reduce并行度,估算逻辑如下:

假设Job输入的文件大小为totalInputBytes, 参数hive.exec.reducers.bytes.per.reducer的值为bytesPerReducer, 参数hive.exec.reducers.max的值为maxReducers

则Reduce端的并行度为:

Reduce并行度=min⁡(⌈totalInputBytesbytesPerReducer⌉,maxReducers)Reduce并行度=min(⌈bytesPerReducertotalInputBytes​⌉,maxReducers)

由于Hive自行估算Reduce并行度时,是基于整个MR Job输入文件大小的,因此在某些情况下,其估计的并行度可能并不准确。此时,用户需要根据实际情况来指定Reduce并行度。

 优化案例

示例SQL语句

hive (default)> select province_id, count(*) from order_detail group by province_id;

优化前 上述SQL语句在不指定Reduce并行度时,Hive自行估算并行度的逻辑如下:

假设totalInputBytes = 1136009934bytesPerReducer = 256000000maxReducers = 1009

经计算,Reduce并行度为:

优化思路 上述SQL语句在默认情况下,会进行map-side聚合,即Reduce端接收到的数据已经是Map端聚合后的结果。观察任务执行过程会发现,每个Map端输出的数据只有34条记录,共有5个map task。

这意味着Reduce端实际上只会接收170(34 * 5)条记录。因此理论上Reduce端并行度设置为1就足够了。在这种情况下,用户可以通过以下参数自行设置Reduce端并行度为1:

-- 指定Reduce端并行度,默认值为-1,表示用户未指定
set mapreduce.job.reduces=1;
http://www.wangmingla.cn/news/146190.html

相关文章:

  • 做一个购物平台需要多少钱企业网站seo优化外包
  • 海口网站排名提升百度关键词排名快速排名
  • 咸宁网站设计公司武汉百度推广seo
  • 邢台网站建设邢台如何创造一个自己的网站
  • 网站页面设计规范关键词搜索工具有哪些
  • 河南企起网站建设广州网站优化软件
  • 建设银行遵义分行网站b站视频推广app
  • 徐州优化网站建设南宁seo排名优化
  • 企业网站建设的案例南安seo
  • 东莞做网站哪家公司好南宁关键词优化公司
  • 中国互联网站建设app推广文案
  • 英文网站数据库如何建设独立站seo实操
  • 优惠活动制作网站外贸网站推广平台
  • 六安商务网站建设电话谷歌推广新手教程
  • 建站 备案西安企业seo
  • 规划阿里巴巴网站怎么做推广普通话手抄报简单漂亮
  • 青岛天元建设集团网站营销公司排行
  • 上海网站建设 知名觉口碑营销的形式
  • 网站 seo 如何使用 搜索引擎推广有哪些平台
  • 网站建设多少钱一平米关键词优化排名网站
  • 网页设计与制作课程设计报告小结如何优化seo
  • 杭州网站建设seo优化营销制作友情链接互换网站
  • 网站建站分辨率电商数据网站
  • 网站建设石家庄全国各城市疫情高峰感染高峰进度
  • wordpress 用户站点百度关键词代做排名
  • 自己电脑做网站要下载百度网址大全首页链接
  • 个人建购物网站怎么备案网站外链有多重要
  • 杭州网站建设哪个平台好文娱热搜榜
  • 遵义市做网站公司百度上怎么打广告宣传
  • 网站建设的软件介绍网络seo是什么意思