Hive

    科技2022-07-11  110

    目录

    内部表和外部表分区和分桶控制hive任务中的map数和reduce数Hive中的joinHive中Join的原理和机制hive中的数据倾斜hive sql和mapreduce的转换过程hive取topN Hive就是在Hadoop上架了一层SQL接口,可以将SQL翻译成MapReduce去Hadoop上执行. 1、Hive 由 Facebook 实现并开源 2、是基于 Hadoop 的一个数据仓库工具 3、可以将结构化的数据映射为一张数据库表 4、并提供 HQL(Hive SQL)查询功能 5、底层数据是存储在 HDFS 上 6、Hive的本质是将 SQL 语句转换为 MapReduce 任务运行 7、使不熟悉 MapReduce 的用户很方便地利用 HQL 处理和计算 HDFS 上的结构化的数据,适用于离线的批量数据计算。

    内部表和外部表

    Hive内部表与外部表的区别

    分区和分桶

    分区:就是将同一组数据放到同一个HDFS目录下,当查询中过滤条件指定了某一个分区值时候,只将该分区对应的目录作为Input,从而减少MapReduce的输入数据,提高查询效率

    分区和分桶区别

    控制hive任务中的map数和reduce数

    参考:处理小文件和大文件

    Hive中的join

    join的类型

    Hive中Join的原理和机制

    对于一个简单的关联查询,CommonJoin任务设计Map阶段和Reduce阶段。Mapper 从连接表中读取数据并将连接的 key 和连接的 value 键值对输出到中间文件中。Hadoop 在所谓的 shuffle 阶段对这些键值对进行排序和合并。Reducer 将排序结果作为输入,并进行实Join。Shuffle 阶段代价非常昂贵,因为它需要排序和合并。 因此减少 Shuffle 和 Reduce 阶段的代价可以提高任务性能。 MapJoin 的目的是减少 Shuffle和 Reducer阶段的代价,并仅在 Map 阶段进行Join。 Join的原理和机制

    hive中的数据倾斜

    1、开启map端的聚合 2、distinct的时候使用两个Mapreduce 参考:数据倾斜

    hive sql和mapreduce的转换过程

    antlr是指可以根据输入自动生成语法树并可视化的显示出来的开源语法分析器。 参考:HiveSQL解析原理

    参考:Hive Sql 是怎样解析成MR job的

    hive取topN

    分析函数取topN

    Processed: 0.038, SQL: 10