第1章 设计模式与MapReduce 1
1.1 设计模式 2
1.2 MapReduce简史 3
1.3 MapReduce和Hadoop简介 4
1.4 Hadoop示例:单词计数 6
1.5 Pig和Hive 10
第2章 概要模式 12
2.1 数值概要 12
2.1.1 模式描述 12
2.1.2 数值概要示例 16
2.2 倒排索引概要 30
2.2.1 模式描述 30
2.2.2 倒排索引示例 32
2.3 计数器计数 34
2.3.1 模式描述 34
2.3.2 计数器计数示例 36
第3章 过滤模式 39
3.1 过滤 40
3.1.1 模式描述 40
3.1.2 过滤示例 43
3.2 布隆过滤 45
3.2.1 模式描述 45
3.2.2 布隆过滤器示例 48
3.3 Top 10 53
3.3.1 模式描述 53
3.3.2 Top 10示例 58
3.4 去重 60
3.4.1 模式描述 60
3.4.2 去重示例 63
第4章 数据组织模式 65
4.1 分层结构 65
4.1.1 模式描述 65
4.1.2 分层结构示例 69
4.2 分区 76
4.2.1 模式描述 76
4.2.2 分区示例 79
4.3 分箱 81
4.3.1 模式描述 81
4.3.2 分箱示例 83
4.4 全排序 85
4.4.1 模式描述 85
4.4.2 全排序示例 88
4.5 混排 92
4.5.1 模式描述 92
4.5.2 混排示例 93
第5章 连接模式 96
5.1 连接简介 97
5.2 reduce端连接 102
5.2.1 模式描述 102
5.2.2 reduce端连接示例 104
5.2.3 使用布隆过滤器的reduce端连接 110
5.3 复制连接 112
5.3.1 模式描述 112
5.3.2 复制连接示例 114
5.4 组合连接 116
5.4.1 模式描述 116
5.4.2 组合连接示例 119
5.5 笛卡儿积 121
5.5.1 模式描述 121
5.5.2 笛卡儿积示例 124
第6章 元模式 131
6.1 作业链 131
6.1.1 关于驱动程序 132
6.1.2 作业链示例 133
6.1.3 关于shell脚本 142
6.1.4 关于JobControl 145
6.2 链折叠 149
6.2.1 ChainMapper方法和ChainReducer方法 153
6.2.2 链折叠示例 153
6.3 作业归并 158
作业归并示例 160
第7章 输入和输出模式 166
7.1 在Hadoop中自定义输入和输出 166
7.1.1 InputFormat 167
7.1.2 RecordReader 168
7.1.3 OutputFormat 169
7.1.4 RecordWriter 170
7.2 生成数据 170
7.2.1 模式描述 170
7.2.2 生成数据示例 172
7.3 外部源输出 177
7.3.1 模式描述 177
7.3.2 外部源输出示例 179
7.4 外部源输入 183
7.4.1 模型描述 183
7.4.2 外部源输入示例 185
7.5 分区裁剪 190
7.5.1 模式描述 190
7.5.2 分区裁剪示例 192
第8章 最后的思考与设计模式的未来 203
8.1 数据的本质趋势 203
8.1.1 图像、音频和视频 203
8.1.2 流式数据 204
8.2 YARN的影响 204
8.3 作为库或者组件的模式 205
8.4 读者可以帮到什么 205
附录 布隆过滤器 207