本書以Hive為開發平臺,主要介紹了如何使用HiveQL來查詢和分析存儲在Hadoop分布式文件系統上的大數據集合,具體內容包括Hive入門、Hive數據庫及表操作、Hive元數據、Hive高級操作、Hive函數與Streaming、Hive視圖與索引、Hive調優、Hive與HBase集成、數據遷移框架Sqoop等。本書介紹的每個任務都運用了大量案例,緊密結合實際應用,融入了含金量十足的開發經驗。在此基礎上,本書通過豐富的練習和操作實踐,幫助讀者鞏固所學的內容。本書配以多元的學習資源和支持服務,包括視頻、案例素材、學習社區等,為讀者提供全方位的學習體驗。
本書適合作為計算機、大數據等相關專業的教材,也適合具有一定Linux或Java開發基礎且想從事大數據開發的人員閱讀學習,還可以作為大數據分析與運維人員的參考用書。
1. 貫穿項目與實戰項目相結合
(1)貫穿項目:雇員信息、零售數據分析貫穿每章,及時鞏固Hive各知識點。
(2)實戰項目:電商消費數據分析綜合實訓,提升Hive企業級應用開發能力。
2. 教學資源豐富多樣
(1)本書配套素材及示例代碼。
(2)每章課后作業及答案。
(3)重難點內容講解視頻(掃碼直接觀看)。
3. 學習效果隨時可測
(1)每章提供“本章目標”及“重難點”,助力讀者確定學習要點。
(2)課后作業輔助讀者鞏固階段性學習內容。
(3)課工場題庫助力在線測試。
肖睿,課工場創始人,北京大學教育學博士,北京大學軟件學院特約講師,北京大學學習科學實驗室特約顧問。作為北大青鳥 Aptech 的聯合創始人,歷任學術總監、研究院院長、公司副總裁等核心崗位,擁有20多年的IT職業教育產品管理和企業管理經驗。于2015年創辦課工場,兼任總經理,旨在為大學生提供更可靠的 IT 就業教育及服務。
北京課工場教育科技有限公司是專注互聯網教育的生態平臺,匯聚了中國和北美數百位來自知名互聯網企業的行業大咖,依托Transform只能教育生態平臺,打造智慧校園、企業大學、行業培訓的教育場景,提供一站式教育解決方案。
第 1章 Hive入門 1
任務1 了解Hive基礎 2
1.1.1 認識Hive 2
1.1.2 Hive架構設計 5
1.1.3 Hive工作流程 6
1.1.4 Hive適用場景 7
任務2 掌握Hive數據存儲模型 8
1.2.1 Hive存儲格式 8
1.2.2 Hive數據單元 10
1.2.3 Hive存儲模型 10
任務3 安裝配置Hive環境 11
1.3.1 Hive的發展歷程 12
1.3.2 搭建Hive CDH環境 13
1.3.3 Hive初體驗 15
1.3.4 Hive開發環境 18
1.3.5 技能實訓 21
本章小結 21
本章作業 21
第 2章 Hive數據庫及表操作 23
任務1 熟悉Hive數據類型 24
2.1.1 基本數據類型 24
2.1.2 復雜數據類型 26
任務2 使用Hive管理雇員信息 28
2.2.1 Hive DDL操作 29
2.2.2 Hive DML操作 33
2.2.3 Hive Shell 38
2.2.4 技能實訓 40
任務3 使用Hive Java API操作雇員表 41
2.3.1 開發環境搭建 41
2.3.2 JDBC操作Hive數據庫 42
2.3.3 技能實訓 47
本章小結 47
本章作業 48
第3章 Hive元數據 49
任務1 訪問雇員數據的元數據信息 50
3.1.1 Hive元數據的概念及存儲方式 50
3.1.2 雇員數據元數據信息查詢 53
3.1.3 技能實訓 60
任務2 使用Hive Java API讀取雇員表元數據 60
3.2.1 hive-metastore組件 60
3.2.2 使用HiveMetaStoreClient訪問元數據 62
3.2.3 技能實訓 68
任務3 使用HCatalog管理雇員數據的元數據 69
3.3.1 HCatalog介紹 69
3.3.2 HCatalog應用 70
本章小結 75
本章作業 75
第4章 Hive高級操作 77
任務1 關聯查詢零售商店訂單明細 78
4.1.1 SELECT語句 78
4.1.2 關聯查詢 83
4.1.3 聯合查詢 87
4.1.4 技能實訓 87
任務2 使用分組排序實現商品銷售排行 88
4.2.1 排序 88
4.2.2 分組聚合 91
4.2.3 技能實訓 94
任務3 使用窗口函數實現零售數據統計 94
4.3.1 窗口函數 94
4.3.2 窗口的定義 99
4.3.3 技能實訓 102
本章小結 102
本章作業 102
第5章 Hive函數與Streaming 103
任務1 應用內置函數 104
5.1.1 函數概述 104
5.1.2 內置函數詳解 105
5.1.3 技能實訓 112
任務2 使用Java編寫Hive自定義函數 112
5.2.1 自定義函數概述 113
5.2.2 UDF 114
5.2.3 UDAF 117
5.2.4 UDTF 120
5.2.5 技能實訓 121
任務3 使用Streaming實現數據處理 121
5.3.1 Streaming概念 122
5.3.2 Streaming應用 122
5.3.3 技能實訓 125
本章小結 125
本章作業 125
第6章 Hive視圖與索引 127
任務1 創建并管理零售商店的顧客表和訂單表視圖 128
6.1.1 視圖的基本概念及使用場景 128
6.1.2 視圖的基本操作 130
6.1.3 Materialized Views和Lateral View 135
6.1.4 技能實訓 138
任務2 建立零售商店顧客表索引 139
6.2.1 Hive索引的基本概念及使用場景 139
6.2.2 為零售商店顧客表建立索引 141
6.2.3 與索引相關的元數據表 144
6.2.4 技能實訓 145
本章小結 146
本章作業 146
第7章 Hive調優 147
任務1 熟悉Hive性能調優策略 148
7.1.1 Hive性能調優使用工具 148
7.1.2 優化Map Task和Reduce Task個數 150
7.1.3 Hive Job優化 151
7.1.4 Hive Query優化 153
7.1.5 設置壓縮 155
7.1.6 技能實訓 157
任務2 解決Hive數據傾斜問題 157
7.2.1 數據傾斜問題 158
7.2.2 數據傾斜問題解決方案 158
任務3 Hive集成Tez 161
7.3.1 Tez簡介 161
7.3.2 Tez安裝配置 162
7.3.3 Hive與Tez集成 164
7.3.4 技能實訓 166
本章小結 166
本章作業 166
第8章 Hive與HBase集成 169
任務1 理解Hive與HBase集成的場景及原理 170
8.1.1 Hive與HBase集成的應用場景 170
8.1.2 Hive與HBase集成原理 171
任務2 實現Hive與HBase集成 174
8.2.1 Hive與HBase集成配置 174
8.2.2 Hive與HBase集成功能測試 175
8.2.3 將零售商店顧客購買統計信息存入HBase表 182
8.2.4 技能實訓 183
任務3 使用Phoenix操作HBase數據庫 184
8.3.1 Phoenix簡介 184
8.3.2 搭建Phoenix CDH環境 186
8.3.3 技能實訓 189
本章小結 190
本章作業 190
第9章 數據遷移框架Sqoop 191
任務1 使用Sqoop完成Hadoop與MySQL間的數據遷移 192
9.1.1 Sqoop簡介 192
9.1.2 導入MySQL數據到HDFS 196
9.1.3 導入MySQL數據到Hive 205
9.1.4 導入MySQL數據到HBase 206
9.1.5 導出HDFS數據到MySQL 207
9.1.6 技能實訓 211
任務2 使用Sqoop Job完成Hive與MySQL間的數據遷移 211
9.2.1 Sqoop Job 212
9.2.2 技能實訓 213
本章小結 213
本章作業 213
第 10章 項目實訓:電子商務消費行為分析 215
10.1 項目準備 216
10.2 難點分析 219
10.3 項目實現思路 220
本章小結 242
本章作業 242