深入理解hadoop数据倾斜

深入理解hadoop之数据倾斜


1、什么是数据倾斜

  我们在用map /reduce程序执行时,有时候会发现reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他key多很多(有时是百倍或者千倍之多),这条key所在的reduce节点所处理的数据量比其他节点就大很多,从而导致某几个节点迟迟运行不完。这种现象就是因为key分布不均匀、散度不够导致的,也就是我们所说的数据倾斜。


2、数据倾斜产生的原因

  在hive上执行join,group by,count distinct等操作的时候可能会发现ruduce阶段卡在99.99%,一直99.99%不能结束,查看任务监控页面,发现只有少量(1个或几个)reduce子任务未完成;这里进一步查看进程日志或者WEBUI会发现:有一个多几个reduce卡住;各种container报错OOM,读写的数据量极大,至少远远超过其它正常的reduce ,伴随着数据倾斜,会出现任务被kill等各种诡异的表现。一般情况下Hive的数据倾斜,都发生在Sql中Group和On上,而且和数据逻辑绑定比较深。


3、数据倾斜解决的办法

  1)hive.groupby.skewindata变量,这个变量是用于控制负载均衡的。当数据出现倾斜时,如果该变量设置为true,那么Hive会自动进行负载均衡。

  2)mapjoin方式 
        3)count distinct的操作,先转成group,再count 
        4)hive.groupby.skewindata=true 
        5)left semi jioin的使用 
        6)设置map端输出、中间结果压缩

原文地址:https://www.cnblogs.com/bigdata-stone/p/9309153.html

时间: 2024-10-08 04:47:37

深入理解hadoop数据倾斜的相关文章

Hadoop数据倾斜及解决办法

数据倾斜:就是大量的相同key被partition分配到一个分区里,map /reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长, 这是因为某一个key的条数比其他key多很多(有时是百倍或者千倍之多),这条key所在的reduce节点所处理的数据量比其他节点就大很多,从而导致某几个节点迟迟运行不完. 解决方案: 1.增加jvm内存,这适用于第一种情况(唯一值非常少,极少数值有非常多的记录值(唯一值少于几千)),这种情况

浅析 Hadoop 中的数据倾斜

转自:http://my.oschina.net/leejun2005/blog/100922 最近几次被问到关于数据倾斜的问题,这里找了些资料也结合一些自己的理解. 在并行计算中我们总希望分配的每一个task 都能以差不多的粒度来切分并且完成时间相差不大,但是集群中可能硬件不同,应用的类型不同和切分的数据大小不一致总会导致有部分任务极大的拖慢了整个任务的完成时间,硬件不同就不说了,应用的类型不同其中就比如page rank 或者data mining 里面一些计算,它的每条记录消耗的成本不太一

Hadoop皇-----冠---体育源码搭建与数据倾斜及解决办法

1.增加jvm内存,这适用于第一种情况(唯一值非常少,极少数值有非常多的记录值(唯一值少于几千)),这种情况下,皇------冠--------体育源码搭建QQ:2152876294 网址diguaym.com往往只能通过硬件的手段来进行调优,增加jvm内存可以显著的提高运行效率.2.增加reduce的个数,这适用于第二种情况(唯一值比较多,这个字段的某些值有远远多于其他值的记录数,但是它的占比也小于百分之一或千分之一),我们知道,这种情况下,最容易造成的结果就是大量相同key被partitio

Hadoop皇冠体育源码搭建与数据倾斜及解决办法

1.增加jvm内存,这适用于第一种情况(唯一值非常少,极少数值有非常多的记录值(唯一值少于几千)),这种情况下,皇-冠-体-育源码搭建QQ:2152876294 网址diguaym.com往往只能通过硬件的手段来进行调优,增加jvm内存可以显著的提高运行效率.2.增加reduce的个数,这适用于第二种情况(唯一值比较多,这个字段的某些值有远远多于其他值的记录数,但是它的占比也小于百分之一或千分之一),我们知道,这种情况下,最容易造成的结果就是大量相同key被partition到一个分区,从而一个

hadoop job解决大数据量关联时数据倾斜的一种办法

转自:http://www.cnblogs.com/xuxm2007/archive/2011/09/01/2161929.html http://www.geminikwok.com/2011/04/02/hadoop-job解å?³å¤§æ?°æ?®é??å?³è??æ—¶æ?°æ?®å?¾æ??ç??ä¸?ç§?å??æ³?/ 数据倾斜是指,map /reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为

大数据数据倾斜

什么是数据倾斜     简单的讲,数据倾斜就是我们在计算数据的时候,数据的分散度不够,导致大量的数据集中到了一台或者几台机器上计算,这些数据的计算速度远远低于平均计算速度,导致整个计算过程过慢.     相信大部分做数据的童鞋们都会遇到数据倾斜,数据倾斜会发生在数据开发的各个环节中,比如: 用Hive算数据的时候reduce阶段卡在99.99% 用SparkStreaming做实时算法时候,一直会有executor出现OOM的错误,但是其余的executor内存使用率却很低.     数据倾斜有

什么是大数据倾斜

来源:https://www.cnblogs.com/gala1021/p/8552302.html 侵删 什么是数据倾斜     简单的讲,数据倾斜就是我们在计算数据的时候,数据的分散度不够,导致大量的数据集中到了一台或者几台机器上计算,这些数据的计算速度远远低于平均计算速度,导致整个计算过程过慢.     相信大部分做数据的童鞋们都会遇到数据倾斜,数据倾斜会发生在数据开发的各个环节中,比如: 用Hive算数据的时候reduce阶段卡在99.99% 用SparkStreaming做实时算法时候

spark性能优化:数据倾斜调优

调优概述 有的时候,我们可能会遇到大数据计算中一个最棘手的问题--数据倾斜,此时Spark作业的性能会比期望差很多.数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能. 数据倾斜发生时的现象 1.绝大多数task执行得都非常快,但个别task执行极慢.比如,总共有1000个task,997个task都在1分钟之内执行完了,但是剩余两三个task却要一两个小时.这种情况很常见. 2.原本能够正常执行的Spark作业,某天突然报出OOM(内存溢出)异常,观察异常

数据倾斜是多么痛?spark作业调优秘籍

目录视图 摘要视图 订阅 [观点]物联网与大数据将助推工业应用的崛起,你认同么?      CSDN日报20170703--<从高考到程序员--我一直在寻找答案>      [直播]探究Linux的总线.设备.驱动模型! 数据倾斜是多么痛?spark作业调优秘籍 2017-06-27 13:28 39人阅读 评论(0) 收藏 举报  分类: Spark(124)  原文:https://mp.weixin.qq.com/s?__biz=MzI5OTAwMTM1MQ==&mid=2456