zdg/
共6个网摘 [
1 ] |
访问zdg的个人空间
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的能够映射到一台机器上,这样方便统计处理;
http://blog.csdn.net/malefactor/archive/2006/11/26/1415404.aspx
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操作。(其它比如容错、备份任务也有很经典的经验和实现,论文里面都有详述)
http://www.mengyan.org/blog/archives/2006/11/15/138.html
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
http://labs.google.com/papers/mapreduce.html
共6个网摘 [
1 ]