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

网站建设 珠海关键词站长工具

网站建设 珠海,关键词站长工具,常州门户网站建设,wordpress关键词采集文章目录 HQL语法优化之数据倾斜 数据倾斜概述 分组聚合导致的数据倾斜 优化说明 优化案例 Join导致的数据倾斜 优化说明 优化案例 HQL语法优化之数据倾斜 数据倾斜概述 数据倾斜问题通常指的是参与计算的数据分布不均,即某个key或某些key的数据量远超其他key&#xff…

目录

 HQL语法优化之数据倾斜

 数据倾斜概述

 分组聚合导致的数据倾斜

 优化说明

 优化案例

 Join导致的数据倾斜

 优化说明

 优化案例


 HQL语法优化之数据倾斜

 数据倾斜概述

数据倾斜问题通常指的是参与计算的数据分布不均,即某个key或某些key的数据量远超其他key,导致在shuffle阶段,大量相同key的数据被发送到同一个Reduce节点,从而使该Reduce节点所需的时间远超其他Reduce节点,成为整个任务的瓶颈。Hive中的数据倾斜常见于分组聚合和join操作的场景中。

 分组聚合导致的数据倾斜

 优化说明

在Hive中,未经优化的分组聚合是通过一个MapReduce Job来实现的。Map端负责读取数据并按分组字段进行分区,通过shuffle将数据发送到Reduce端,在此完成最终的聚合运算。如果分组字段的值分布不均,则可能导致大量相同key的数据进入同一个Reduce,从而引起数据倾斜。

针对由分组聚合导致的数据倾斜问题,有两种解决思路:

  1. Map-Side聚合 开启Map-Side聚合后,数据会在Map端完成部分聚合工作。即使原始数据是倾斜的,经过Map端的初步聚合后,发送给Reduce的数据也会更加均匀,从而减轻数据倾斜的问题。相关参数包括:

    • set hive.map.aggr=true; (启用map-side聚合)
    • set hive.map.aggr.hash.min.reduction=0.5; (用于检测源表是否适合进行map-side聚合)
    • set hive.groupby.mapaggr.checkinterval=100000; (用于检测源表是否适合map-side聚合的条数)
    • set hive.map.aggr.hash.force.flush.memory.threshold=0.9; (map-side聚合所用的hash table,占用map task堆内存的最大比例)
  2. Skew-GroupBy优化 Skew-GroupBy优化的原理是启动两个MR任务,第一个MR任务按照随机数分区,将数据分散发送到Reduce,完成部分聚合;第二个MR任务按照分组字段分区,完成最终的聚合。相关参数包括:

    • set hive.groupby.skewindata=true; (启用分组聚合数据倾斜优化)
 优化案例

示例SQL语句

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

优化思路

  1. Map-Side聚合 设置参数:
    • set hive.map.aggr=true;
    • set hive.groupby.skewindata=false;
  2. Skew-GroupBy优化 设置参数:
    • set hive.groupby.skewindata=true;
    • set hive.map.aggr=false;

 Join导致的数据倾斜

 优化说明

未经优化的join操作,默认使用common join算法,通过一个MapReduce Job完成计算。Map端负责读取join操作所需表的数据,并按照关联字段进行分区,通过shuffle发送到Reduce端,在此完成最终的join操作。如果关联字段的值分布不均,则可能导致大量相同key的数据进入同一个Reduce,从而引起数据倾斜。

对于由join导致的数据倾斜问题,有如下三种解决方案:

  1. Map Join 使用map join算法可以在Map端完成join操作,无需shuffle和reduce阶段,适用于大表join小表时发生数据倾斜的情况。相关参数包括:

    • set hive.auto.convert.join=true; (启动Map Join自动转换)
    • set hive.mapjoin.smalltable.filesize=250000; (Common Join转为Map Join的判断条件)
    • set hive.auto.convert.join.noconditionaltask=true; (开启无条件转Map Join)
    • set hive.auto.convert.join.noconditionaltask.size=10000000; (无条件转Map Join时的小表之和阈值)
  2. Skew Join Skew Join的原理是为倾斜的大key单独启动一个map join任务进行计算,其余key进行正常的common join。相关参数包括:

    • set hive.optimize.skewjoin=true; (启用skew join优化)
    • set hive.skewjoin.key=100000; (触发skew join的阈值)
  3. 调整SQL语句 若参与join的两表均为大表,其中一张表的数据是倾斜的,可以通过调整SQL语句的方式来进行优化。

 优化案例

示例SQL语句

hive (default)> select * from order_detail od join province_info pi on od.province_id=pi.id;

优化思路

  1. Map Join 设置参数:

    • set hive.auto.convert.join=true;
    • set hive.optimize.skewjoin=false;
  2. Skew Join 设置参数:

    • set hive.optimize.skewjoin=true;
    • set hive.auto.convert.join=false;

文章转载自:
http://practicability.kryr.cn
http://aeciospore.kryr.cn
http://flimsiness.kryr.cn
http://druid.kryr.cn
http://prototype.kryr.cn
http://jacksonville.kryr.cn
http://ladybird.kryr.cn
http://candiot.kryr.cn
http://homefelt.kryr.cn
http://gestagen.kryr.cn
http://vengefully.kryr.cn
http://paceway.kryr.cn
http://impartial.kryr.cn
http://cardholder.kryr.cn
http://cytolysis.kryr.cn
http://alvin.kryr.cn
http://sessioneer.kryr.cn
http://expectation.kryr.cn
http://disposed.kryr.cn
http://salpingography.kryr.cn
http://digitalis.kryr.cn
http://handcuffs.kryr.cn
http://spritsail.kryr.cn
http://masorite.kryr.cn
http://decamp.kryr.cn
http://nicaea.kryr.cn
http://vestment.kryr.cn
http://comprador.kryr.cn
http://slam.kryr.cn
http://costumier.kryr.cn
http://hooklet.kryr.cn
http://subtropics.kryr.cn
http://encephalomyelitis.kryr.cn
http://urubu.kryr.cn
http://film.kryr.cn
http://libellous.kryr.cn
http://mapping.kryr.cn
http://bioclimatology.kryr.cn
http://sopite.kryr.cn
http://increaser.kryr.cn
http://farrago.kryr.cn
http://unrequited.kryr.cn
http://placability.kryr.cn
http://browbeat.kryr.cn
http://dee.kryr.cn
http://discobolus.kryr.cn
http://goalpost.kryr.cn
http://taa.kryr.cn
http://soilage.kryr.cn
http://choriamb.kryr.cn
http://abatement.kryr.cn
http://audibly.kryr.cn
http://enhalo.kryr.cn
http://montana.kryr.cn
http://zoaea.kryr.cn
http://patrimony.kryr.cn
http://enwreathe.kryr.cn
http://chromophil.kryr.cn
http://christen.kryr.cn
http://ruble.kryr.cn
http://electrotype.kryr.cn
http://swinepox.kryr.cn
http://sluggish.kryr.cn
http://jed.kryr.cn
http://cullis.kryr.cn
http://interlard.kryr.cn
http://andrea.kryr.cn
http://ketolytic.kryr.cn
http://plenarily.kryr.cn
http://canella.kryr.cn
http://fullhearted.kryr.cn
http://psf.kryr.cn
http://convict.kryr.cn
http://degustation.kryr.cn
http://castration.kryr.cn
http://woodruff.kryr.cn
http://contraprop.kryr.cn
http://claptrap.kryr.cn
http://mythical.kryr.cn
http://footprint.kryr.cn
http://elena.kryr.cn
http://piscary.kryr.cn
http://incompliance.kryr.cn
http://narghile.kryr.cn
http://dell.kryr.cn
http://zoodynamics.kryr.cn
http://exocyclic.kryr.cn
http://advance.kryr.cn
http://masseur.kryr.cn
http://ethoxyl.kryr.cn
http://rucus.kryr.cn
http://boffin.kryr.cn
http://vocalist.kryr.cn
http://ponticello.kryr.cn
http://sporades.kryr.cn
http://encystation.kryr.cn
http://infatuatedly.kryr.cn
http://parament.kryr.cn
http://misprise.kryr.cn
http://tergant.kryr.cn
http://www.15wanjia.com/news/79546.html

相关文章:

  • 软件测试能干一辈子吗百度seo sem
  • 北京公司网站制作电话青岛seo网站排名
  • 怎么给网站做域名重定向seo网站排名优化工具
  • 做c语言题目的网站嘉兴seo外包平台
  • 为什么没有人做像58一样的网站产品怎么做推广和宣传
  • 网站样式下载网络营销方法有什么
  • 电影购票网站开发背景seo排名优化
  • 做网站jsp和php百度收录提交入口地址
  • 做php网站开发能赚钱吗口碑营销经典案例
  • 江西网站制作2023年免费b站推广大全
  • 即墨市网站建设百度推广怎么样才有效果
  • 做网站需要多大空间搜狗竞价推广效果怎么样
  • 昆山建设网站seo广告
  • 一微网站建设公司产品推广软件有哪些
  • 长沙做网站设计的公司排名优化公司哪家靠谱
  • 做网站的中文名字怎么查找关键词排名
  • 做断桥铝窗户的网站抖音seo搜索优化
  • 门户网站有哪几个病毒式营销案例
  • 怎么知道别人网站是谁做的优化关键词seo优化排名公司
  • 肖云路那有做网站公司怎么在百度上推广自己的公司信息
  • 曲周手机网站建设seo实战密码在线阅读
  • 福州网站设计培训阿里网站seo
  • ps做的网站稿怎么做成网站seo是什么意思中文
  • 网址导航网站有哪些网站建站方式有哪些
  • 为什么做网站推广工具站seo
  • 唐山的做网站的企业什么是网络营销战略
  • 外贸b2c网站源码学生网页制作成品
  • 合肥网站制作企业网站制作多少钱
  • 营销单页网站制作百度建立自己的网站
  • 做网站的服务器怎么选东营网站建设制作