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

深度学习在搜索和推荐领域的应用   /* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/                                                        author: 张俊林                             深度学习在搜索和推荐领域的应用                          (想更系统地学习深度学习知识?请... 阅读详情

/*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/    

                                        张俊林
                      timestamp:2006年11月26日

设计要素

nutch包含以下几个部分:

  1. 辅助类
  • Log:记载运行信息;

  • Time:记载时间信息;

  1. 协议类
  • 目的:各种进程之间的通信协议

    1. Client和M/R系统通信协议:完成客户端和M/R系统的通信;
    2. Job和Task系统通信协议:由于一个任务要分布完成,所以需要任务和子任务之间的通信协议;
    3. MapTask和ReduceTask通信协议:由于MAP和REDUCE是一个任务的顺序执行过程,所以需要两者之间的通信协议来对两个步骤进行协调,主要是文件输入输出协调;
    4. 进程通信协议:子进程和父进程通信协议;
 
  1. 任务管理

      3.1任务定义与管理(JOB):运行,状态管理,JOB和GOOGLE的MASTER是一个概念么?好像不一样;JOB应当等价于MapReduceSpecification类,那么nutch的master在哪里呢?

      3.2map管理;(运行,状态管理)

      3.3Reduce管理;(运行,状态管理)

      3.4map和Reduce协调管理;

      3.5.任务文件切割以及记录读写等管理;(文件由记录组成,切割时候注意边界);输入输出文件读写等管理;  

    关系定义:

      1. 一个M/R系统同时并行处理若干个JOB,每个JOB需要记载其运行状态等;
      2. 每个JOB对应一个大型输入文件,通过文件切割,建立若干个TASK分布在不同机器上处理切割过的文件片段,达到并行处理的目的;
      3. 每个TASK可以分为顺序执行的两部分:MAP/REDUCE,MAP阶段分布在M个机器执行,负责把输入文件的《KEY,VALUE>转换为《key1,value1>形式,不负责数据整理,只负责数据形式转换;REDUCE阶段分布在K个机器执行,负责对MAP阶段的输出结果进行排序和统计等整理,形成《key1,list(value1)>输出形式;
 
 

Nutch和GOOGLE的区别与联系:

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

其中的不变点,也就是框架本身提供的功能:

    a.系统运行流程:首先将输入文件切割,然后分布到不同机器执行map运算,运算结果通知master,master通知reducer去累计结果输出;这个基本上是固定的;

    b.系统通信协议:master通过周期性的ping workers来判断是否该进程还有效;map运算结果要传送给master; master通知reducer输入数据所在位置;reducer通过RPC调用来获得输入数据等;

    c.容错处理:自动发现硬件错误并提供补偿措施,主要的补偿措施是如果发现某个任务失效,则将任务调配到另外一台机器重新计算;

    d.master记载控制信息并承担控制工作:比如记录任务分配信息;每个子任务(map/reduce)状态信息;轮询子任务获得状态信息;负责通信工作(类似于设计模式中的“中介者”模式);发现错误的话进行调整工作(放置到一台好的机器重新运行); 

  1. GOOGLE的方案有一些优化工作,比如计数器的实现,backup(就是往往最后完成的几个子任务拖整个任务的后腿,GOOGLE的策略是:当发现一个任务接近完成时候,启动几个后备子任务,哪个先完成算哪个,可以有效提高速度),partition函数;master的 checkpoint为了恢复master的工作等;这些工作nutch还没有实现;
  2. GOOGLE方案的一些类:

    Counter:累计计数器;

    MapReduceSpecification:参数设定等;方法见论文;

    MapReduceInput:输入文件参数设定以及mapper绑定;

    MapReduceOutput:输出文件参数设定以及reducer 类绑定;

    Mapper:抽象类,用户继承进行自定义;Emit()函数

    Reducer: 抽象类,用户继承进行自定义;Emit()函数

    MapReduceResult:存放结果的类; 

    MapReduce(MapReduceSpecification, MapReduceResult)方法,是启动整个MAPREDUCE的控制流程函数;

 
搜索引擎索引之如何建立索引 本文节选自《这就是搜索引擎:核心技术详解》第三章 3.4建立索引       正如前述章节所述,索引结构如果建立好了,可以增加搜索的速度,那么给定一个文档集合,索引是如何建立起来的呢?建立索引的方式有很多种,本节叙述比较实用的三种建立索引的方法。   3.4.1两遍文档遍历法(2-Pass In-Memory Inversion)         顾名思义,此种方法需要对文档 阅读详情

相关推荐

搜索引擎设计实用教程(1)-以百度为例

搜索引擎设计实用教程-以百度为例                           之一:查询处理以及分词技术                                   中科院软件所 张俊林                                                  2005年11月   随着搜索经济的崛起,人们开始越加关注全球各大搜索引擎的性能、技术和日流量。作

张俊林的博客 1万+

Nutch研究系列1——安装(收藏)

原著未明,仅做收藏,谅解最近着手开始研究Nutch,以前在Linux上曾经对Nutch鼓捣过一段时间,但当时纯粹是出于一种好奇和玩乐的心态,并没有对其进行过深入的探讨和研究。随着自己的论文方向锁死在搜索引擎爬虫,在此之前又一直关注于搜索算法理论和数学模型等的学习上,现在是到了静下心来在实现技术上花点功夫的时候了。其实一开始,我的目标曾经是Larbin(详细介绍请Google),但是最终转向了N

clong1112的专栏 784

搜索引擎链接算法之:HITS算法解析

本文节选自《这就是搜索引擎:核心技术详解》第六章       HITS算法也是链接分析中非常基础且重要的算法,目前已被Teoma搜索引擎(www.teoma.com)作为链接分析算法在实际中使用。 6.4.1 Hub页面与Authority页面        Hub页面和Authority页面是HITS算法最基本的两个定义。所谓“Authority”页面,是指与某个领域或者某个

张俊林的博客 1万+

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

设计要素 nutch包含以下几个部分: 辅助类 Log:记载运行信息; Time:记载时间信息; 协议类 目的:各种进程之间的通信协议 Client和M/R系统通信协议:完成客户端和M/R系统的通信; Job和Task系统通信协议:由于一个任务要分布完成,所以需要任务和子任务之间的通信协议; MapTask和ReduceTask通信协议:由于MAP和REDUCE是一个任务的顺序执行过程,所以需...

fuliang 139

搜索引擎索引之索引基础

本文节选自《这就是搜索引擎:核心技术详解》第三章        本节通过引入简单实例,介绍与搜索引擎索引有关的一些基础概念,了解这些基础概念对于后续深入了解索引的工作机制非常重要。   3.1.1单词—文档矩阵        单词-文档矩阵是表达两者之间所具有的一种包含关系的概念模型,图3-1展示了其含义。图3-1的每列代表一个文档,每行代表一个单词,打对勾的位置代表包含关系。

张俊林的博客 1万+

搜索引擎反作弊之内容作弊

本文节选自《这就是搜索引擎:核心技术详解》第八章      网页反作弊是目前所有商业搜索引擎需要解决的重要难点,出于商业利益驱使,很多网站站长会针对搜索引擎排名进行分析,并采取一些手段来提高网站排名,这种行为本身无可厚非,很多优化行为是符合搜索引擎排序规则的,但是也存在一些恶意的优化行为,通过特殊手段将网页的搜索排名提高到与其网页质量不相称的位置,这样会严重影响搜索引擎用户的搜索体验

张俊林的博客 1万+

Google小组研发模式分析

/*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/                                                           Google小组研发模式分析                                 author:张俊林                                  timestamp

张俊林的博客 1万+

社交搜索Graph Search技术解析

  Facebook是目前世界上最著名的社交网站,月活跃用户已超过10亿,每日登陆网站的用户超过6亿。如果从数据抽象的角度来看,Facebook的社交图不仅包括好友之间的关系,还包括人和实体以及实体之间的关系,每个用户,每个页面,每张图片,每个应用,每个地点以及每个评论都可以作为独立实体,用户喜欢某个页面则建立了用户和页面之间的关系,用户在某个地点签到则建立了用户和地点之间的关系……如果将每个实体...

张俊林的博客 1万+

搜索引擎重复网页发现技术分析

/*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/  搜索引擎重复网页发现技术分析 中科院软件所  张俊林TIMESTAMP:2006年6月1日 一.  介绍统计结果表明,近似镜像网页数占总网页数的比例高达全部页面的29%,而完全相同的页面大约占全部页面的22%。这些重复网页有的是没有一点改动的拷贝,有的在内容上稍作修改,比如同一文章的不

张俊林的博客 1万+

使用深度RNN模型构建语义搜索引擎

本文探讨了几种使用RNN来做语义搜索的可能网络结构。

张俊林的博客 1万+

HipHop算法:利用微博互动关系挖掘社交圈

/* 版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/                  CopyMiddle: 张俊林                                      TimeStamp:2012年3 月           在微博环境下,如何自动挖掘某个微博用户的社交圈子或者兴趣圈子是个很基础且重要的问题。如果能够对于

张俊林的博客 1万+

搜索引擎反作弊之:整体技术思路

本文节选自《这就是搜索引擎:核心技术详解》第八章      如上所述,目前搜索引擎作弊手段五花八门,层出不穷,作为应对方的搜索引擎,也相应调整技术思路,不断有针对性地提出反作弊的技术方案,所以如果整理反作弊技术方案,会发现技术方法很多,理清思路不易。      尽管如此,如果对大多数反作弊技术深入分析,会发现在整体技术思路上还是有规律可循。从基本的思路角度,可以将反作弊手段大致划分为以下三种:

张俊林的博客 1万+

大话SALSA算法

本文节选自《这就是搜索引擎:核心技术详解》第六章         SALSA算法的初衷希望能够结合PageRank和HITS算法两者的主要特点,既可以利用HITS算法与查询相关的特点,也可以采纳PageRank的“随机游走模型”,这是SALSA算法提出的背景。由此可见,SALSA算法融合了PageRank和HITS算法的基本思想,从实际效果来说,很多实验数据表明,SALSA的搜索效果也都

张俊林的博客 8781

百度新闻后台逻辑流程分析

   /*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/                百度新闻后台逻辑流程分析             CopyMiddle:张俊林            TimeStamp:2008年1月9日     今天分析了一下百度新闻,琢磨了一下其后台运行机制,出乎意料的是,我发现其运行机制比我想象的要简单,我原先没仔细

张俊林的博客 1万+

OpenCV函数用法之calibrateCamera

参考链接:opencv中标定函数calibrateCamera_ychl87的专栏-优快云博客 世界坐标系的三维点投影到成像坐标系中的二维点的投影公式如下: 其中(X,Y,Z)为世界坐标系中的三维点; (u,v)为成像面坐标系中的二维点; A为相机的内参数矩阵:(cx,cy)为主光轴点,一般为图像的中心;fx和fy为焦距; [R|t]为相机的外参数矩阵:R为旋转矩阵,t为位移矩阵; 上述公式的简单推理过程如下 考虑到镜头畸变 其中,k1,k2,k3,k4,k5和k6为径向畸变,p1和.

tiger&sheep的博客 3万+

Surface Pro 4/5/6/7保姆级黑苹果安装:从Windows分区到OC引导配置全流程(含EFI文件替换避坑)

本文详细介绍了在Surface Pro 4/5/6/7上安装黑苹果的全流程,包括Windows分区、OC引导配置和EFI文件替换等关键步骤。通过实战经验分享,帮助用户避开常见陷阱,实现Windows与macOS双系统完美共存,特别适合对黑苹果安装感兴趣的Surface Pro用户。

weixin_30300225的博客 1358

百度国学搜索探密

/*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/百度国学搜索探密中科院软件所 张俊林(http://blog.youkuaiyun.com/malefactor)   2006年1月11日    年底写论文作实验搞得头昏脑胀,中午放松一下上网看看新闻,原来百度推出了国学搜索,平常也比较喜欢看诗词歌赋方面的东西,就上百度试了试,结果搜索结果让我感觉哪里好像不对劲,所以就稍微花点时间看看

张俊林的博客 8654

STM32通过ESP8266连接机智云APP(第二讲,烧录固件并测试)

今天与大家分享STM32通过ESP8266连接机智云APP,并完成数据的上传下发第二讲。带大家一起烧录机智云固件到ESP8266并且将其通过机智云串口助手与APP进行测试。

qq_63267523的博客 1425
上一篇: 自然语言处理领域的两种创新观念
下一篇: 百度的索引真的比雅虎多么?
张俊林博客
张俊林博客 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄22年 6033粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值