《Pig編程指南》不僅為初學(xué)者講解ApachePig的基礎(chǔ)知識(shí),同時(shí)也向有一定使用經(jīng)驗(yàn)的高級(jí)用戶介紹更加綜合全面的Pig重要特性,如PigLatin腳本語言、控制臺(tái)shell交互命令以及用于對(duì)Pig進(jìn)行拓展的用戶自定義函數(shù)(UDF)等。當(dāng)讀者有大數(shù)據(jù)處理需求時(shí),《Pig編程指南》提供了如何更高效地使用Pig來完成需求的方法。
《Pig編程指南》適合各個(gè)層次的Pig用戶及開發(fā)人員閱讀使用。
第1章 初識(shí)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è)計(jì)思想
1.2 Pig發(fā)展簡(jiǎn)史
第2章 安裝和運(yùn)行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 運(yùn)行Pig
2.2.1 本地單機(jī)運(yùn)行Pig
2.2.2 在Hadoop集群上運(yùn)行Pig
2.2.3 在云服務(wù)上運(yùn)行Pig
2.2.4 命令行使用以及配置選項(xiàng)介紹
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ǔ)知識(shí)
5.1.1 大小寫敏感
5.1.2 注釋
5.2 輸入和輸出
5.2.1 加載
5.2.2 存儲(chǔ)
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 注冊(cè)UDF
5.4.2 define命令和UDF
5.4.3 調(diào)用靜態(tài)Java函數(shù)
第6章 Pig Latin高級(jí)應(yīng)用
6.1 高級(jí)關(guān)系操作
6.1.1 foreach的高級(jí)功能
6.1.2 使用不同的Join實(shí)現(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ā)和測(cè)試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)計(jì)信息
7.1.6 MapReduce任務(wù)運(yùn)行狀態(tài)信息
7.1.7 調(diào)試技巧
7.2 使用PigUnit測(cè)試用戶的腳本
第8章 讓Pig飛起來
8.1 編寫優(yōu)質(zhì)的腳本
8.1.1 盡早地并經(jīng)常地進(jìn)行過濾
8.1.2 盡早地并經(jīng)常地進(jìn)行映射
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 對(duì)計(jì)算中間結(jié)果進(jìn)行壓縮
8.5 數(shù)據(jù)層優(yōu)化
8.6 垃圾數(shù)據(jù)處理
第9章 在Python中嵌入Pig Latin腳本
9.1 編譯
9.2 綁定
9.3 運(yùn)行
9.4 工具方法
第10章 編寫評(píng)估函數(shù)和過濾函數(shù)
10.1 使用Java編寫評(píng)估函數(shù)
10.1.1 UDF將在哪里執(zhí)行
10.1.2 求值函數(shù)基本概念
10.1.3 輸入和輸出模式
10.1.4 錯(cuò)誤處理和處理過程信息報(bào)告
10.1.5 構(gòu)造器和將數(shù)據(jù)從前端傳送到后端
10.1.6 重載UDF
10.1.7 運(yùn)算函數(shù)的內(nèi)存問題
10.2 代數(shù)運(yùn)算接口
10.3 累加器接口
10.4 使用Python寫UDF
10.5 書寫過濾器函數(shù)
第11章 編寫加載函數(shù)和存儲(chǔ)函數(shù)
11.1 加載函數(shù)
11.1.1 前端執(zhí)行計(jì)劃函數(shù)
11.1.2 從前端調(diào)用傳遞信息到后端調(diào)用
11.1.3 后端數(shù)據(jù)讀取
11.1.4 可擴(kuò)展的加載函數(shù)接口
11.2 存儲(chǔ)函數(shù)
11.2.1 存儲(chǔ)函數(shù)前端執(zhí)行計(jì)劃
11.2.2 存儲(chǔ)函數(shù)和UDFContext
11.2.3 寫數(shù)據(jù)
11.2.4 任務(wù)失敗后數(shù)據(jù)的清理
11.2.5 存儲(chǔ)元數(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ù)和存儲(chǔ)函數(shù)
內(nèi)置求值函數(shù)和過濾函數(shù)
Piggybank
附錄B Hadoop綜述
MapReduce
Map階段
Combiner階段
Shuffle階段
Reduce階段
輸出階段
分布式緩存
故障處理
HDFS
作者介紹
書末說明