首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 数据库 第二书店 程序员

zdg/ 


共6个网摘 [ 1 ]   |  访问zdg的个人空间

雅虎架构师谈MapReduce和Hadoop的未来

zdg收录,使用标签:MapReduce, Hadoop, Yahoo, Architecture,时间:2008-3-20 11:37:16 | 相关网摘我也收藏

Hadoop是一个开源的分布式计算平台,它主要由MapReduce的算法执行和一个分布式的文件系统等两部分组成。InfoQ曾经刊登过一篇Jeremy Zawodny写的有关Hadoop速度提升的综述性文章。这次InfoQ的资深Java编辑Scott Delap和Hadoop项目负责人Doug Cutting进行了一次专访。在这次InfoQ的专访中,Cutting论述了Hadoop是如何在Yahoo中被使用的,以及Hadoop发展中遇到的挑战和Hadoop项目未来的发展方向。


InfoQ: 类似Google构架的开源项目Hadoop近获社区关注

zdg收录,使用标签:Hadoop, MapReduce,时间:2007-9-19 18:37:35 | 相关网摘我也收藏

Zawodny去年一直工作于提供数据排序的基准评测,在测试中,每一个节点都对相同总和的输入数量进行排序。 假如有20个节点,每个节点有100条记录,那么就有2000个记录需要排序;当有100个节点时,每个节点有100条记录,那就总共有10000条记 录。下面是最近的评测结果:


数学之美 系列十八 - 矩阵运算和文本处理中的分类问题

zdg收录,使用标签:Math, 矩阵, MapReduce, google, 搜索技术,时间:2007-1-2 13:45:43 | 相关网摘我也收藏

现在剩下的唯一问题,就是如何用计算机进行奇异值分解。这时,线性代数中的许多概念,比如矩阵的特征值等等,以及数值分析的各种算法就统统用上了。在很长时间内,奇异值分解都无法并行处理。(虽然 Google 早就有了MapReduce 等并行计算的工具,但是由于奇异值分解很难拆成不相关子运算,即使在 Google 内部以前也无法利用并行计算的优势来分解矩阵。)最近,Google 中国的张智威博士和几个中国的工程师及实习生已经实现了奇异值分解的并行算法,我认为这是 Google 中国对世界的一个贡献。


MAP/REDUCE:Google和Nutch实现异同及其他

zdg收录,使用标签:google, Nutch, MapReduce,时间:2006-12-16 15:22:58 | 相关网摘我也收藏

Nutch和GOOGLE的区别与联系:

1) 大体上Nntch是按照GOOGLE的论文做的,但是有几点区别,总体感觉Nntch在完整性和复杂性方面还不如GOOGLE的系统;
2) GOOGLE更像一个软件框架,客户在这个框架下写自己的程序,而nutch更像一个固定功能的系统,当然之所以nutch的mapper和reducer类基本只起到一个接口的作用,也是为了体现框架的意图,由用户继承并定义新类来使用框架完成自己的任务,但是nutch的 jobclient和jobsubmission使得它更像一个静态的功能而非框架;
3) GOOGLE的实现版本框架,其中的变化点在于
用户自定义mapper;
用户自定义reducer;
用户可以对输入文件格式解析进行自定义;
用户通过一个类来设定系统参数并将map/reduce类和输入文件绑定起来;
用户自定义partition类,该类主要由reducer调用,功能是通过HASH(KEY)使得同一个KEY的能够映射到一台机器上,这样方便统计处理;


Map Reduce - the Free Lunch is not over?

zdg收录,使用标签:MapReduce, google, 搜索技术,时间:2006-11-18 0:04:26 | 相关网摘我也收藏

MapReduce中最重要的两个词就是Map(映射)和Reduce(规约)。初看Map/Reduce这两个词,熟悉Function Language的人一定感觉很熟悉。FP把这样的函数称为”higher order function”(”High order function”被成为Function Programming的利器之一哦),也就是说,这些函数是编写来被与其它函数相结合(或者说被其它函数调用的)。如果说硬要比的化,可以把它想象成C里面的CallBack函数,或者STL里面的Functor。比如你要对一个STL的容器进行查找,需要制定每两个元素相比较的Functor(Comparator),这个Comparator在遍历容器的时候就会被调用。

拿前面说过图像处理程序来举例,其实大多数的图像处理操作都是对图像矩阵进行某种运算。这里的运算通常有两种,一种是映射,一种是规约。拿两种效果来说,”老照片”效果通常是强化照片的G/B值,然后对每个象素加一些随机的偏移,这些操作在二维矩阵上的每一个元素都是独立的,是Map操作。而”雕刻”效果需要提取图像边缘,就需要元素之间的运算了,是一种Reduce操作。再举个简单的例子,一个一维矩阵(数组)[0,1,2,3,4]可以映射为[0,2,3,6,8](乘2),也可以映射为[1,2,3,4,5](加1)。它可以规约为0(元素求积)也可以规约为10(元素求和)。

面对复杂问题,古人教导我们要“分而治之”,英文中对应的词是”Divide and Conquer“。Map/Reduce其实就是Divide/Conquer的过程,通过把问题Divide,使这些Divide后的Map运算高度并行,再将Map后的结果Reduce(根据某一个Key),得到最终的结果。

Googler发现这是问题的核心,其它都是共性问题。因此,他们把MapReduce抽象分离出来。这样,Google的程序员可以只关心应用逻辑,关心根据哪些Key把问题进行分解,哪些操作是Map操作,哪些操作是Reduce操作。其它并行计算中的复杂问题诸如分布、工作调度、容错、机器间通信都交给Map/Reduce Framework去做,很大程度上简化了整个编程模型。

MapReduce的另一个特点是,Map和Reduce的输入和输出都是中间临时文件(MapReduce利用Google文件系统来管理和访问这些文件),而不是不同进程间或者不同机器间的其它通信方式。我觉得,这是Google一贯的风格,化繁为简,返璞归真。

接下来就放下其它,研究一下Map/Reduce操作。(其它比如容错、备份任务也有很经典的经验和实现,论文里面都有详述)


MapReduce: Simplified Data Processing on Large Clusters

zdg收录,使用标签:MapReduce, Google, 搜索技术,时间:2006-11-17 23:57:23 | 相关网摘我也收藏

MapReduce is a programming model and an associated implementation for processing and generating large data sets. Users specify a map function that processes a key/value pair to generate a set of intermediate key/value pairs, and a reduce function that merges all intermediate values associated with the same intermediate key. Many real world tasks are expressible in this model, as shown in the pap



共6个网摘 [ 1 ] 

zdg/相关标签



网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
Copyright © 2000-2008, CSDN.NET, All Rights Reserved