完整PDF下載:《HIVE簡明教程》 前言 Hive是對於數據倉庫進行管理和分析的工具。但是不要被“數據倉庫”這個詞所嚇倒,數據倉庫是很複雜的東西,但是如果你會SQL,就會發現Hive是那麼的簡單,簡單到甚至不用學就可以使用Hive做出業務需求所需要的東西。 但是Hive和SQL畢竟不同,執行原理、 ...
完整PDF下載:《HIVE簡明教程》
前言
Hive是對於數據倉庫進行管理和分析的工具。但是不要被“數據倉庫”這個詞所嚇倒,數據倉庫是很複雜的東西,但是如果你會SQL,就會發現Hive是那麼的簡單,簡單到甚至不用學就可以使用Hive做出業務需求所需要的東西。
但是Hive和SQL畢竟不同,執行原理、優化方法,底層架構都完全不相同。
大數據離線分析使用Hive已經成為主流,但是目前市面上Hive相關的中文書籍只有一本《Hive編程指南》,對於不懂技術的數據分析人員來說,這本書有些繁瑣和深奧;對於Hive技術人員來說,這本書對於原理和細節描述的又顯得淺顯和不足。
基於工作中的Hive使用情況,我整理了這個實用性的教程,這個教程分為三個部分:Hive基本使用、Hive執行原理與優化、Hive高級知識。由淺入深地簡單介紹Hive技術。
第一部分:完全以日常使用為目標,整理了常用的Hive語法,而拋棄了不常用的部分,用來滿足不懂技術的分析人員來快速使用Hive進行常見的日常數據分析。
第二部分:如果想能寫出高效的Hive語句,必須要先瞭解Hive執行原理,然後掌握一系列的優化方法。所以第二部分主要內容是Hive原理與優化。
第三部分:講解Hive的一系列技術細節,以滿足技術人員想瞭解技術細節的要求,為能更加高效和靈活地使用Hive提供技術基礎。
三個部分的詳細說明:
模塊 |
主要內容 |
預期目標 |
面對人群 |
Hive基本使用 |
Hive概念、常用語法、內置函數、自定義函數 |
可以使用Hive做常見的大數據分析工作 |
能統計出數即可的分析人員 |
Hive執行原理與優化 |
Hive技術架構、執行原理、優化方法 |
瞭解Hive執行原理,可以寫出性能比較好的Hive程式 |
對性能有要求的分析人員 |
Hive高級知識 |
Hive技術細節 |
瞭解Hive技術細節 |
對Hive原理感興趣的人員 |
參考資料:
1、Hive編程指南》 Eduard Capriolo、Dean Wampler、Jason Rutberglen 著 曹坤 譯
2、Hive官方文檔:https://cwiki.apache.org/confluence/display/Hive/GettingStarted
3、互聯網上其他資源
第一部分:Hive基本使用
一、 Hive簡介
1、 定義
2、 Hive的幾個特點
3、 Hive使用
二、 Hive中的基本數據類型
三、 Hive DDL 數據定義語法
1、 創建資料庫
2、 查看資料庫定義
3、 查看資料庫列表
4、 刪除資料庫
5、 切換當前資料庫
6、 創建普通表
7、 創建分區表
8、 創建桶表
9、 查看有哪些表
10、 查看表定義
11、 修改表
12、 刪除表
四、 Hive DML 數據管理語法
1、 向Hive中載入數據
2、 導出數據
3、 插入數據
4、 複製表
5、 克隆表
6、 備份表
7、 還原表
五、 Hive QL 數據查詢語法
1、 Select 查詢
2、 Where篩選
3、 Group By 分組
4、 子查詢
六、 Join
1、 Hive Join的限制
2、 Inner join
3、 Left join
4、 Right join
5、 Full join
6、 Left Semi-Join ( exists 語句)
七、 排序
1、 Order By
2、 Sort By
3、 Distribute By 和 Sort By
4、 Cluster By
5、 常見全局排序需求
八、 Hive內置函數
1、 參考資料
2、 explode函數
3、 collect_set函數
4、 collect_list函數
九、 Hive自定義函數
1、 UDF用戶自定義函數(一進一齣)
2、 UDAF用戶自定義聚合函數(多進一齣)
3、 UDTF自定義表生成函數(一進多出)
第二部分:Hive執行原理與優化
十、 Hive技術架構
1、 架構圖
2、 Hive的核心
3、 Hive的底層存儲
4、 Hive程式的執行過程
5、 Hive的元數據存儲
6、 Hive客戶端
十一、 MapReduce執行過程
十二、 Shuffle原理
1、 Map Shuffle過程
2、 Reduce Shuffle過程
十三、 性能瓶頸和優化
十四、 HiveQL層面優化
1、 利用分區表優化
2、 利用桶表優化
3、 join優化
4、 啟用mapjoin
5、 桶表mapjoin
6、 Group By數據傾斜優化
7、 Order By優化
8、 Group By Map端聚合
9、 一次讀取多次插入
10、 Join欄位顯示類型轉換
11、 使用orc、parquet等列式存儲格式
十五、 Hive架構層面優化
1、 不執行MapReduce
2、 本地模式執行MapReduce
3、 JVM重用
4、 並行化
十六、 Hive底層MapReduce優化
1、 合理設置Map數
2、 合理設置reduce數
第三部分:Hive高級知識
十七、 Hive文件格式
1、 常見文件格式
2、 列式存儲
十八、 Hive壓縮方法
1、 壓縮的原因
2、 Hadoop常用壓縮方法
3、 配置Hadoop壓縮解壓
4、 Hive中的壓縮
十九、 複雜類型
1、 舉例
2、 array類型
3、 map類型
4、 struct類型
5、 union類型
6、 欄位分隔符
二十、 Hive SQL轉換為MapReduce過程
二十一、 Hive解釋器
1、 詞法語法解析
2、 生成抽象語法樹
二十二、 Hive編譯器
二十三、 Hive優化器
二十四、 Hive執行器
附錄A : HIVE安裝
1、 安裝Hive
2、 配置Hive
3、 安裝MySQL資料庫
4、 在遠程MySQL存儲模式配置
5、 啟動Hadoop
6、 啟動Hive
7、 測試hive