hive 常見面試題


(筆者自己做記錄)

1.Hive內外部表的區別
刪除表是否影響外部數據
2.Hive如何做到權限管理
hive下可以修改配置后創建用戶管理,但是僅僅是為了防止誤操而已,如果要真的為了安全操作建議使用
Kerberos
3.Hive的數據傾斜和調優
key分布不均勻造成 去null
調節參數
hive.map.aggr=true
map端聚合,相當於combiner
hive.groupby.skewindata=true
4.Hive文件壓縮格式有哪些?壓縮效率如何
開啟壓縮
set hive.exec.compress.output=true;
set mapred.output.compress=true;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
set io.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
set mapred.output.compression.type=BLOCK;

TextFile(壓縮方式Gzip,Bzip2 壓縮后不支持split)
SequenceFile-<key,value> (NONE,RECORD,BLOCK!。Record)
RCFile(存儲方式:數據按行分塊,每塊按列存儲。結合了行存儲和列存儲的優點)
ORCFile
(GZIP LZO DefaultCodec snappy)
5.說說對桶表的理解
對數據的細化 取模分開存儲數據
6.Hive解析hql轉化為MR的執行過程

、SemanticAnalyzer的主要分析過程:調用analyzeInternal函數
1)doPhase1過程:主要是將sql語句中涉及到的各種信息存儲起來,存到QB中去,供后續調用
2)getMetaData:這個過程主要是獲取元數據信息,主要是sql中涉及到的表到元數據的關聯
3)genPlan:這是最重要的過程之一,主要是生成算子樹(operator tree)
4)optimize:優化,對算子樹進行一些優化操作,例如列剪枝等
5)genMapRedTasks:這個步驟是最關鍵的步驟,將算子樹通過一定的規則生成若干相互以來的MR任務

7.Hive的分組排序(row_number()),組內TopN
8.hive有哪些保存元數據的方式,有什么特點
1、Single User Mode:
默認安裝hive,hive是使用derby內存數據庫保存hive的元數據,這樣是不可以並發調用hive的,
這種模式時hive默認的存儲模式,。
2、Multi
User Mode:
通過網絡連接到一個數據庫中,是最經常使用到的模式。假設使用本機mysql服務器存儲元數據。這種存儲
方式需要在本地運行一個mysql服務器,並作如下配置(需要將mysql的jar包拷貝到$HIVE_HOME/lib目錄下
)。
3、Remote Server Mode:
在服務器端啟動一個 MetaStoreServer,客戶端利用 Thrift 協議通過 MetaStoreServer 訪問元數據
庫。

9.hive能建多個庫嗎
可以
10.hive的底層怎么與數據庫交互的。
11.hive實現統計的查詢語句以及與mr的區別
12.對於hive你寫過哪些UDF函數,作用是干什么的
13.hive與hbase的區別
明顯
14.hive中的壓縮格式textfile, sequencefile, rcfile, orc的區別
15.hive的工作原理
16.編寫hive自定義函數,實現oracle數據庫中的addmonths函數功能,然后封裝到hive函數庫中。


load data local inpath '文件路徑' into table t partition(dt="2016-07-25");


hive自定義函數
udf步驟:
1.寫一個類繼承(org.apache.hadoop.hive.ql.)UDF
2.覆蓋方法eturn evaluate(param...)
3.打jar包,提交hive服務器
4.添加到hive資源里面(add jar jar的路徑)--->臨時的加入的hive的classpath
5.創建一個臨時的函數create temparay function functionName as '自定義類的全類名';
6.執行相應的操作
7[可選]、drop 臨時函數
網上有例子:根據生日得到屬性和星座


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM