美文网首页
面试常问: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

    六、Hive 1、Hive组成 元数据默认存储在derby数据库,但只支持单客户端,修改mysql数据库,支持多客...

  • 数仓--Hive--面试题准备

    数仓--Hive-面试之Hive与HBase的区别数仓--Hive-面试之Hive架构原理数仓--Hive-面试之...

  • 面试常问

    跳槽时时刻刻都在发生,但是我建议大家跳槽之前,先想清楚为什么要跳槽。切不可跟风,看到同事一个个都走了,自己也盲目的...

  • 面试常问

    PV于UV的区别 如果web页面访问慢怎么办?如何解决? 在三次握手中出现大量time_wait状态,如何解决?查...

  • 集合深浅拷贝以及经常遇到的坑(面试常问)

    集合深浅拷贝以及经常遇到的坑(面试常问) 集合深浅拷贝以及经常遇到的坑(面试常问)

  • 面试常问:Flume

    四、Flume(三件事) 1、组成(source、channel、sink) 1)taildir source(1...

  • 面试常问:Hadoop

    二、Hadoop 1、入门 1)常用端口号Hadoop3.x HDFS 历史服务器 MapRed...

  • Redis、传统数据库、HBase以及Hive的区别

    在面试的时候,很多面试官都会问Redis、HBASE、Hive、数据库的区别,其实面试官考核的是你对不同数据存储技...

  • 面试题汇总:Hive

    1.《大数据Hive 面试以及知识点》 2.《Hive学习之路 (十一)Hive的5个面试题》 3.《大数据工程师...

  • linux面试常问命令

    1. 绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令? 绝对路径:如...

网友评论

      本文标题:面试常问:Hive

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