设计要素
nutch包含以下几个部分:
辅助类
Log:记载运行信息;
Time:记载时间信息;
协议类
目的:各种进程之间的通信协议
Client和M/R系统通信协议:完成客户端和M/R系统的通信;
Job和Task系统通信协议:由于一个任务要分布完成,所以需要任务和子任务之间的通信协议;
MapTask和ReduceTask通信协议:由于MAP和REDUCE是一个任务的顺序执行过程,所以需要两者之间的通信协议来对两个步骤进行协调,主要是文件输入输出协调;
进程通信协议:子进程和父进程通信协议;
任务管理
3.1任务定义与管理(JOB):运行,状态管理,JOB和GOOGLE的MASTER是一个概念么?好像不一样;JOB应当等价于MapReduceSpecification类,那么nutch的master在哪里呢?
3.2map管理;(运行,状态管理)
3.3Reduce管理;(运行,状态管理)
3.4map和Reduce协调管理;
3.5.任务文件切割以及记录读写等管理;(文件由记录组成,切割时候注意边界);输入输出文件读写等管理;
关系定义:
一个M/R系统同时并行处理若干个JOB,每个JOB需要记载其运行状态等;
每个JOB对应一个大型输入文件,通过文件切割,建立若干个TASK分布在不同机器上处理切割过的文件片段,达到并行处理的目的;
每个TASK可以分为顺序执行的两部分:MAP/REDUCE,MAP阶段分布在M个机器执行,负责把输入文件的《KEY,VALUE>转换为《key1,value1>形式,不负责数据整理,只负责数据形式转换;REDUCE阶段分布在K个机器执行,负责对MAP阶段的输出结果进行排序和统计等整理,形成《key1,list(value1)>输出形式;
Nutch和GOOGLE的区别与联系:
大体上Nntch是按照GOOGLE的论文做的,但是有几点区别,总体感觉Nntch在完整性和复杂性方面还不如GOOGLE的系统;
GOOGLE更像一个软件框架,客户在这个框架下写自己的程序,而nutch更像一个固定功能的系统,当然之所以nutch的mapper和reducer类基本只起到一个接口的作用,也是为了体现框架的意图,由用户继承并定义新类来使用框架完成自己的任务,但是nutch的 jobclient和jobsubmission使得它更像一个静态的功能而非框架;
GOOGLE的实现版本框架,其中的变化点在于
用户自定义mapper;
用户自定义reducer;
用户可以对输入文件格式解析进行自定义;
用户通过一个类来设定系统参数并将map/reduce类和输入文件绑定起来;
用户自定义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)状态信息;轮询子任务获得状态信息;负责通信工作(类似于设计模式中的“中介者”模式);发现错误的话进行调整工作(放置到一台好的机器重新运行);
GOOGLE的方案有一些优化工作,比如计数器的实现,backup(就是往往最后完成的几个子任务拖整个任务的后腿,GOOGLE的策略是:当发现一个任务接近完成时候,启动几个后备子任务,哪个先完成算哪个,可以有效提高速度),partition函数;master的 checkpoint为了恢复master的工作等;这些工作nutch还没有实现;
GOOGLE方案的一些类:
Counter:累计计数器;
MapReduceSpecification:参数设定等;方法见论文;
MapReduceInput:输入文件参数设定以及mapper绑定;
MapReduceOutput:输出文件参数设定以及reducer 类绑定;
Mapper:抽象类,用户继承进行自定义;Emit()函数
Reducer: 抽象类,用户继承进行自定义;Emit()函数
MapReduceResult:存放结果的类;
MapReduce(MapReduceSpecification, MapReduceResult)方法,是启动整个MAPREDUCE的控制流程函数;
分享到:
相关推荐
1. 将Nutch.war包考到Tomcat的webapps下。 部署后,进入站台目录下的WEB-INF\classes,找到“nutch-site.xml”文件,打开,向其中根节点添加: <property> <name>searcher.dir</name> <value>E:\nutch-0.9\crawl...
nutch入门经典翻译1:Introduction to Nutch, Part 1: Crawling
nutch不用安装,是个应用程序,下载后为nutch-1.6.tar.gz,双击桌面上的cygwin快捷方式;执行以下命令: $ cd D:/Downloads/Soft $ tar zxvf nutch-1.0.tar.gz 在e盘下面出现nutch-0.9文件夹说明解压成功了.然后环境...
包含与 lucene 和 solr 一起使用的搜索算法 bbox 查询: 完全删除 solr 索引: curl -H "Content-Type: text/xml" --data-binary ' : ' curl -d ' ' curl -d '' export CLASSPATH="<lucene>/lucene/replicator/...
nutch社区目前缺少教程和文档,而且教程对应版本号较为落后。nutcher致力于为nutch提供一个较新的中文教程和文档,供开发者学习。 github地址: https://github.com/CrawlScript/nutcher 目录: ...
apache-nutch-2.2.1(Eclipse直接运行版)今天刚做的,发现有很多坑,分享给大家实验,JDK1.7 Win10。我分享的两个压缩卷一起下载才可以用,资源限制太小了 002地址:...
Apache Nutch 自述文件 有关 Nutch 的最新信息,请访问我们的网站: 和我们的维基,在: 要开始使用 Nutch,请阅读教程: 贡献 要提供补丁,请按照以下说明操作(请注意,安装不是必需的,但建议安装)。 0. ...
资源名称:Nutch相关框架视频教程资源目录:【】Nutch相关框架视频教程1_杨尚川【】Nutch相关框架视频教程2_杨尚川【】Nutch相关框架视频教程3_杨尚川【】Nutch相关框架视频教程4_杨尚川【】Nutch相关框架视频教程5_...
基于Apache Nutch 1.8和Htmlunit组件,实现对于AJAX加载类型页面的完整页面内容抓取解析。 According to the implementation of Apache Nutch 1.8, we can't get dynamic ...
Nutch2.3.1 环境搭建 Nutch2.3.1 环境搭建 Nutch2.3.1 环境搭建 亲测可用,我自己安装和搭建过程的记录文档
Qiwur Nutch基于Apache Nutch 2.3.0,具有出色的功能: 众包抓取支持Ajax支持人形机器人更好的系统计数器更好的网络用户界面该项目与其他两个相关项目一起工作:卫星: : qiwur-nutch-ui: : Project Satellite是...
Nutch的创始人是Doug Cutting,他同时也是Lucene、Hadoop和Avro开源项目的创始人。 Nutch诞生于2002年8月,是Apache旗下的一...Nutch的很多代码是用Map Reduce和HDFS写的,哪里还能找到比Nutch更好的Hadoop应用案例呢?
使用 Apache Nutch 抓取 40 个(体育和教育)域的网页。 倒排索引是使用 Apache Hadoop 从爬取的数据中构建的。 爬取的数据和倒排索引保存在nosql MongoDB数据库中,响应速度更快,扩展性更强。 Web 应用程序使用...
Apache Nutch自述文件 有关Nutch的最新信息,请访问我们的网站: 和我们的Wiki,位于: 要开始使用Nutch,请阅读教程: 贡献 要提供补丁,请遵循以下说明(请注意,并非严格要求安装 ,但建议您安装)。 0. ...
基于Nutch技术的主题搜索引擎实现_李东海.caj
nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据
学习nutch 源码解读 轻松入门 搭建自己的nutch搜索引擎
Nutch是一个优秀的开放源代码的Web搜索引擎。虽然Nutch的页面排序方法比较合理,但是很多情况下仍然不能 满足需要。分析开源搜索引擎Nutch代码,研究了Nutch的页面排序方法。在Nutch原有的结构基础上提出了3种修改...
Linux下Nutch分布式配置和使用.pdf Lucene+Nutch源码.rar Lucene学习笔记.doc nutch_tutorial.pdf nutch二次开发总结.txt nutch入门.pdf nutch入门学习.pdf Nutch全文搜索学习笔记.doc Yahoo的Hadoop教程.doc [硕士...
Nutch 和 Solr (参见 ) 版本 1. 索尔 Solr 用于 8.5.1(或 7.3.1)版本wget http://archive.apache.org/dist/lucene/solr/8.5.1/solr-8.5.1.tgz 2. 阿帕奇纳奇 使用 Apache Nutch 版本 1.17(或 1.16)。 wget ...