Hadoop技术篇hive的优化,经典面试

Posted 淼淼_喵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop技术篇hive的优化,经典面试相关的知识,希望对你有一定的参考价值。

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是淼淼_喵 ,很高兴认识大家~

✨主攻领域:【大数据开发】【数据仓库】 【ETL】 【数据分析】【面试分析】

🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋

🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝欢迎评论

🙏作者水平有限,欢迎各位大佬指点,相互习进步!

目录

🍬 博主介绍

Map Join

作用

触发条件

Bucket-Map Join

作用

触发条件

SMB Join (sort merge bucket)

作用

触发条件

Join-Skew关联查询时数据倾斜

运行时优化

编译时优化

Unoin优化

GroupBy-Skew统计时数据倾斜

Map先行打散

MR Job随机数打散


 

Map Join

作用

大表 和 小表 关联查询时,提升性能,避免数据倾斜。

触发条件

--  1、开启MapJoin
set hive.auto.convert.join=true;
--  2、设置阈值,不要超出自己的硬件配置,否则内存溢出
set hive.auto.convert.join.noconditionaltask.size=512000000
 

Bucket-Map Join

作用

大表 和 中表 关联(小表的数据大小超出阈值)时,使用Map端Join优化。

触发条件

1) 开启配置:set hive.optimize.bucketmapjoin = true;

2) 一个表的bucket数是另一个表bucket数的==整数倍==

3) bucket列 == join列 4) 满足map join条件

SMB Join (sort merge bucket)

作用

当大表和大表关联(关联的两个表数据都很大)时使用。

触发条件

  1. 开启SMB配置

    set hive.optimize.bucketmapjoin = true;
    set hive.auto.convert.sortmerge.join=true;
    set hive.optimize.bucketmapjoin.sortedmerge = true;
    set hive.auto.convert.sortmerge.join.noconditionaltask=true;
  2. bucket列 == join列,且要Sort此列

    1. 创建表时,sorted by (列);

    2. 插入数据时:

      1. cluster by (列);

      2. hive.enforce.sorting 设置为 true

  3. 两个表的bucket数==必须相等==

  4. 满足BucketMapJoin的条件

Join-Skew关联查询时数据倾斜

运行时优化

-- 开启运行时倾斜优化
set hive.optimize.skewjoin=true;
-- 设定倾斜阈值
set hive.skewjoin.key=100000;  //行数

编译时优化

  1. 开启编译时优化

    set hive.optimize.skewjoin.compiletime=true;

  2. 建表时指定倾斜字段和倾斜的值

    CREATE TABLE list_bucket_single (key STRING, value STRING)
    --  倾斜的字段和需要拆分的key值
    SKEWED BY (name) ON (‘张三’,’李四’,’王五’)
    --   为倾斜值创建子目录单独存放
    [STORED AS DIRECTORIES];

Unoin优化

set hive.optimize.union.remove=true;

GroupBy-Skew统计时数据倾斜

Map先行打散

CM中配置hive.map.aggr

MR Job随机数打散

hive.groupby.skewindata=true;

注意:有多个列执行distinct去重操作时,不支持skewindata:

SELECT ip, count(DISTINCT uid), count(DISTINCT uname) FROMlog GROUP BY ip;
DISTINCT on different columns not supported with skew in data.

以上是关于Hadoop技术篇hive的优化,经典面试的主要内容,如果未能解决你的问题,请参考以下文章

大数据之Hive:Hive调优全方位指南

大数据面试题锦集 | 数据仓库工具HIVE篇

Hive部署及优化配置

Hive SQL 五大经典面试题

Hive 优化详解

在 Hadoop Hive 中优化几 GB 的数据