《Hive編程指南》是2023年1月人民郵電出版社出版的圖書,作者是[美]Edward Capriolo、Dean Wampler、Jason Rutherglen。
基本介紹
- 中文名:Hive編程指南
- 作者:[美]Edward Capriolo、Dean Wampler、Jason Rutherglen
- 出版社:人民郵電出版社
- 出版時間:2023年1月
- 頁數:318 頁
- 定價:69 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787115333834
內容簡介,作者簡介,圖書目錄,
內容簡介
《Hive編程指南》是一本ApacheHive的編程指南,旨在介紹如何使用Hive的SQL方法——HiveQL來匯總、查詢和分析存儲在Hadoop分散式檔案系統上的大數據集合。《Hive編程指南》通過大量的實例,首先介紹如何在用戶環境下安裝和配置Hive,並對Hadoop和MapReduce進行詳盡闡述,演示Hive如何在Hadoop生態系統進行工作。
《Hive編程指南》適合對大數據感興趣的愛好者以及正在使用Hadoop系統的資料庫管理員閱讀使用。
作者簡介
Edward Capriolo:Media6degrees公司系統管理員,他是Apache軟體基金會成員,還是Hadoop-Hive項目成員。
Dean Wampler:Think Big Analytics公司總顧問,對大數據問題以及Hadoop和機器學習有專門的研究。
Jason Rutherglen:Think Big Analytics公司軟體架構師,對大數據、Hadoop、搜尋和安全有專門的研究。
圖書目錄
第 1章 基礎知識 1
1.1 Hadoop和MapReduce綜述 3
1.2 Hadoop生態系統中的Hive 6
1.2.1 Pig 8
1.2.2 HBase 8
1.2.3 Cascading、Crunch及其他 9
1.3 Java和Hive:詞頻統計算法 11
1.4 後續事情 13
第 2章 基礎操作 14
2.1 安裝預先配置好的虛擬機 14
2.2 安裝詳細步驟 15
2.2.1 裝Java 16
2.2.2 安裝Hadoop 17
2.2.3 本地模式、偽分散式模式和分散式模式 18
2.2.4 測試Hadoop 19
2.2.5 安裝Hive 21
2.3 Hive內部是什麼 22
2.4 啟動Hive 22
2.5 配置Hadoop環境 24
2.5.1 本地模式配置 24
2.5.2 分散式模式和偽分散式模式配置 26
2.5.3 使用JDBC連線元數據 27
2.6 Hive命令 29
2.7 命令行界面 30
2.7.1 CLI 選項 30
2.7.2 變數和屬性 31
2.7.3 Hive中“一次使用”命令 34
2.7.4 從檔案中執行Hive查詢 35
2.7.5 hiverc檔案 36
2.7.6 使用Hive CLI的更多介紹 36
2.7.7 查看操作命令歷史 37
2.7.8 執行shell命令 37
2.7.9 在Hive內使用Hadoop的dfs命令 38
2.7.10 Hive腳本中如何進行注釋 38
2.7.11 顯示欄位名稱 38
第3章 數據類型和檔案格式 40
3.1 基本數據類型 40
3.2 集合數據類型 42
3.3 文本檔案數據編碼 44
3.4 讀時模式 47
第4章 HiveQL:數據定義 48
4.1 Hive中的資料庫 48
4.2 修改資料庫 52
4.3 創建表 52
4.3.1 管理表 56
4.3.2 外部表 56
4.4 分區表、管理表 57
4.4.1 外部分區表 61
4.4.2 自定義表的存儲格式 63
4.5 刪除表 66
4.6 修改表 66
4.6.1 表重命名 67
4.6.2 增加、修改和刪除表分區 67
4.6.3 修改列信息 68
4.6.4 增加列 68
4.6.5 刪除或者替換列 68
4.6.6 修改表屬性 69
4.6.7 修改存儲屬性 69
4.6.8 眾多的修改表語句 70
第5章 HiveQL:數據操作 71
5.1 向管理表中裝載數據 71
5.2 通過查詢語句向表中插入數據 73
5.3 單個查詢語句中創建表並載入數據 76
5.4 導出數據 76
第6章 HiveQL:查詢 78
6.1 SELECT…FROM語句 78
6.1.1 使用正則表達式來指定列 80
6.1.2 使用列值進行計算 81
6.1.3 算術運算符 81
6.1.4 使用函式 82
6.1.5 LIMIT語句 93
6.1.6 列別名 93
6.1.7 嵌套SELECT語句 93
6.1.8 CASE…WHEN…THEN 句式 93
6.1.9 什麼情況下Hive可以避免進行MapReduce 94
6.2 WHERE語句 95
6.2.1 謂詞操作符 96
6.2.2 關於浮點數比較 97
6.2.3 LIKE和RLIKE 98
6.3 GROUP BY 語句 99
6.4 JOIN語句 100
6.4.1 INNER JOIN 100
6.4.2 JOIN最佳化 103
6.4.3 LEFT OUTER JOIN 104
6.4.4 OUTER JOIN 104
6.4.5 RIGHT OUTER JOIN 106
6.4.6 FULL OUTER JOIN 107
6.4.7 LEFT SEMI-JOIN 107
6.4.8 笛卡爾積JOIN 108
6.4.9 map-side JOIN 108
6.5 ORDER BY和SORT BY 110
6.6 含有SORT BY 的DISTRIBUTE BY 111
6.7 CLUSTER BY 112
6.8 類型轉換 112
6.9 抽樣查詢 113
6.9.1 數據塊抽樣 114
6.9.2 分桶表的輸入裁剪 114
6.10 UNION ALL 115
第7章 HiveQL:視圖 117
7.1 使用視圖來降低查詢複雜度 117
7.2 使用視圖來限制基於條件過濾的數據 118
7.3 動態分區中的視圖和map類型 118
7.4 視圖零零碎碎相關的事情 119
第8章 HiveQL:索引 122
8.1 創建索引 122
8.2 重建索引 124
8.3 顯示索引 124
8.4 刪除索引 124
8.5 實現一個定製化的索引處理器 125
第9章 模式設計 126
9.1 按天劃分的表 126
9.2 關於分區 127
9.3 唯 一鍵和標準化 128
9.4 同一份數據多種處理 129
9.5 對於每個表的分區 130
9.6 分桶表數據存儲 131
9.7 為表增加列 132
9.8 使用列存儲表 133
9.8.1 重複數據 133
9.8.2 多列 133
9.9 (幾乎)總是使用壓縮 134
第 10章 調優 135
10.1 使用EXPLAIN 135
10.2 EXPLAIN EXTENDED 138
10.3 限制調整 139
10.4 JOIN最佳化 140
10.5 本地模式 140
10.6 並行執行 141
10.7 嚴格模式 141
10.8 調整mapper和reducer個數 142
10.9 JVM重用 144
10.10 索引 145
10.11 動態分區調整 145
10.12 推測執行 146
10.13 單個MapReduce中多個GROUP BY 147
10.14 虛擬列 147
第 11章 其他檔案格式和壓縮方法 149
11.1 確定安裝編解碼器 149
11.2 選擇一種壓縮編/解碼器 150
11.3 開啟中間壓縮 151
11.4 **終輸出結果壓縮 152
11.5 sequence file存儲格式 152
11.6 使用壓縮實踐 153
11.7 存檔分區 157
11.8 壓縮:包紮 159
第 12章 開發 160
12.1 修改Log4J屬性 160
12.2 連線Java調試器到Hive 161
12.3 從源碼編譯Hive 161
12.3.1 執行Hive測試用例 162
12.3.2 執行hook 163
12.4 配置Hive和Eclipse 163
12.5 Maven工程中使用Hive 164
12.6 Hive中使用hive_test進行單元測試 165
12.7 新增的外掛程式開發工具箱(PDK) 167
第 13章 函式 168
13.1 發現和描述函式 168
13.2 調用函式 169
13.3 標準函式 169
13.4 聚合函式 169
13.5 表生成函式 170
13.6 一個通過日期計算其星座的UDF 171
13.7 UDF與GenericUDF 174
13.8 不變函式 177
13.9 用戶自定義聚合函式 177
13.10 用戶自定義表生成函式 183
13.10.1 可以產生多行數據的UDTF 183
13.10.2 可以產生具有多個欄位的單行數據的UDTF 185
13.10.3 可以模擬複雜數據類型的UDTF 185
13.11 在 UDF中訪問分散式快取 188
13.12 以函式的方式使用註解 190
13.12.1 定數性(deterministic)標註 191
13.12.2 狀態性(stateful)標註 191
13.12.3 唯 一性 191
13.13 宏命令 191
第 14章 Streaming 193
14.1 恆等變換 194
14.2 改變類型 194
14.3 投影變換 194
14.4 操作轉換 195
14.5 使用分散式記憶體 195
14.6 由一行產生多行 196
14.7 使用streaming進行聚合計算 197
14.8 CLUSTER BY、DISTRIBUTE BY、SORT BY 198
14.9 GenericMR Tools for Streaming to Java 201
14.10 計算cogroup 203
第 15章 自定義Hive檔案和記錄格式 204
15.1 檔案和記錄格式 204
15.2 闡明CREATE TABLE句式 204
15.3 檔案格式 206
15.3.1 SequenceFile 207
15.3.2 RCfile 207
15.3.3 示例自定義輸入格式:DualInputFormat 208
15.4 記錄格式:SerDe 210
15.5 CSV和TSV SerDe 211
15.6 ObjectInspector 212
15.7 Thing Big Hive Reflection ObjectInspector 212
15.8 XML UDF 212
15.9 XPath相關的函式 213
15.10 JSON SerDe 214
15.11 Avro Hive SerDe 215
15.11.1 使用表屬性信息定義Avro Schema 215
15.11.2 從指定URL中定義Schema 216
15.11.3 進化的模式 216
15.12 二進制輸出 217
第 16章 Hive的Thrift服務 218
16.1 啟動Thrift Server 218
16.2 配置Groovy使用HiveServer 219
16.3 連線到HiveServer 219
16.4 獲取集群狀態信息 220
16.5 結果集模式 220
16.6 獲取結果 220
16.7 獲取執行計畫 221
16.8 元數據存儲方法 221
16.9 管理HiveServer 222
16.9.1 生產環境使用HiveServer 223
16.9.2 清理 224
16.10 Hive ThriftMetastore 224
16.10.1 ThriftMetastore 配置 224
16.10.2 客戶端配置 224
第 17章 存儲處理程式和NoSQL 226
17.1 Storage Handler Background 226
17.2 HiveStorageHandler 227
17.3 HBase 227
17.4 Cassandra 229
17.4.1 靜態列映射(Static Column Mapping) 229
17.4.2 為動態列轉置列映射 229
17.4.3 Cassandra SerDe Properties 229
17.5 DynamoDB 230
第 18章 安全 232
18.1 和Hadoop安全功能相結合 233
18.2 使用Hive進行驗證 233
18.3 Hive中的許可權管理 234
18.3.1 用戶、組和角色 235
18.3.2 Grant 和 Revoke許可權 236
18.4 分區級別的許可權 238
18.5 自動授權 239
第 19章 鎖 241
19.1 Hive結合Zookeeper支持鎖功能 241
19.2 顯式鎖和獨占鎖 244
第 20章 Hive和Oozie整合 245
20.1 Oozie提供的多種動作(Action) 245
20.2 一個只包含兩個查詢過程的工作流示例 247
20.3 Oozie 網頁控制台 248
20.4 工作流中的變數 248
20.5 獲取輸出 249
20.6 獲取輸出到變數 250
第 21章 Hive和亞馬遜網路服務系統(AWS) 251
21.1 為什麼要彈性MapReduce 251
21.2 實例 251
21.3 開始前的注意事項 252
21.4 管理自有EMR Hive集群 252
21.5 EMR Hive上的Thrift Server服務 253
21.6 EMR上的實例組 253
21.7 配置EMR集群 254
21.7.1 部署hive-site.xml檔案 254
21.7.2 部署.hiverc腳本 255
21.7.3 建立一個記憶體密集型配置 255
21.8 EMR上的持久層和元數據存儲 256
21.9 EMR集群上的HDFS和S3 257
21.10 在S3上部署資源、配置和輔助程式腳本 258
21.11 S3上的日誌 258
21.12 現買現賣 258
21.13 安全組 260
21.14 EMR和EC2以及Apache Hive的比較 260
21.15 包裝 261
第 22章 HCatalog 262
22.1 介紹 262
22.2 MapReduce 263
22.2.1 讀數據 263
22.2.2 寫數據 265
22.3 命令行 268
22.4 安全模型 269
22.5 架構 270
第 23章 案例研究 271
23.1 m6d.com(Media6Degrees) 271
23.1.1 M 6D的數據科學,使用Hive和R 271
23.1.2 M6D UDF偽隨機 275
23.1.3 M6D如何管理多MapReduce集群間的Hive數據訪問 280
23.2 Outbrain 284
23.2.1 站內線上身份識別 284
23.2.2 計算複雜度 287
23.2.3 會話化 288
23.3 NASA噴氣推進實驗室 295
23.3.1 區域氣候模型評價系統 295
23.3.2 我們的經驗:為什麼使用Hive 297
23.3.3 解決這些問題我們所面臨的挑戰 298
23.4 Photobucket 299
23.4.1 Photobucket 公司的大數據套用情況 299
23.4.2 Hive所使用的硬體資源信息 300
23.4.3 Hive提供了什麼 300
23.4.4 Hive支持的用戶有哪些 300
23.5 SimpleReach 300
23.6 Experiences and Needs from the Customer Trenches 303
23.6.1 介紹 303
23.6.2 Customer Trenches的用例 304
術語辭彙表 312