Hive的相关面试问题
一、hive是怎樣保存元數據的
保存元數據的方式有:
?? 1、? 內存數據庫Derby 特點: 保存數據小,不穩定。一般不使用。
2、 本地MySQL數據庫 特點: 存儲方式可以自己設定,持久化好,一般企業開發都用mysql做支持。
3、 遠程MySQL數據庫 特點: 相比而言,本地mysql數據庫用的比較多,因為本地讀寫速度都比較快。
二、什么是hive的內部表和外部表
1.、被external修飾的是內部表, 被external修飾的是外部表。?
2、內部表數據由Hive自身管理,外部表數據由HDFS管理。
3、 內部表數據存儲的位置是warehouse的路勁,外部表數據的存儲路勁由自己指定。
4、刪除內部表會直接刪除元數據以及存儲的數據, 刪除外部表僅僅會刪除元數據, HDFS上的文件并不會被刪除。
5、對內部表的修改會將修改直接同步給元數據, 對外部表的表結構和分區進行修改的話, 則需要修復 :MSCK REPAIR TABLE 表名。
三、 Hive的 sort by 和 order by 的區別
order by 會對輸入做全局排序, 因此只有一個reducer(多個reducer無法保證全局有序)只有一個reduce, 會導致當輸入規模較大時, 需要較長的計算時間。
sort by 不是全局排序,其在數據進入reducer前完成排序。
因此,如果用sort by 進行排序, 并且設置 mapred.reduce.tasks>1,則sort by 只保證每個reducer的排序有序, 不保證全局有序。
四、 HBase和Hive的區別
Apache Hive 是一個構建在Hadoop基礎設施之上的數據倉庫。 通過Hive可以使用HQL語言查詢存放在HDFS上的數據。HQL是一種類SQL語言, 這種語言最終被轉化為Map/Reduce。雖然Hive提供了SQL查詢功能,但是Hive不能夠進行交互查詢---因為它只能夠在hadoop上批量的執行Hadoop。
Apache Hbase 是一種 Key/Value 系統,它運行在HDFS之上。 和Hive不一樣, Hbase的能夠在它的數據庫上實時運行,而不是運行MapReduce任務。 HBase被分區為表格,表格又被進一步分割為列簇。列簇必須使用schema定義,列簇將某一類型列表集合起來(列不要求schema定義)例如: “message” 列簇可能包含:“to”, “from”,“date”,“subject” 和 “body”? 每一個key/value對在Hbase中被定義為一個cell,每一個key由row-key, 列簇、列和 時間戳。 在Hbase中,行是key/value 映射的集合,這個映射通過row-key來唯一標識。 Hbase利用Hadoop的基礎設施, 可以利用通過的設備進行水平的擴展。
?
轉載于:https://www.cnblogs.com/fjdsj/p/10094302.html
總結
以上是生活随笔為你收集整理的Hive的相关面试问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u盘装win10蓝屏怎么办 U盘安装wi
- 下一篇: Leetcode300. Longest