《Pig編程指南》不僅為初學(xué)者講解ApachePig的基礎(chǔ)知識,同時也向有一定使用經(jīng)驗的高級用戶介紹更加綜合全面的Pig重要特性,如PigLatin腳本語言、控制臺shell交互命令以及用于對Pig進行拓展的用戶自定義函數(shù)(UDF)等。當(dāng)讀者有大數(shù)據(jù)處理需求時,《Pig編程指南》提供了如何更高效地使用Pig來完成需求的方法。
《Pig編程指南》適合各個層次的Pig用戶及開發(fā)人員閱讀使用。
第1章 初識Pig
1.1 Pig是什么?
1.1.1 Pig是基于Hadoop的
1.1.2 Pig Latin,一種并行數(shù)據(jù)流語言
1.1.3 Pig的用途
1.1.4 Pig的設(shè)計思想
1.2 Pig發(fā)展簡史
第2章 安裝和運行Pig
2.1 下載和安裝Pig
2.1.1 從Apache下載Pig軟件包
2.1.2 從Cloudera下載Pig
2.1.3 使用Maven下載Pig
2.1.4 下載Pig源碼
2.2 運行Pig
2.2.1 本地單機運行Pig
2.2.2 在Hadoop集群上運行Pig
2.2.3 在云服務(wù)上運行Pig
2.2.4 命令行使用以及配置選項介紹
2.2.5 返回碼
第3章 命令行交互工具Grunt
3.1 在Grunt中輸入Pig Latin腳本
3.2 在Grunt中使用HDFS命令
3.3 在Grunt中控制Pig
第4章 Pig數(shù)據(jù)模型
4.1 數(shù)據(jù)類型
4.1.1 基本類型
4.1.2 復(fù)雜類型
4.1.3 NULL值
4.2 模式
第5章 Pig Latin介紹
5.1 基礎(chǔ)知識
5.1.1 大小寫敏感
5.1.2 注釋
5.2 輸入和輸出
5.2.1 加載
5.2.2 存儲
5.2.3 輸出
5.3 關(guān)系操作
5.3.1 foreach
5.3.2 Filter
5.3.3 Group
5.3.4 Order by
5.3.5 Distinct
5.3.6 Join
5.3.7 Limit
5.3.8 Sample
5.3.9 Parallel
5.4 用戶自定義函數(shù)UDF
5.4.1 注冊UDF
5.4.2 define命令和UDF
5.4.3 調(diào)用靜態(tài)Java函數(shù)
第6章 Pig Latin高級應(yīng)用
6.1 高級關(guān)系操作
6.1.1 foreach的高級功能
6.1.2 使用不同的Join實現(xiàn)方法
6.1.3 cogroup
6.1.4 union
6.1.5 cross
6.2 在Pig中集成遺留代碼和MapReduce程序
6.2.1 stream
6.2.2 mapreduce
6.3 非線性數(shù)據(jù)流
6.4 執(zhí)行過程控制
6.4.1 set
6.4.2 設(shè)置分割器
6.5 Pig Latin預(yù)處理器
6.5.1 參數(shù)傳入
6.5.2 宏
6.5.3 包含其他的Pig Latin腳本
第7章 開發(fā)和測試Pig Latin腳本
7.1 開發(fā)工具
7.1.1 語法高亮和語法檢查
7.1.2 describe
7.1.3 explain
7.1.4 illustrate
7.1.5 Pig統(tǒng)計信息
7.1.6 MapReduce任務(wù)運行狀態(tài)信息
7.1.7 調(diào)試技巧
7.2 使用PigUnit測試用戶的腳本
第8章 讓Pig飛起來
8.1 編寫優(yōu)質(zhì)的腳本
8.1.1 盡早地并經(jīng)常地進行過濾
8.1.2 盡早地并經(jīng)常地進行映射
8.1.3 正確并合理使用join
8.1.4 適當(dāng)?shù)那闆r下使用multiquery
8.1.5 選擇正確的數(shù)據(jù)類型
8.1.6 選擇合適的并行值
8.2 編寫優(yōu)質(zhì)的UDF
8.3 調(diào)整Pig和Hadoop
8.4 對計算中間結(jié)果進行壓縮
8.5 數(shù)據(jù)層優(yōu)化
8.6 垃圾數(shù)據(jù)處理
第9章 在Python中嵌入Pig Latin腳本
9.1 編譯
9.2 綁定
9.3 運行
9.4 工具方法
第10章 編寫評估函數(shù)和過濾函數(shù)
10.1 使用Java編寫評估函數(shù)
10.1.1 UDF將在哪里執(zhí)行
10.1.2 求值函數(shù)基本概念
10.1.3 輸入和輸出模式
10.1.4 錯誤處理和處理過程信息報告
10.1.5 構(gòu)造器和將數(shù)據(jù)從前端傳送到后端
10.1.6 重載UDF
10.1.7 運算函數(shù)的內(nèi)存問題
10.2 代數(shù)運算接口
10.3 累加器接口
10.4 使用Python寫UDF
10.5 書寫過濾器函數(shù)
第11章 編寫加載函數(shù)和存儲函數(shù)
11.1 加載函數(shù)
11.1.1 前端執(zhí)行計劃函數(shù)
11.1.2 從前端調(diào)用傳遞信息到后端調(diào)用
11.1.3 后端數(shù)據(jù)讀取
11.1.4 可擴展的加載函數(shù)接口
11.2 存儲函數(shù)
11.2.1 存儲函數(shù)前端執(zhí)行計劃
11.2.2 存儲函數(shù)和UDFContext
11.2.3 寫數(shù)據(jù)
11.2.4 任務(wù)失敗后數(shù)據(jù)的清理
11.2.5 存儲元數(shù)據(jù)信息
第12章 Pig和其他Hadoop社區(qū)的成員
12.1 Pig和Hive
12.2 Cascading
12.3 NoSQL數(shù)據(jù)庫
12.3.1 HBase
12.3.2 Cassandra
12.4 Hadoop中的元數(shù)據(jù)
附錄A 內(nèi)置的用戶自定義函數(shù)和Piggybank
內(nèi)置UDF
內(nèi)置加載函數(shù)和存儲函數(shù)
內(nèi)置求值函數(shù)和過濾函數(shù)
Piggybank
附錄B Hadoop綜述
MapReduce
Map階段
Combiner階段
Shuffle階段
Reduce階段
輸出階段
分布式緩存
故障處理
HDFS
作者介紹
書末說明