美文网首页
面试常问:Hive

面试常问:Hive

作者: 那就这样吧丶xx | 来源:发表于2022-04-15 10:01 被阅读0次

    六、Hive

    1、Hive组成

    元数据默认存储在derby数据库,但只支持单客户端,修改mysql数据库,支持多客户端访问
    编译器 解析器 优化器 执行器
    默认执行引擎MR
    存储HDFS

    2、与mysql区别

                     hive                              mysql
        数据量   大                                   小
        速度   大=》快 (查询)      小=》快 (增删改查)

    3、内部表与外部表区别

    内部表删除数据:删除元数据和原始数据
    外部表删除数据:删除元数据

    什么时候用内部表?什么时候用外部表?

    绝大多数表都是外部表;
    只有自己使用的临时表,内部表

    4、4个by

    order by         全局排序=》容易发生数据倾斜
    sort by         排序
    distribute by         划分分区 sort by + distribute by =>分区内排序
    cluster by         sort by + distribute by 字段相同时,为 cluster by

    5、系统函数

    日(date_add、date_sub)、周(next_day)、月(date_format、lastday)
    解析json(get_json_object)

    6、自定义函数 UDF/UDTF/UDAF

    1)自定义UDF

    解析公共字段;

    2)自定义UDTF

    解析事件字段

    3)不用自定义函数行不行?

    可以不用,用解析json的函数;那你为什么要用呢?方便定位bug

    4)自定义UDF步骤

    定义类 继承UDF,重写evaluate方法;

    5)自定义UDTF步骤

    定义类 继承UDTF,重写3个方法,
    分别是初始化(定义返回值的名称和类型)、process、关闭
    打包=》上传到HDFS路径=》在hive的客户端创建永久函数

    6)UDF/UDTF/UDAF的区别

    UDF:用户定义(普通)函数,只对单行数值产生作用
    UDAF:用户定义聚合函数,可对多行数据产生作用;等同与SQL中常用的SUM(),AVG(),也是聚合函数 多进一出
    UDTF:用户定义表生成函数,用来解决输入一行输出多行

    7、窗口函数

    rank over topn

    8、优化

    1)mapjoin 默认打开,不要关闭
    2)行列过滤:join+where => where+join
    3)创建分区表(天),防止后续全盘扫描
    4)小文件相关处理
    (1)CombinehiveInputformat => 减少切片个数,减少maptask个数
    (2)JVM重用
    (3)merge 如果是maponly任务,默认打开
                执行完任务后,会产生大量小文件,默认会帮你开启一个job,将小于16m的文件,合并到256m
               如果是mapreduce任务,需要将该功能开启。
    5)压缩
    6)列式存储
    7)替换引擎
                mr    基于磁盘    速度慢    可靠性搞     效率低    数据量大    计算时间比较长    周、月、年
                tez    基于内存     速度快    可靠性差    效率高    临时调试代码使用    即席查询
                spark    基于内存+磁盘    可靠性居中    效率居中    每天的定时任务
    8)在map端提前开启Combiner(不影响最终业务逻辑)
    9)合理设置map个数、reduce个数
    max(0,min(块大小,Long的最大值)
    128m数据 =》1g

    9、数据倾斜

    10、杂七杂八

    相关文章

      网友评论

          本文标题:面试常问:Hive

          本文链接:https://www.haomeiwen.com/subject/lyrvjrtx.html