大数据-Hive篇-面试题总结
题目来源 最全腾讯等BAT大数据面试99题 以下答案仅供参考,如有错误请指正
1. hadoop中两个大表实现join的操作,简单描述?
并没有抓到该题的关键,请大佬指教;
关于Hive的Join 参考链接 Hive基础二(join原理和机制,join的几种类型,数据倾斜简单处理)
2. Hive中存放是什么?
表(数据+元数据)。 存的是和hdfs的映射关系,hive是逻辑上的数据仓库,实际操作的都是hdfs上的文件,HQL就是用sql语法来写的mr程序。
3. Hive与关系型数据库的关系?
没有任何关系。Hive是为了方便数据查询减少MR程序的编写,是一次写多次读的操作,不能进行实时的CRUD操作。
4. 讲一下数据库,SQl ,左外连接, 原理,实现?
参考链接 MySQL查询优化——连接以及连接原理
5. 大表和小表join?
可以通过/* + streamtable(表) */
指定大表,或通过 /* + mapjoin(表) */
指定小表
指定后会将小表数据放入内存更快的join;若不指定 join 默认将最后一个表作为大表;
通常 每次写join时可将小表放左侧,大表放右侧
6. 数据清洗怎么做的?怎么用spark做数据清洗?
7. Hadoop中二次排序怎么做?
参考链接 如何在Map-Reduce中实现二次排序(对Value排序)
8. hadoop常见的join操作?
(1) reduce side join:是最简单的join操作,主要是在reduce端进行join操作;
(2) Map side join:之所以存在reduce side join,是因为在map端不能获得需要连接的全部的字段。Reduce side join比较低效,因为shuffle传输数据需要消耗大量的性能。
(3) Semijoin:半连接,对于reduce side join,跨机器的数据传输量特别大,成为join的一个瓶颈。如果能在map端过滤掉不会参加join的数据,那么可以大大节省网络IO。
9. hive优化有哪些?
- Map优化
- reduce优化
- join优化
参考链接 Hive-优化 密码:ibean.top
10. 分析函数?
参考链接 Hive分析函数
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 野生Java程序员兼美食博主!
评论