《Hive編程指南》是一本Apache Hive的編程指南,旨在介紹如何使用Hive的SQL方法HiveQL來匯總、查詢和分析存儲在Hadoop分布式文件系統(tǒng)上的大數(shù)據(jù)集合。全書通過大量的實例,首先介紹如何在用戶環(huán)境下安裝和配置Hive,并對Hadoop和MapReduce進行詳盡闡述,最終演示Hive如何在Hadoop生態(tài)系統(tǒng)進行工作。
Hive編程指南目錄
第1章 基礎知識
1.1 Hadoop和MapReduce綜述
1.2 Hadoop生態(tài)系統(tǒng)中的Hive
1.2.1 Pig
1.2.2 HBase
1.2.3 Cascading、Crunch及其他
1.3 Java和Hive:詞頻統(tǒng)計算法
1.4 后續(xù)事情
第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環(huán)境
2.5.1 本地模式配置
2.5.2 分布式模式和偽分布式模式配置
2.5.3 使用JDBC連接元數(shù)據(jù)
2.6 Hive命令
2.7 命令行界面
2.7.1 CLI 選項
2.7.2 變量和屬性
2.7.3 Hive中“一次使用”命令
2.7.4 從文件中執(zhí)行Hive查詢
2.7.5 hiverc文件
2.7.6 使用Hive CLI的更多介紹
2.7.7 查看操作命令歷史
2.7.8 執(zhí)行shell命令
2.7.9 在Hive內使用Hadoop的dfs命令
2.7.10 Hive腳本中如何進行注釋
2.7.11 顯示字段名稱
第3章 數(shù)據(jù)類型和文件格式
3.1 基本數(shù)據(jù)類型
3.2 集合數(shù)據(jù)類型
3.3 文本文件數(shù)據(jù)編碼
3.4 讀時模式
第4章 HiveQL:數(shù)據(jù)定義
4.1 Hive中的數(shù)據(jù)庫
4.2 修改數(shù)據(jù)庫
4.3 創(chuàng)建表
4.3.1 管理表
4.3.2 外部表
4.4 分區(qū)表、管理表
4.4.1 外部分區(qū)表
4.4.2 自定義表的存儲格式
4.5 刪除表
4.6 修改表
4.6.1 表重命名
4.6.2 增加、修改和刪除表分區(qū)
4.6.3 修改列信息
4.6.4 增加列
4.6.5 刪除或者替換列
4.6.6 修改表屬性
4.6.7 修改存儲屬性
4.6.8 眾多的修改表語句
第5章 HiveQL:數(shù)據(jù)操作
5.1 向管理表中裝載數(shù)據(jù)
5.2 通過查詢語句向表中插入數(shù)據(jù)
5.3 單個查詢語句中創(chuàng)建表并加載數(shù)據(jù)
5.4 導出數(shù)據(jù)
第6章 HiveQL:查詢
6.1 SELECT…FROM語句
6.1.1 使用正則表達式來指定列
6.1.2 使用列值進行計算
6.1.3 算術運算符
6.1.4 使用函數(shù)
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 關于浮點數(shù)比較
6.2.3 LIKE和RLIKE
6.3 GROUP BY 語句
6.4 JOIN語句
6.4.1 INNER JOIN
6.4.2 JOIN優(yōu)化
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 數(shù)據(jù)塊抽樣
6.9.2 分桶表的輸入裁剪
6.10 UNION ALL
第7章 HiveQL:視圖
7.1 使用視圖來降低查詢復雜度
7.2 使用視圖來限制基于條件過濾的數(shù)據(jù)
7.3 動態(tài)分區(qū)中的視圖和map類型
7.4 視圖零零碎碎相關的事情
第8章 HiveQL:索引
8.1 創(chuàng)建索引
8.2 重建索引
8.3 顯示索引
8.4 刪除索引
8.5 實現(xiàn)一個定制化的索引處理器
第9章 模式設計
9.1 按天劃分的表
9.2 關于分區(qū)
9.3 唯一鍵和標準化
9.4 同一份數(shù)據(jù)多種處理
9.5 對于每個表的分區(qū)
9.6 分桶表數(shù)據(jù)存儲
9.7 為表增加列
9.8 使用列存儲表
9.8.1 重復數(shù)據(jù)
9.8.2 多列
9.9 (幾乎)總是使用壓縮
第10章 調優(yōu)
10.1 使用EXPLAIN
10.2 EXPLAIN EXTENDED
10.3 限制調整
10.4 JOIN優(yōu)化
10.5 本地模式
10.6 并行執(zhí)行
10.7 嚴格模式
10.8 調整mapper和reducer個數(shù)
10.9 JVM重用
10.10 索引
10.11 動態(tài)分區(qū)調整
10.12 推測執(zhí)行
10.13 單個MapReduce中多個GROUP BY
10.14 虛擬列
第11章 其他文件格式和壓縮方法
11.1 確定安裝編解碼器
11.2 選擇一種壓縮編/解碼器
11.3 開啟中間壓縮
11.4 最終輸出結果壓縮
11.5 sequence file存儲格式
11.6 使用壓縮實踐
11.7 存檔分區(qū)
11.8 壓縮:包扎
第12章 開發(fā)
12.1 修改Log4J屬性
12.2 連接Java調試器到Hive
12.3 從源碼編譯Hive
12.3.1 執(zhí)行Hive測試用例
12.3.2 執(zhí)行hook
12.4 配置Hive和Eclipse
12.5 Maven工程中使用Hive
12.6 Hive中使用hive_test進行單元測試
12.7 新增的插件開發(fā)工具箱(PDK)
第13章 函數(shù)
13.1 發(fā)現(xiàn)和描述函數(shù)
13.2 調用函數(shù)
13.3 標準函數(shù)
13.4 聚合函數(shù)
13.5 表生成函數(shù)
13.6 一個通過日期計算其星座的UDF
13.7 UDF與GenericUDF
13.8 不變函數(shù)
13.9 用戶自定義聚合函數(shù)
13.10 用戶自定義表生成函數(shù)
13.10.1 可以產生多行數(shù)據(jù)的UDTF
13.10.2 可以產生具有多個字段的單行數(shù)據(jù)的UDTF
13.10.3 可以模擬復雜數(shù)據(jù)類型的UDTF
13.11 在 UDF中訪問分布式緩存
13.12 以函數(shù)的方式使用注解
13.12.1 定數(shù)性(deterministic)標注
13.12.2 狀態(tài)性(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相關的函數(shù)
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 獲取集群狀態(tài)信息
16.5 結果集模式
16.6 獲取結果
16.7 獲取執(zhí)行計劃
16.8 元數(shù)據(jù)存儲方法
16.9 管理HiveServer
16.9.1 生產環(huán)境使用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 靜態(tài)列映射(Static Column Mapping)
17.4.2 為動態(tài)列轉置列映射
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 分區(qū)級別的權限
18.5 自動授權
第19章 鎖
19.1 Hive結合Zookeeper支持鎖功能
19.2 顯式鎖和獨占鎖
第20章 Hive和Oozie整合
20.1 Oozie提供的多種動作(Action)
20.2 一個只包含兩個查詢過程的工作流示例
20.3 Oozie 網(wǎng)頁控制臺
20.4 工作流中的變量
20.5 獲取輸出
20.6 獲取輸出到變量
第21章 Hive和亞馬遜網(wǎng)絡服務系統(tǒng)(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上的持久層和元數(shù)據(jù)存儲
21.9 EMR集群上的HDFS和S3
21.10 在S3上部署資源、配置和輔助程序腳本
21.11 S3上的日志
21.12 現(xiàn)買現(xiàn)賣
21.13 安全組
21.14 EMR和EC2以及Apache Hive的比較
21.15 包裝
第22章 HCatalog
22.1 介紹
22.2 MapReduce
22.2.1 讀數(shù)據(jù)
22.2.2 寫數(shù)據(jù)
22.3 命令行
22.4 安全模型
22.5 架構
第23章 案例研究
23.1 m6d.com(Media6Degrees)
23.1.1 M 6D的數(shù)據(jù)科學,使用Hive和R
23.1.2 M6D UDF偽隨機
23.1.3 M6D如何管理多MapReduce集群間的Hive數(shù)據(jù)訪問
23.2 Outbrain
23.2.1 站內線上身份識別
23.2.2 計算復雜度
23.2.3 會話化
23.3 NASA噴氣推進實驗室
23.3.1 區(qū)域氣候模型評價系統(tǒng)
23.3.2 我們的經驗:為什么使用Hive
23.3.3 解決這些問題我們所面臨的挑戰(zhàn)
23.4 Photobucket
23.4.1 Photobucket 公司的大數(shù)據(jù)應用情況
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官方手機版