Hive 學習筆記
Hive 簡介
Hive 是建立在 Hadoop 上的數(shù)據(jù)倉庫基礎(chǔ)構(gòu)架徙菠,可以用來進行數(shù)據(jù)提取轉(zhuǎn)化加載。
Hive 架構(gòu)
- 用戶接口:CLI, Client, WUI
- 通常存儲在 mysql
- 解釋器、編譯器、優(yōu)化器、執(zhí)行器
- Hadoop:用 HDFS 進行存儲迎吵,用 MapReduce 進行計算
Hive 特點
- 不支持對數(shù)據(jù)的改寫和添加
- 不會對數(shù)據(jù)中的某些 key 建立索引,需要掃描整張表
- 數(shù)據(jù)規(guī)模大到超過數(shù)據(jù)庫的處理能力的時候针贬,Hive 的并行計算能體現(xiàn)出優(yōu)勢
可以調(diào)用 python
CREATETABLE u_data_new (
userid INT,
movieid INT,
rating INT,
weekday INT)
ROWFORMAT DELIMITED
FIELDSTERMINATED BY ‘\t’;
add FILEweekday_mapper.py;
INSERTOVERWRITE TABLE u_data_new
join 時击费,每次map/reduce 任務(wù)的邏輯
reducer 會緩存 join 序列中除了最后一個表的所有表的記錄,再通過最后一個表將結(jié)果序列化到文件系統(tǒng)桦他。這一實現(xiàn)有助于在 reduce 端減少內(nèi)存的使用量蔫巩。實踐中,應(yīng)該把最大的那個表寫在最后(否則會因為緩存浪費大量內(nèi)存)