hive面试问题
2016-06-06 13:51
246 查看
A所有的hive任务都会有reducer的执行吗?
答:不是,由于当前hive的优化,使得一般简单的任务不会去用reducer任务;只有稍微复杂的任务才会有reducer任务
举例:使用select * from person ; 就不会有reducer
使用from person p
insert into person2 select p.age,p.name
B\hive解决了什么问题
答:多用户的使用,解决了元数据的冲突,hive2代理管理元数据
区别hive2,hiveserver2是服务,而hive是一个交互窗口
C\设置时钟同步的定时任务
crontab -e
*/10 * * * * /usr/sbin/ntpdate time.nist.gov
D\hive的函数:UDF UDAF UDTF的区别
UDF: 单行进入,单行输出
UDAF: 多行进入,单行输出
UDTF: 单行输入,多行输出
E\hive的优化
答:优化可以从几个方面着手:
1. 好的模型设计事半功倍。
2. 解决数据倾斜问题。
3. 减少 job 数。
4. 设置合理的 map reduce 的 task 数,能有效提升性能。(比如,10w+级别的计算,用
160 个 reduce,那是相当的浪费,1 个足够)。
5. 自己动手写 sql 解决数据倾斜问题是个不错的选择。set hive.groupby.skewindata=true;
这是通用的算法优化,但算法优化总是漠视业务,习惯性提供通用的解决方法。 Etl 开发
人员更了解业务,更了解数据,所以通过业务逻辑解决倾斜的方法往往更精确,更有效。
6. 对 count(distinct)采取漠视的方法,尤其数据大的时候很容易产生倾斜问题,不抱侥幸
心理。自己动手,丰衣足食。
7. 对小文件进行合并,是行至有效的提高调度效率的方法,假如我们的作业设置合理的文
件数,对云梯的整体调度效率也会产生积极的影响。
8. 优化时把握整体,单个作业最优不如整体最优。
F优化:
1\排序优化
Order by 实现全局排序,一个 reduce 实现,效率低
Sort by 实现部分有序,单个 reduce 输出的结果是有序的,效率高,通常和
DISTRIBUTE BY 关键字一起使用(DISTRIBUTE BY 关键字 可以指定 map 到 reduce
端的分发 key)
CLUSTER BY col1 等价于 DISTRIBUTE BY col1 SORT BY col1
2\分区优化
3\合并小文件
4\避免空值关联,多用聚合函数,多用临时表
答:不是,由于当前hive的优化,使得一般简单的任务不会去用reducer任务;只有稍微复杂的任务才会有reducer任务
举例:使用select * from person ; 就不会有reducer
使用from person p
insert into person2 select p.age,p.name
B\hive解决了什么问题
答:多用户的使用,解决了元数据的冲突,hive2代理管理元数据
区别hive2,hiveserver2是服务,而hive是一个交互窗口
C\设置时钟同步的定时任务
crontab -e
*/10 * * * * /usr/sbin/ntpdate time.nist.gov
D\hive的函数:UDF UDAF UDTF的区别
UDF: 单行进入,单行输出
UDAF: 多行进入,单行输出
UDTF: 单行输入,多行输出
E\hive的优化
答:优化可以从几个方面着手:
1. 好的模型设计事半功倍。
2. 解决数据倾斜问题。
3. 减少 job 数。
4. 设置合理的 map reduce 的 task 数,能有效提升性能。(比如,10w+级别的计算,用
160 个 reduce,那是相当的浪费,1 个足够)。
5. 自己动手写 sql 解决数据倾斜问题是个不错的选择。set hive.groupby.skewindata=true;
这是通用的算法优化,但算法优化总是漠视业务,习惯性提供通用的解决方法。 Etl 开发
人员更了解业务,更了解数据,所以通过业务逻辑解决倾斜的方法往往更精确,更有效。
6. 对 count(distinct)采取漠视的方法,尤其数据大的时候很容易产生倾斜问题,不抱侥幸
心理。自己动手,丰衣足食。
7. 对小文件进行合并,是行至有效的提高调度效率的方法,假如我们的作业设置合理的文
件数,对云梯的整体调度效率也会产生积极的影响。
8. 优化时把握整体,单个作业最优不如整体最优。
F优化:
1\排序优化
Order by 实现全局排序,一个 reduce 实现,效率低
Sort by 实现部分有序,单个 reduce 输出的结果是有序的,效率高,通常和
DISTRIBUTE BY 关键字一起使用(DISTRIBUTE BY 关键字 可以指定 map 到 reduce
端的分发 key)
CLUSTER BY col1 等价于 DISTRIBUTE BY col1 SORT BY col1
2\分区优化
3\合并小文件
4\避免空值关联,多用聚合函数,多用临时表
相关文章推荐
- 史上最强女游戏程序员
- 大数据常见面试题汇总(一)
- 面试必问Top10(2016.06.06)
- java面试之常见编程题
- java面试之常见编程题
- java面试之常见编程题
- 北航面试之操作系统面试每章的重点Get(完整版)
- 面试中常见链表问题6:划分链表
- 剑指Offer----面试题25:二叉树中和为某一值的路径
- 面试中常见链表问题5:删除链表中重复元素2
- 9个Java对象的初始化和回收的面试题
- 职场潜规则:公司出现这三种信号,你必须果断辞职!
- 面试中常见链表问题4:删除链表中重复元素1
- 知识点3-4
- 面试中常见链表问题3:旋转链表
- 面试题18:树的子结构
- 程序员最美情人节礼物:JS渲染的3D玫瑰
- 面试中常见链表问题2:合并k个有序链表
- IOS面试资料
- 面试中常见链表问题1:合并两个有序链表