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

简介: 1) 开启配置:set hive.optimize.bucketmapjoin = true;2) 一个表的bucket数是另一个表bucket数的==整数倍==3) bucket列 == join列 4) 满足map join条件

 目录

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

image.gif

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;
    1. image.gif
    2. bucket列 == join列,且要Sort此列
      1. 创建表时,sorted by (列);
      2. 插入数据时:
        1. cluster by (列);
        2. hive.enforce.sorting 设置为 true
            1. 两个表的bucket数==必须相等==
            2. 满足BucketMapJoin的条件

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

            运行时优化

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

            image.gif

            编译时优化

              1. 开启编译时优化
              set hive.optimize.skewjoin.compiletime=true;
              1. image.gif
              2. 建表时指定倾斜字段和倾斜的值
              CREATE TABLE list_bucket_single (key STRING, value STRING)
              --  倾斜的字段和需要拆分的key值
              SKEWED BY (name) ON (‘张三’,’李四’,’王五’)
              --   为倾斜值创建子目录单独存放
              [STORED AS DIRECTORIES];
              1. image.gif

              Unoin优化

              set hive.optimize.union.remove=true;

              image.gif

              GroupBy-Skew统计时数据倾斜

              Map先行打散

              CM中配置hive.map.aggr

              MR Job随机数打散

              hive.groupby.skewindata=true;

              image.gif

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

              目录
              相关文章
              |
              7天前
              |
              SQL 分布式计算 监控
              Sqoop数据迁移工具使用与优化技巧:面试经验与必备知识点解析
              【4月更文挑战第9天】本文深入解析Sqoop的使用、优化及面试策略。内容涵盖Sqoop基础,包括安装配置、命令行操作、与Hadoop生态集成和连接器配置。讨论数据迁移优化技巧,如数据切分、压缩编码、转换过滤及性能监控。此外,还涉及面试中对Sqoop与其他ETL工具的对比、实际项目挑战及未来发展趋势的讨论。通过代码示例展示了从MySQL到HDFS的数据迁移。本文旨在帮助读者在面试中展现Sqoop技术实力。
              21 2
              |
              2月前
              |
              SQL 存储 数据库
              面试题19: 如何优化SQL查询?
              面试题19: 如何优化SQL查询?
              面试题19: 如何优化SQL查询?
              |
              2月前
              |
              缓存 数据库 索引
              面试题17: 数据库优化
              面试题17: 数据库优化
              |
              1天前
              |
              SQL 存储 分布式计算
              【Hive】Hive优化有哪些?
              【4月更文挑战第16天】【Hive】Hive优化有哪些?
              |
              7天前
              |
              分布式计算 资源调度 监控
              Hadoop生态系统深度剖析:面试经验与必备知识点解析
              本文深入探讨了Hadoop生态系统的面试重点,涵盖Hadoop架构、HDFS、YARN和MapReduce。了解Hadoop的主从架构、HDFS的读写流程及高级特性,YARN的资源管理与调度,以及MapReduce编程模型。通过代码示例,如HDFS文件操作和WordCount程序,帮助读者巩固理解。此外,文章强调在面试中应结合个人经验、行业动态和技术进展展示技术实力。
              |
              8天前
              |
              SQL 分布式计算 Hadoop
              利用Hive与Hadoop构建大数据仓库:从零到一
              【4月更文挑战第7天】本文介绍了如何使用Apache Hive与Hadoop构建大数据仓库。Hadoop的HDFS和YARN提供分布式存储和资源管理,而Hive作为基于Hadoop的数据仓库系统,通过HiveQL简化大数据查询。构建过程包括设置Hadoop集群、安装配置Hive、数据导入与管理、查询分析以及ETL与调度。大数据仓库的应用场景包括海量数据存储、离线分析、数据服务化和数据湖构建,为企业决策和创新提供支持。
              39 1
              |
              2月前
              |
              SQL 关系型数据库 MySQL
              |
              2月前
              |
              监控 数据库 索引
              面试题21:如何优化查询命令?
              面试题21:如何优化查询命令?
              |
              3月前
              |
              算法 Java
              【面试问题】锁如何优化?
              【1月更文挑战第27天】【面试问题】锁如何优化?
              |
              3月前
              |
              SQL 数据采集 分布式计算
              Hadoop和Hive中的数据倾斜问题及其解决方案
              Hadoop和Hive中的数据倾斜问题及其解决方案
              40 0

              热门文章

              最新文章