大数据之Hadoop面试常问

面试题

Hadoop中数据倾斜

数据倾斜是如何产生的?

  1. hive.groupby.skewindata 变量,这个变量是用于控制负载均衡的。当数据出现倾斜时,如果该变量设置成为true,那么hive 会自动进行负载均衡。
  2. map join 方式
  3. count distinct 的操作,先转成group,再count
  4. hive.groupby.skewindata=true
  5. left semi join 的使用
  6. 设置map端输出,中间结果压缩

数据倾斜解决办法

  1. 提前在map进行combine,减少传输的数据量
    在mapper加上combine相当于提前reduce,既把一个mapper中相同key进行了聚合,减少shuffle过程中传输的数据量,以及reduce端的计算量。
    缺点:如果导致数据倾斜的key大量分布在不同的mapper的时候,这种方法就不是很有效了。
  2. 局部聚合加全局聚合
    缺点:二次mr,第一次将key随机散列到不同reduce进行处理达到负载均衡目的。第二次再根据去掉key的随机前缀,按原key进行reduce处理。
    这个方法进行两次MapReduce,性能稍差。
  3. 增加reduce,提升并行度
  4. 实现自定义分区
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值