MapReduce设计模式
徐钊, 赵重庆 译
出版时间:2014年08月
页数:232
“虽然MapReduce编程模型看似简单,但用来高效地解决实际问题还需要不同的思维方式。本书清晰地传达了只有经过多年实践积累才能获得的相关经验。”
——Tom White
Cloudera公司技术布道师,《Hadoop权威指南》作者
“真希望在我的职业生涯中早一些拥有这本书。解决我在MapReduce开发中遇到的几乎所有问题,都要用到这本书中的设计模式。”
——Lance Byrd
Hadoop MapReduce及分布式
计算技术顾问及导师
到目前为止,基于MapReduce框架的设计模式散见于各种研究论文、博客和书籍中。这本书将各种有价值的MapReduce设计模式汇集在一起,形成一本独特的合集,可以帮读者节省大量的时间和精力,无论读者身处哪个领域,使用哪种编程语言,使用什么开发框架。
书中对每一种模式都会详细解释其使用的上下文、可能存在的陷阱及使用的注意事项,以帮助读者在对大数据问题架构建模时避免常见的设计错误。本书还提供了MapReduce的一个完整综述,解释其起源和实现,并说明设计模式如此重要的原因。书中的所有示例代码都是基于Hadoop平台编写的。
· 概要模式:通过对数据进行汇总和分组得到一个顶层视图。
· 过滤模式:查看数据的子集,如某一个用户产生的记录。
· 数据组织模式:重组数据,使其能适配其他系统,或使MapReduce分析更为容易。
· 连接模式:将不同的数据集一起分析,以发现数据之间有趣的关系。
· 元模式:将多种模式组合起来,用于解决多阶段问题,或在同一个作业中执行多个分析。
· 输入和输出模式:定制使用Hadoop进行数据加载和存储的方式。
- 第1章 设计模式与mapreduce
- 1.1 设计模式
- 1.2 mapreduce简史
- 1.3 mapreduce和hadoop简介
- 1.4 hadoop示例:单词计数
- 1.5 pig和hive
- 第2章 概要模式
- 2.1 数值概要
- 2.1.1 模式描述
- 2.1.2 数值概要示例
- 2.2 倒排索引概要
- 2.2.1 模式描述
- 2.2.2 倒排索引示例
- 2.3 计数器计数
- 2.3.1 模式描述
- 2.3.2 计数器计数示例
- 第3章 过滤模式
- 3.1 过滤
- 3.1.1 模式描述
- 3.1.2 过滤示例
- 3.2 布隆过滤
- 3.2.1 模式描述
- 3.2.2 布隆过滤器示例
- 3.3 top 10
- 3.3.1 模式描述
- 3.3.2 top 10示例
- 3.4 去重
- 3.4.1 模式描述
- 3.4.2 去重示例
- 第4章 数据组织模式
- 4.1 分层结构
- 4.1.1 模式描述
- 4.1.2 分层结构示例
- 4.2 分区
- 4.2.1 模式描述
- 4.2.2 分区示例
- 4.3 分箱
- 4.3.1 模式描述
- 4.3.2 分箱示例
- 4.4 全排序
- 4.4.1 模式描述
- 4.4.2 全排序示例
- 4.5 混排
- 4.5.1 模式描述
- 4.5.2 混排示例
- 第5章 连接模式
- 5.1 连接简介
- 5.2 reduce端连接
- 5.2.1 模式描述
- 5.2.2 reduce端连接示例
- 5.2.3 使用布隆过滤器的reduce端连接 5.3 复制连接
- 5.3.1 模式描述
- 5.3.2 复制连接示例
- 5.4 组合连接
- 5.4.1 模式描述
- 5.4.2 组合连接示例
- 5.5 笛卡儿积
- 5.5.1 模式描述
- 5.5.2 笛卡儿积示例
- 第6章 元模式
- 6.1 作业链
- 6.1.1 关于驱动程序
- 6.1.2 作业链示例
- 6.1.3 关于shell脚本
- 6.1.4 关于jobcontrol
- 6.2 链折叠
- 6.2.1 chainmapper方法和chainreducer方法
- 6.2.2 链折叠示例
- 6.3 作业归并
- 作业归并示例
- 第7章 输入和输出模式
- 7.1 在hadoop中自定义输入和输出
- 7.1.1 inputformat
- 7.1.2 recordreader
- 7.1.3 outputformat
- 7.1.4 recordwriter
- 7.2 生成数据
- 7.2.1 模式描述
- 7.2.2 生成数据示例
- 7.3 外部源输出
- 7.3.1 模式描述
- 7.3.2 外部源输出示例
- 7.4 外部源输入
- 7.4.1 模型描述
- 7.4.2 外部源输入示例
- 7.5 分区裁剪
- 7.5.1 模式描述
- 7.5.2 分区裁剪示例
- 第8章 最后的思考与设计模式的未来
- 8.1 数据的本质趋势
- 8.1.1 图像、音频和视频
- 8.1.2 流式数据
- 8.2 yarn的影响
- 8.3 作为库或者组件的模式
- 8.4 读者可以帮到什么
- 附录 布隆过滤器
书名:MapReduce设计模式
译者:徐钊, 赵重庆 译
国内出版社:人民邮电出版社
出版时间:2014年08月
页数:232
书号:978-7-115-36094-6
原版书书名:MapReduce Design Patterns
原版书出版商:O'Reilly Media
Donald Miner
Donald Miner目前是EMC Greenplum的解决方案架构师,为实现与使用基于Greenplum的大数据系统的用户提供咨询和帮助。在加入Greenplum之前,Miner博士作为承包商为美国政府部署和构建了多个规模巨大且涉及关键任务的Hadoop集群。他还参与了教学,在马里兰大学巴尔的摩分校(UMBC)讲授Hadoop方面的业界前沿相关的课程以及各种人工智能课程。Miner博士在UMBC获得了计算机科学的博士学位,读博士期间他的研究主题为机器学习,博士论文的主题是多智能体系统。
Adam Shook
Adam Shook是ClearEdge IT Solutions公司的软件工程师,从事一些大数据技术工作,如Hadoop、Accumulo、Pig以及ZooKeeper。Shook在马里兰大学巴尔的摩分校(UMBC)获得了计算机科学的学士学位,并得到了一份为游戏工作室构建一个全新的高性能图像引擎的工作。为了寻求新的挑战,他在UMBC就读研究生,主要专注的研究方向是分布式计算的相关技术。他很快找到了一份开发工作,作为美国政府承包商,从事大规模的Hadoop部署。Shook参与了Hadoop和Pig的开发及培训课程的指导。在繁忙工作的间隙他喜欢参与相关项目,玩视频游戏。