第1章 初识Pig 1
1.1 Pig是什么? 1
1.1.1 Pig是基于Hadoop的 1
1.1.2 Pig Latin,一种并行数据流语言 4
1.1.3 Pig的用途 7
1.1.4 Pig的设计思想 8
1.2 Pig发展简史 9
第2章 安装和运行Pig 11
2.1 下载和安装Pig 11
2.1.1 从Apache下载Pig软件包 11
2.1.2 从Cloudera下载Pig 12
2.1.3 使用Maven下载Pig 12
2.1.4 下载Pig源码 13
2.2 运行Pig 13
2.2.1 本地单机运行Pig 13
2.2.2 在Hadoop集群上运行Pig 15
2.2.3 在云服务上运行Pig 17
2.2.4 命令行使用以及配置选项介绍 17
2.2.5 返回码 18
第3章 命令行交互工具Grunt 20
3.1 在Grunt中输入Pig Latin脚本 20
3.2 在Grunt中使用HDFS命令 21
3.3 在Grunt中控制Pig 22
第4章 Pig数据模型 23
4.1 数据类型 23
4.1.1 基本类型 23
4.1.2 复杂类型 24
4.1.3 NULL值 26
4.2 模式 26
第5章 Pig Latin介绍 33
5.1 基础知识 33
5.1.1 大小写敏感 34
5.1.2 注释 34
5.2 输入和输出 34
5.2.1 加载 34
5.2. 2存储 35
5.2.3 输出 36
5.3 关系操作 37
5.3.1 foreach 37
5.3.2 Filter 40
5.3.3 Group 42
5.3.4 Order by 44
5.3.5 Distinct 45
5.3.6 Join 46
5.3.7 Limit 48
5.3.8 Sample 49
5.3.9 Parallel 49
5.4 用户自定义函数UDF 51
5.4.1 注册UDF 52
5.4.2 define命令和UDF 53
5.4.3 调用静态Java函数 54
第6章 Pig Latin高级应用 56
6.1 高级关系操作 56
6.1.1 foreach的高级功能 56
6.1.2 使用不同的Join实现方法 60
6.1.3 cogroup 65
6.1.4 union 65
6.1.5 cross 67
6.2 在Pig中集成遗留代码和MapReduce程序 69
6.2.1 stream 69
6.2.2 mapreduce 71
6.3 非线性数据流 72
6.4 执行过程控制 74
6.4.1 set 75
6.4.2 设置分割器 76
6.5 Pig Latin预处理器 76
6.5.1 参数传入 76
6.5.2 宏 78
6.5.3 包含其他的Pig Latin脚本 79
第7章 开发和测试Pig Latin脚本 81
7.1 开发工具 81
7.1.1 语法高亮和语法检查 81
7.1.2 describe 82
7.1.3 explain 82
7.1.4 illustrate 88
7.1.5 Pig统计信息 89
7.1.6 MapReduce任务运行状态信息 90
7.1.7 调试技巧 93
7.2 使用PigUnit测试用户的脚本 95
第8章 让Pig飞起来 99
8.1 编写优质的脚本 100
8.1.1 尽早地并经常地进行过滤 100
8.1.2 尽早地并经常地进行映射 101
8.1.3 正确并合理使用join 102
8.1.4 适当的情况下使用multiquery 103
8.1.5 选择正确的数据类型 103
8.1.6 选择合适的并行值 103
8.2 编写优质的UDF 104
8.3 调整Pig和Hadoop 104
8.4 对计算中间结果进行压缩 106
8.5 数据层优化 107
8.6 垃圾数据处理 107
第9章 在Python中嵌入Pig Latin脚本 108
9.1 编译 109
9.2 绑定 110
9.3 运行 112
9.4 工具方法 114
第10章 编写评估函数和过滤函数 115
10.1 使用Java编写评估函数 115
10.1.1 UDF将在哪里执行 116
10.1.2 求值函数基本概念 116
10.1.3 输入和输出模式 120
10.1.4 错误处理和处理过程信息报告 123
10.1.5 构造器和将数据从前端传送到后端 124
10.1.6 重载UDF 129
10.1.7 运算函数的内存问题 132
10.2 代数运算接口 132
10.3 累加器接口 136
10.4 使用Python写UDF 137
10.5 书写过滤器函数 140
第11章 编写加载函数和存储函数 141
11.1 加载函数 142
11.1.1 前端执行计划函数 142
11.1.2 从前端调用传递信息到后端调用 144
11.1.3 后端数据读取 144
11.1.4 可扩展的加载函数接口 149
11.2 存储函数 153
11.2.1 存储函数前端执行计划 154
11.2.2 存储函数和UDFContext 155
11.2.3 写数据 155
11.2.4 任务失败后数据的清理 159
11.2.5 存储元数据信息 159
第12章 Pig和其他Hadoop社区的成员 161
12.1 Pig和Hive 161
12.2 Cascading 161
12.3 NoSQL数据库 161
12.3.1 HBase 162
12.3.2 Cassandra 164
12.4 Hadoop中的元数据 165
附录A 内置的用户自定义函数和Piggybank 167
内置UDF 167
内置加载函数和存储函数 167
内置求值函数和过滤函数 168
Piggybank 186
附录B Hadoop综述 187
MapReduce 187
Map阶段 187
Combiner阶段 188
Shuffle阶段 188
Reduce阶段 189
输出阶段 189
分布式缓存 189
故障处理 189
HDFS 190
作者介绍 191
书末说明 191