|
本帖最后由 tangzk 于 2013-6-14 20:21 编辑
mapreduce区别于以往的编程模式,因此利用mapreduce来实现各类算法显然也是值得书写的内容。推荐两本关于mapreduce算法设计的书籍,给有兴趣在mapreduce算法实现上深入的同学。当然,也要知道,如同我们常见的普通算法一样,这些也将慢慢都变成熟悉mapreduce编程所必备的基础知识。
【1】Data-Intensive Text Processing with MapReduce
http://book.douban.com/subject/4879588/
该书出得比较早,算是早期研究Mapreduce算法所必看的书籍,其主要针对文本处理、NLP以及机器学习算法,其中在第三章里提到的内容要重点看,后面还深入的介绍了文本处理、图算法以及EM算法等。内容包括:
- Introduction
- MapReduce Basics: 介绍mapreduce编程模式的基本内容,注意:其不涉及具体实现细节;
- MapReduce Algorithm Design: 基本的mapreduce设计技巧,如统计、排序、连接等;
- Inverted Indexing for Text Retrieval: 针对信息检索系统的反向索引,还包括索引压缩等内容;
- Graph Algorithms: 图算法,包括图的表达,BFS,PageRank算法等;
- EM Algorithm for Text Processing: 介绍文本处理领域用到的EM算法
- Close Remarks: 一些结论
【2】MapReduce Design Patterns
http://www.amazon.com/MapReduce- ... ithms/dp/1449327176
该书是2012出的书,所介绍的内容均来自于常见的应用需求,包括统计、过滤、连接等。内容包括:
- Summarization patterns: get a top-level view by summarizing and grouping data
- Filtering patterns: view data subsets such as records generated from one user
- Data organization patterns: reorganize data to work with other systems, or to make MapReduce analysis easier
- Join patterns: analyze different datasets together to discover interesting relationships
- Metapatterns: piece together several patterns to solve multi-stage problems, or to perform several analytics in the same job
- Input and output patterns: customize the way you use Hadoop to load or store data
感觉来说,重点推荐第一本的内容,更偏重于算法的实现,与数据挖掘联系紧密,而且作者所提到的算法均已在github上有公开,包含在开源的Cloud9项目中:https://github.com/lintool/Cloud9。而第二本看起来更重应用,看评论说深度还是少了,但与Hadoop结合更紧密一点。另外吐糟一句,第二本书的名字起得太霸道了,这些最多只是算法设计而已,离Design Patterns还有一段距离的。两本书在网上均可以直接下载,我就不贴资源了。 |
|