您好、欢迎来到现金彩票网!
当前位置:秒速快3 > 数据偏斜 >

Hive数据倾斜解决办法

发布时间:2019-07-17 07:11 来源:未知 编辑:admin

  map/reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他key多很多(有时是百倍或者千倍之多),这条key所在的reduce节点所处理的数据量比其他节点就大很多,从而导致某几个节点迟迟运行不完,此称之为数据倾斜。

  第一个 MR Job 中,Map 的输出结果集合会随机分布到 Reduce 中,每个 Reduce 做部分聚合操作,并输出结果,这样处理的结果是相同的 Group By Key 有可能被分发到不同的 Reduce 中,从而达到负载均衡的目的

  第二个 MR Job 再根据预处理的数据结果按照 Group By Key 分布到 Reduce 中(这个过程可以保证相同的 Group By Key 被分布到同一个 Reduce 中),最后完成最终的聚合操作。

  可以使用Map Join让小的维度表(1000条以下的记录条数)先进内存。在map端完成reduce.

  把空值NULL的key变成一个字符串加上随机数,把倾斜的数据分到不同的reduce上,由于null值关联不上,处理后并不影响最终结果。例如Demo1.空值数据倾斜

  count distinct时,将值为空的情况单独处理。如果是计算count distinct,可以不用处理,直接过滤,在最后结果中加1。如果还有其他计算,需要进行group by,可以先将值为空的记录单独处理,再和其他计算结果进行union。

  场景:如日志中,常会有信息丢失的问题,比如全网日志中的user_id,如果取其中的user_id和bmw_users关联,会碰到数据倾斜的问题。

  方法1的log读取两次,jobs是2。方法2的job数是1。这个优化适合无效id(比如-99,’’,null等)产生的倾斜问题。

  把空值的key变成一个字符串加上随机数,就能把倾斜的数据分到不同的reduce上 ,解决数据倾斜问题。

  场景:一张表s8的日志,每个商品一条记录,要和商品表关联。但关联却碰到倾斜的问题,s8的日志中有字符串商品id,也有数字的商品id,类型是string的,但商品中的数字id是bigint的。

  问题原因:把s8的商品id转成数字id做hash来分配reduce,所以字符串id的s8日志,都到一个reduce上了,解决的方法验证了这个猜测。

  MapReduce编程模型下开发代码需要考虑数据偏斜的问题,Hive代码也是一样。数据偏斜的原因包括以下两点:

  Hive中我们使用MapJoin解决数据偏斜的问题,即将其中的某个小表(全量)分发到所有Map端的内存进行Join,从而避免了reduce。这要求分发的表可以被全量载入内存。

  极限情况下,Join两边的表都是大表,就无法使用MapJoin。这种问题最为棘手,目前已知的解决思路有两种:

  如果是上述情况1,考虑先对Join中的一个表去重,以此结果过滤无用信息。

  这样一般会将其中一个大表转化为小表,再使用MapJoin 。一个实例是广告投放效果分析,

  例如将广告投放者信息表i中的信息填充到广告曝光日志表w中,使用投放者id关联。因为实际广告投放者数量很少(但是投放者信息表i很大),因此可以考虑先在w表中去重查询所有实际广告投放者id列表,以此Join过滤表i,这一结果必然是一个小表,就可以使用MapJoin。

  如果是上述情况2,考虑切分Join中的一个表为多片,以便将切片全部载入内存,然后采用多次MapJoin得到结果。

  一个实例是商品浏览日志分析,例如将商品信息表i中的信息填充到商品浏览日志表w中,使用商品id关联。但是某些热卖商品浏览量很大,造成数据偏斜。例如,以下语句实现了一个inner join逻辑,将商品信息表拆分成2个表:

  hive在跑数据时经常会出现数据倾斜的情况,使的作业经常reduce完成在99%后一直卡住,最后的1%花了几个小时都没跑完,这种情况就很可能是数据倾斜的原因,解决方法要根据具体情况来选择具体的方案1、...博文来自:hive-数据倾斜解决详情

  友情提示:更多有关大数据、人工智能方面技术文章请关注博主个人微信公众号:高级大数据架构师!Hive数据倾斜GroupBy中的计算均衡优化    1.Map端部分聚合      先看看下面这条SQL,由...博文来自:小宁哥博客

  转自:在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果...博文来自:wu936754331的专栏

  在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平...博文来自:s646575997的博客

  数据倾斜理解:数据层的分布式处理过程中,出现明显的Map或Reduce过程的数据IO的量级有巨大变化。可能原因,分两类:真倾斜和假倾斜一、假倾斜:本身数据无倾斜,但处理时不均衡导致的数据倾斜现象1)原...博文来自:aimee12345的博客

  概述:什么事数据倾斜以及数据倾斜是怎么产生的?简单来说数据倾斜就是数据的key的分化严重不均,造成一部分数据很多,一部分数据很少的局面。举个wordcount的入门例子,它的map阶段就是形成(“aa...博文来自:李宏健的博客

  2017-10-23 细柳条 小秀才翻译铺    前言:数据倾斜是日常大数据查询中隐形的一个BUG,遇不到它时你觉得数据倾斜也就是书本博客上的一个无病呻吟的偶然案例,但当你遇到它是你就会懊悔当初怎么不...博文来自:chyeers的博客

  30.7数据倾斜解决方案之六:使用随机数进行Join本节讲解使用随机数进行Join,首先讲解什么叫使用随机数进行Join来解决数据倾斜问题,然后讲解如何使用随机数?使用随机数进行Join来解决数据倾斜...博文来自:段智华的博客

  在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平...博文来自:不花的花和尚的博客

  在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平...博文来自:zhujianlin1990的专栏

  1、什么是数据倾斜?由于数据分布不均匀,造成数据大量的集中到一点,造成数据热点2、主要表现:任务进度长时间维持在99%或者100%的附近,查看任务监控页面,发现只有少量reduce子任务未完成,因为其...博文来自:jin6872115的博客

  [版权申明:本文系作者原创,转载请注明出处]文章出处:作者:朱培     ID:sdksdk0...博文来自:朱培(知浅_ZLH)

  1.数据倾斜原因a.大表(2.8G)与小表关联(580K)b.大表(2.8G)与大表(3.0G)关联首先谈论大表与小表的关联导致数据倾斜问题 实例如下:大表数据格式:小表数据格式:关联语句hives...博文来自:似水流年

  数据倾斜表现:有的task执行很快,有的很慢或者内存溢出 定位数据倾斜的位置:用client模式提交,观察log 解决方案1、在hiveetl时进行数据聚合,把key相同的数据聚合成一条数据,这样就可...博文来自:大黄_sama

  hive或者MR处理数据,不怕数据量大,就怕倾斜。本博主就遇到了一个真实案例,特意记录下来,有需要的同学可以参考1.查了5个小时还没结束的sql语句setmapred.reduce.tasks=30;...

  Hive倾斜—不患寡而患不均一、数据倾斜的原因Hive倾斜的原因很大部分是由于sql中的join语句与groupby语句。原因:对于普通的join操作,会在map端根据key的hash值,shuffl...

  1.什么是数据倾斜?数据倾斜主要表现在,map/reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条...

  hive在跑数据时经常会出现数据倾斜的情况,使的作业经常reduce完成在99%后一直卡住,最后的1%花了几个小时都没跑完,这种情况就很可能是数据倾斜的原因,解决方法要根据具体情况来选择具体的方案 1...

  hive中大key导致的join数据倾斜问题1、场景如果某个key下记录数远超其他key,在join或group的时候可能会导致某个reduce任务特别慢。本文分析下join的场景。本例子SQL如下:...

  一、数据倾斜产生原因1.操作join一个表很小,但是key集中;分发到某一个或者几个Reduce上的数据远高于平均值。大表与大表,但是字段的空值很多;这些空值都由一个reduce进行操作,速度非常的慢...

  如果某个key下记录数远超其他key,在join或group的时候可能会导致某个reduce任务特别慢。本文分析下join的场景。本例子SQL如下:查询每个appid打开的次数,需要排除掉作弊的ime...

  什么是Hive数据倾斜问题 操作:join,groupby,countdistinct现象:任务进度长时间维持在99%(或100%),查看任务监控页面,发现只有少量(1个或几个)reduce子任务未完...

  来源:数据倾斜在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成...

  数据倾斜在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters...

  Hive数据倾斜解决方法总结   数据倾斜是进行大数据计算时最经常遇到的问题之一。当我们在执行HiveQL或者运行MapReduce作业时候,如果遇到一直卡在map100%,reduce99%一般就是...

  Spark数据倾斜产生原因首先RDD的逻辑其实时表示一个对象集合。在物理执行期间,RDD会被分为一系列的分区,每个分区都是整个数据集的子集。当spark调度并运行任务的时候,Spark会为每一个分区中...

  记得之前用过一种办法,,-,ceil(rand()*100)%20)),将记录数特别多的关联字段取模20,得到新字段a.col2;另外维护一张有20条记录的小表,小表的数据...

  什么是数据倾斜MapReduce中,相同Key的Value都给了一个reduce,如果个别key数据较多,而其他key的较少,就出现了数据倾斜。有的map很快,有的reduce很慢。Hive执行是分阶...

  Hive中的数据倾斜和优化常见的优化1大表转化为小表,充分利用临时表合理的利用分区表+外部表数据存储格式,压缩的配置SQL语句的优化join---尽量使用mapjoinfilter先过滤再处理开启并行...

  数据倾斜概念:数据倾斜是指,map/reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他ke...

  Hive数据倾斜解决办法总结我的知乎:DarrenChan陈驰数据倾斜是进行大数据计算时最经常遇到的问题之一。当我们在执行HiveQL或者运行MapReduce作业时候,如果遇到一直卡在map100%...

  1.原理以及现象分析:出现数据倾斜的原因,基本只可能是因为发生了shuffle操作,在shuffle的过程中,出现了数据倾斜的问题。因为某个,或者某些key对应的数据,远远的高于其他的key。你在自己...

  数据倾斜概述简单来说数据倾斜就是数据的key的分化严重不均,造成一部分数据很多,一部分数据很少的情况。举个wordcount的入门例子,在map阶段形成了(’“hello”,1)的形式,然后在redu...

  笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值,找寻数据的秘密,笔者认为,数据的价值不仅仅只体现在企业中,个人也可以体会到数据的魅力,用技术力量探索行为密码,让大数据...

  数据倾斜是进行大数据计算时最经常遇到的问题之一。当我们在执行HiveQL或者运行MapReduce作业时候,如果遇到一直卡在map100%,reduce99%一般就是遇到了数据倾斜的问题。数据...

  Hive数据倾斜优化等1、内部表和外部表的区别①导入数据语句一样(loaddata(local)inpath‘’intotabletablename)②删除表时,内部表会删除表的元数据和数据,但外部表...

  一 概述 本文整理了笔者再从事大数据处理工作中对于数据倾斜问题的各类解决方案 二 现象 在hadoop,spark等分布式计算框架中运行某个作业时,发现某个算子(可能是map,也可能是reduce)执...

  什么是数据倾斜    简单的讲,数据倾斜就是我们在计算数据的时候,数据的分散度不够,导致大量的数据集中到了一台或者几台机器上计算,这些数据的计算速度远远低于平均计算速度,导致整个计算过程过慢。    ...

  发生原因:1、数据本身分布不均,比如双十一和其它某个普通的日期相比,消费数据差别很大,这时把日期作为分区标志的话,就会造成map任务分布机不均匀。再比如某些恶意账号刷数据时,出现某一个账号下的数据特别...

  1.什么是数据倾斜大家可能会发现这样一种现象:在执行hive查询的时候,map早已经100%了,而reduce也早早到了90%+,但是可能会一连出现多个99%,而且迟迟停在99%,不再向下走,这是数据...

  jquery/js实现一个网页同时调用多个倒计时(最新的)nn最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦!nnnn//jsn...

  PHP是能让你生成动态网页的工具之一。PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP。最近在折腾那个安卓扫码登录的功能,然后网页端是用php的做了,...

  朱培(知浅_ZLH)600多个微信小程序源码涵盖各个行业大部分带后台持续更新中

  今天把本人花费一个月左右整理的600多款小程序源码发布出来,以后每个月还会持续更新,很大一部分都带有后台源码并包含有小程序上线教程,帮你分分钟上线自己的小程序,下面我们来看看目录截图,最后面会把源码目...

  明礼馨德的博客Spring Boot集成持久化Quartz定时任务管理和界面展示

  前言本文是对之前的一篇文章Spring+SpringMVC+mybatis+Quartz整合代码部分做的一个修改和补充, 其中最大的变化就是后台框架变成了Spring Boot。本工程所用到的技术或工...

http://istighcomputing.com/shujupianxie/543.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有