失效链接处理 |
Apache Hive面试题 PDF 下载
相关截图:
主要内容:
1. Hive的metastore的三种模式
内嵌Derby⽅式
这个是Hive默认的启动模式,⼀般⽤于单元测试,这种存储⽅式有⼀个缺点:在同⼀时间只能有⼀个进程连
接使⽤数据库。
Local⽅式
本地MySQL
Remote⽅式
远程MySQL,⼀般常⽤此种⽅式
2. Hive 内部表和外部表的区别
建表时带有external关键字为外部表,否则为内部表
内部表和外部表建表时都可以⾃⼰指定location
删除表时,外部表不会删除对应的数据,只会删除元数据信息,内部表则会删除
其他⽤法是⼀样的
3. Hive 四种排序⽅式的区别
order by
order by 是要对输出的结果进⾏全局排序,这就意味着只有⼀个reducer才能实现(多个reducer⽆法保证
全局有序)但是当数据量过⼤的时候,效率就很低。如果在严格模式下(hive.mapred.mode=strict),则必
须配合limit使⽤
sort by
sort by 不是全局排序,只是在进⼊到reducer之前完成排序,只保证了每个reducer中数据按照指定字段的
有序性,是局部排序。配置mapred.reduce.tasks=[nums]可以对输出的数据执⾏归并排序。可以配合limit使
⽤,提⾼性能
distribute by
distribute by 指的是按照指定的字段划分到不同的输出reduce⽂件中,和sort by⼀起使⽤时需要注意,
distribute by必须放在前⾯
cluster by
cluster by 可以看做是⼀个特殊的distribute by+sort by,它具备⼆者的功能,但是只能实现倒序排序的⽅式,
不能指定排序规则为asc 或者desc
4. Hive中⼤表join⼩表的优化⽅法
在⼩表和⼤表进⾏join时,将⼩表放在前边,效率会⾼,hive会将⼩表进⾏缓存
|