《Hive編程指南》是一本Apache Hive的編程指南,旨在介紹如何使用Hive的SQL方法HiveQL來匯總、查詢和分析存儲在Hadoop分布式文件系統上的大數據集合。全書通過大量的實例,首先介紹如何在用戶環境下安裝和配置Hive,并對Hadoop和MapReduce進行詳盡闡述,最終演示Hive如何在Hadoop生態系統進行工作。
Hive編程指南目錄
第1章 基礎知識
1.1 Hadoop和MapReduce綜述
1.2 Hadoop生態系統中的Hive
1.2.1 Pig
1.2.2 HBase
1.2.3 Cascading、Crunch及其他
1.3 Java和Hive:詞頻統計算法
1.4 后續事情
第2章 基礎操作
2.1 安裝預先配置好的虛擬機
2.2 安裝詳細步驟
2.2.1 裝Java
2.2.2 安裝Hadoop
2.2.3 本地模式、偽分布式模式和分布式模式
2.2.4 測試Hadoop
2.2.5 安裝Hive
2.3 Hive內部是什么
2.4 啟動Hive
2.5 配置Hadoop環境
2.5.1 本地模式配置
2.5.2 分布式模式和偽分布式模式配置
2.5.3 使用JDBC連接元數據
2.6 Hive命令
2.7 命令行界面
2.7.1 CLI 選項
2.7.2 變量和屬性
2.7.3 Hive中“一次使用”命令
2.7.4 從文件中執行Hive查詢
2.7.5 hiverc文件
2.7.6 使用Hive CLI的更多介紹
2.7.7 查看操作命令歷史
2.7.8 執行shell命令
2.7.9 在Hive內使用Hadoop的dfs命令
2.7.10 Hive腳本中如何進行注釋
2.7.11 顯示字段名稱
第3章 數據類型和文件格式
3.1 基本數據類型
3.2 集合數據類型
3.3 文本文件數據編碼
3.4 讀時模式
第4章 HiveQL:數據定義
4.1 Hive中的數據庫
4.2 修改數據庫
4.3 創建表
4.3.1 管理表
4.3.2 外部表
4.4 分區表、管理表
4.4.1 外部分區表
4.4.2 自定義表的存儲格式
4.5 刪除表
4.6 修改表
4.6.1 表重命名
4.6.2 增加、修改和刪除表分區
4.6.3 修改列信息
4.6.4 增加列
4.6.5 刪除或者替換列
4.6.6 修改表屬性
4.6.7 修改存儲屬性
4.6.8 眾多的修改表語句
第5章 HiveQL:數據操作
5.1 向管理表中裝載數據
5.2 通過查詢語句向表中插入數據
5.3 單個查詢語句中創建表并加載數據
5.4 導出數據
第6章 HiveQL:查詢
6.1 SELECT…FROM語句
6.1.1 使用正則表達式來指定列
6.1.2 使用列值進行計算
6.1.3 算術運算符
6.1.4 使用函數
6.1.5 LIMIT語句
6.1.6 列別名
6.1.7 嵌套SELECT語句
6.1.8 CASE…WHEN…THEN 句式
6.1.9 什么情況下Hive可以避免進行MapReduce
6.2 WHERE語句
6.2.1 謂詞操作符
6.2.2 關于浮點數比較
6.2.3 LIKE和RLIKE
6.3 GROUP BY 語句
6.4 JOIN語句
6.4.1 INNER JOIN
6.4.2 JOIN優化
6.4.3 LEFT OUTER JOIN
6.4.4 OUTER JOIN
6.4.5 RIGHT OUTER JOIN
6.4.6 FULL OUTER JOIN
6.4.7 LEFT SEMI-JOIN
6.4.8 笛卡爾積JOIN
6.4.9 map-side JOIN
6.5 ORDER BY和SORT BY
6.6 含有SORT BY 的DISTRIBUTE BY
6.7 CLUSTER BY
6.8 類型轉換
6.9 抽樣查詢
6.9.1 數據塊抽樣
6.9.2 分桶表的輸入裁剪
6.10 UNION ALL
第7章 HiveQL:視圖
7.1 使用視圖來降低查詢復雜度
7.2 使用視圖來限制基于條件過濾的數據
7.3 動態分區中的視圖和map類型
7.4 視圖零零碎碎相關的事情
第8章 HiveQL:索引
8.1 創建索引
8.2 重建索引
8.3 顯示索引
8.4 刪除索引
8.5 實現一個定制化的索引處理器
第9章 模式設計
9.1 按天劃分的表
9.2 關于分區
9.3 唯一鍵和標準化
9.4 同一份數據多種處理
9.5 對于每個表的分區
9.6 分桶表數據存儲
9.7 為表增加列
9.8 使用列存儲表
9.8.1 重復數據
9.8.2 多列
9.9 (幾乎)總是使用壓縮
第10章 調優
10.1 使用EXPLAIN
10.2 EXPLAIN EXTENDED
10.3 限制調整
10.4 JOIN優化
10.5 本地模式
10.6 并行執行
10.7 嚴格模式
10.8 調整mapper和reducer個數
10.9 JVM重用
10.10 索引
10.11 動態分區調整
10.12 推測執行
10.13 單個MapReduce中多個GROUP BY
10.14 虛擬列
第11章 其他文件格式和壓縮方法
11.1 確定安裝編解碼器
11.2 選擇一種壓縮編/解碼器
11.3 開啟中間壓縮
11.4 最終輸出結果壓縮
11.5 sequence file存儲格式
11.6 使用壓縮實踐
11.7 存檔分區
11.8 壓縮:包扎
第12章 開發
12.1 修改Log4J屬性
12.2 連接Java調試器到Hive
12.3 從源碼編譯Hive
12.3.1 執行Hive測試用例
12.3.2 執行hook
12.4 配置Hive和Eclipse
12.5 Maven工程中使用Hive
12.6 Hive中使用hive_test進行單元測試
12.7 新增的插件開發工具箱(PDK)
第13章 函數
13.1 發現和描述函數
13.2 調用函數
13.3 標準函數
13.4 聚合函數
13.5 表生成函數
13.6 一個通過日期計算其星座的UDF
13.7 UDF與GenericUDF
13.8 不變函數
13.9 用戶自定義聚合函數
13.10 用戶自定義表生成函數
13.10.1 可以產生多行數據的UDTF
13.10.2 可以產生具有多個字段的單行數據的UDTF
13.10.3 可以模擬復雜數據類型的UDTF
13.11 在 UDF中訪問分布式緩存
13.12 以函數的方式使用注解
13.12.1 定數性(deterministic)標注
13.12.2 狀態性(stateful)標注
13.12.3 唯一性
13.13 宏命令
第14章 Streaming
14.1 恒等變換
14.2 改變類型
14.3 投影變換
14.4 操作轉換
14.5 使用分布式內存
14.6 由一行產生多行
14.7 使用streaming進行聚合計算
14.8 CLUSTER BY、DISTRIBUTE BY、SORT BY
14.9 GenericMR Tools for Streaming to Java
14.10 計算cogroup
第15章 自定義Hive文件和記錄格式
15.1 文件和記錄格式
15.2 闡明CREATE TABLE句式
15.3 文件格式
15.3.1 SequenceFile
15.3.2 RCfile
15.3.3 示例自定義輸入格式:DualInputFormat
15.4 記錄格式:SerDe
15.5 CSV和TSV SerDe
15.6 ObjectInspector
15.7 Thing Big Hive Reflection ObjectInspector
15.8 XML UDF
15.9 XPath相關的函數
15.10 JSON SerDe
15.11 Avro Hive SerDe
15.11.1 使用表屬性信息定義Avro Schema
15.11.2 從指定URL中定義Schema
15.11.3 進化的模式
15.12 二進制輸出
第16章 Hive的Thrift服務
16.1 啟動Thrift Server
16.2 配置Groovy使用HiveServer
16.3 連接到HiveServer
16.4 獲取集群狀態信息
16.5 結果集模式
16.6 獲取結果
16.7 獲取執行計劃
16.8 元數據存儲方法
16.9 管理HiveServer
16.9.1 生產環境使用HiveServer
16.9.2 清理
16.10 Hive ThriftMetastore
16.10.1 ThriftMetastore 配置
16.10.2 客戶端配置
第17章 存儲處理程序和NoSQL
17.1 Storage Handler Background
17.2 HiveStorageHandler
17.3 HBase
17.4 Cassandra
17.4.1 靜態列映射(Static Column Mapping)
17.4.2 為動態列轉置列映射
17.4.3 Cassandra SerDe Properties
17.5 DynamoDB
第18章 安全
18.1 和Hadoop安全功能相結合
18.2 使用Hive進行驗證
18.3 Hive中的權限管理
18.3.1 用戶、組和角色
18.3.2 Grant 和 Revoke權限
18.4 分區級別的權限
18.5 自動授權
第19章 鎖
19.1 Hive結合Zookeeper支持鎖功能
19.2 顯式鎖和獨占鎖
第20章 Hive和Oozie整合
20.1 Oozie提供的多種動作(Action)
20.2 一個只包含兩個查詢過程的工作流示例
20.3 Oozie 網頁控制臺
20.4 工作流中的變量
20.5 獲取輸出
20.6 獲取輸出到變量
第21章 Hive和亞馬遜網絡服務系統(AWS)
21.1 為什么要彈性MapReduce
21.2 實例
21.3 開始前的注意事項
21.4 管理自有EMR Hive集群
21.5 EMR Hive上的Thrift Server服務
21.6 EMR上的實例組
21.7 配置EMR集群
21.7.1 部署hive-site.xml文件
21.7.2 部署.hiverc腳本
21.7.3 建立一個內存密集型配置
21.8 EMR上的持久層和元數據存儲
21.9 EMR集群上的HDFS和S3
21.10 在S3上部署資源、配置和輔助程序腳本
21.11 S3上的日志
21.12 現買現賣
21.13 安全組
21.14 EMR和EC2以及Apache Hive的比較
21.15 包裝
第22章 HCatalog
22.1 介紹
22.2 MapReduce
22.2.1 讀數據
22.2.2 寫數據
22.3 命令行
22.4 安全模型
22.5 架構
第23章 案例研究
23.1 m6d.com(Media6Degrees)
23.1.1 M 6D的數據科學,使用Hive和R
23.1.2 M6D UDF偽隨機
23.1.3 M6D如何管理多MapReduce集群間的Hive數據訪問
23.2 Outbrain
23.2.1 站內線上身份識別
23.2.2 計算復雜度
23.2.3 會話化
23.3 NASA噴氣推進實驗室
23.3.1 區域氣候模型評價系統
23.3.2 我們的經驗:為什么使用Hive
23.3.3 解決這些問題我們所面臨的挑戰
23.4 Photobucket
23.4.1 Photobucket 公司的大數據應用情況
23.4.2 Hive所使用的硬件資源信息
23.4.3 Hive提供了什么
23.4.4 Hive支持的用戶有哪些
23.5 SimpleReach
23.6 Experiences and Needs from the Customer Trenches
23.6.1 介紹
23.6.2 Customer Trenches的用例
- PC官方版
- 安卓官方手機版
- IOS官方手機版