hive面试题

1.大表join小表产生的问题,怎么解决?

2.udf udaf udtf区别

3.hive有哪些保存元数据的方式,个有什么特点。

4.hive内部表和外部表的区别

5.生产环境中为什么建议使用外部表?

6.insert into 和 override write区别?

7.hive的判断函数有哪些

8.简单描述一下HIVE的功能?用hive创建表几种方式?hive表有几种?

9.线上业务每天产生的业务日志(压缩后>=3G),每天需要加载到hive的log表中,将每天产生的业务日志在压缩之后load到hive的log表时,最好使用的压缩算法是哪个,并说明其原因

10.若在hive中建立分区仍不能优化查询效率,建表时如何优化

11.union all和union的区别

12.如何解决hive数据倾斜的问题

13.hive性能优化常用的方法

14.简述delete,drop,truncate的区别

15.order by , sort by , distribute by , cluster by的区别

16.Hive 里边字段的分隔符用的什么?为什么用\t?有遇到过字段里 边有\t 的情况吗,怎么处理的?为什么不用 Hive 默认的分隔符,默认的分隔符是什么?

17.分区分桶的区别,为什么要分区

18.mapjoin的原理

19.在hive的row_number中distribute by 和 partition by的区别

20.hive开发中遇到什么问题?

21.什么时候使用内部表,什么时候使用外部表

22.hive都有哪些函数,你平常工作中用到哪些

sum, count, distinct, ws_concate(), expload(), subString, splite(),reverse()

23.手写sql,连续活跃用户

见29

24.left semi join和left join区别

25.group by为什么要排序

其为全局排序,为保证顺序只有一个reduceTask,
故先进行sort by 可以进行局部排序,在进行全局排序

26.说说印象最深的一次优化场景,hive常见的优化思路

参数调优:
开启map端join
开启并行化

sql调优:
使用on换where
使用couunt(1)和 子查询换 count(distinct col )

合并小文件
空值过滤,避免join时的数据倾斜

27.聊聊hive的执行引擎,spark和mr的区别?

28.hive的join底层mr是如何实现的?

29.sql问题,连续几天活跃的用户?

先按用户id和登录时间进行降序排序并打上行号,row_number over,然后使用登录时间减去行号
例如:

uidrowNumlogDatelogDate - rowNum
u0012021-2-1212021-2-11
u0012021-2-1322021-2-11
u0012021-2-1432021-2-11
u0012021-2-1642021-2-12
u0012021-2-1852021-2-13
u0012021-2-1962021-2-13

根据登录时间和行号的差值进行分组排序即可得到连续登录天数


30.建好了外部表,用什么语句把数据文件加载到表里

直接将数据上传到hdfs表路径


31.Hive的执行流程?

32.hive的元数据信息存储在哪?

默认存储在嵌入式内存数据库 derby中,数据易丢失,不安全
存储在mysql中比较安全


33.sql语句的执行顺序

from-where-group by-having -select-order by -limit


34.on和where的区别

where会先执行后面的条件生成零时表然后进行过滤,
on先过滤数据然后在生成零时表


35.hive和传统数据库之间的区别


36.hive中导入数据的4种方式

从本地导入: load data local inpath /home/liuzc into table ods.test

从hdfs导入: load data inpath /user/hive/warehouse/a.txt into ods.test

查询导入: create table tmp_test as select * from ods.test

查询结果导入: insert into table tmp.test select * from ods.test

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值