前言
大家好,我是
manor,相信大家和我一樣,都有一個大廠夢,作為一名大資料專業學生、愛好者,深知面試重要性,很多學生已經進入暑假模式,暑假也不能懈怠,正值金九銀十的秋招
接下來我準備用30天時間,基于大資料開發崗面試中的高頻面試題,以每日5題的形式,帶你過一遍熱門面試題及恰如其分的解答,相信只要一路走來,榷訓月累,我們侄訓在最高處見,
以古人的話共勉:道阻且長,行則將至;行而不輟,未來可期!

本欄目大資料開發崗高頻面試題主要出自
大資料技術專欄的各個小專欄,由于個別筆記上傳太早,排版雜亂,后面會進行原文美化、增加,
文章目錄
- 前言
- 面試題01、 請說下Hive和資料庫的區別
- 面試題02、 內部表和外部表
- 面試題03、Hive中order by,sort by,distribute by和cluster by的區別
- 面試題04、UDF、UDAF、UDTF的區別
- 面試題05、Rank排名函式
- 總結
面試題01、 請說下Hive和資料庫的區別

Hive 和資料庫除了擁有類似的查詢語言,再無類似之處,
1)資料存盤位置
Hive 存盤在 HDFS ,資料庫將資料保存在塊設備或者本地檔案系統中,
2)資料更新
Hive中不建議對資料的改寫,而資料庫中的資料通常是需要經常進行修改的,
3)執行延遲
Hive 執行延遲較高,資料庫的執行延遲較低,當然,這個是有條件的,即資料規模較小,當資料規模大到超過資料庫的處理能力的時候,Hive的并行計算顯然能體現出優勢,
4)資料規模
Hive支持很大規模的資料計算;資料庫可以支持的資料規模較小,
面試題02、 內部表和外部表
1)內部表又叫管理表:當我們洗掉一個管理表時,Hive也會洗掉這個表資料,管理表不適合和其他工具共享資料,
2)外部表:洗掉該表并不會洗掉掉原始資料,洗掉的是表的元資料
詳答版:
未被 external 修飾的是內部表(managed table),被 external 修飾的為外部表 (external table)
區別:
內部表資料由 Hive 自身管理,外部表資料由 HDFS 管理;
內部表資料存盤的位置是hive.metastore.warehouse.dir(默認:/user/hive/warehouse),外部表資料的存盤位置由自己制定(如果沒有 LOCATION, Hive 將在HDFS上的/user/hive/warehouse 檔案夾下以外部表的表名創建一個檔案夾,并將屬于這個表的資料存放在這里);
洗掉內部表會直接洗掉元資料(metadata)及存盤資料;洗掉外部表僅僅會洗掉元資料,HDFS 上的檔案并不會被洗掉;

面試題03、Hive中order by,sort by,distribute by和cluster by的區別
Sort By:在同一個磁區內排序
Order By:全域排序,只有一個Reducer;
Distrbute By:類似 MapReduce 中Partition,進行磁區,一般結合sort by使用,
Cluster By:當 Distribute by 和 Sort by 欄位相同時,可以使用Cluster by方式,
Cluster by 除了具有 Distribute by 的功能外還兼具 Sort by 的功能,但是只能升序排序,不能指定排序規則為ASC或者DESC,
面試題04、UDF、UDAF、UDTF的區別
當Hive自帶的函式無法滿足我們的業務處理需求時,hive允許我們自定義函式來滿足需求,
根據自定義函式的類別分為以下三種:
UDF:User-Defined-Function,用戶自定義函式,資料是一進一出,功能類似于大多數數學函式或者字串處理函式;
UDAF:User-Defined Aggregation Function,用戶自定義聚合函式,資料是多進一出,功能類似于 count/max/min;
UDTF:User-Defined Table-Generating Functions,用戶自定義表生成函式,資料是一進多處,功能類似于lateral view explore();
面試題05、Rank排名函式
1.RANK() 排序相同時會重復,總數不會變;
2.DENSE_RANK() 排序相同時會重復,總數會減少;
3.ROW_NUMBER() 根據順序計算排名,
在實際開發中,以上三個rank函式通常是和開窗函式一起使用的,
總結
今天我們復習了面試中常考的Hive相關的五個問題,你做到心中有數了么?
其實做這個專欄我也有私心,就是希望借助每天寫一篇面試題,督促自己學習,以免在吹水群甚至都沒有談資!
對了,如果你的朋友也在準備面試,請將這個系列扔給他,
好了,今天就到這里,學廢了的同學,記得在評論區留言:打卡,給同學們以激勵,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/289213.html
標籤:其他
