Nutch-1.2+Hadoop-0.20.2集群的分布式爬取

合集下载

Nutch相关框架视频教程

Nutch相关框架视频教程

Nutch相关框架视频教程第一讲1、通过nutch,诞生了hadoop、tika、gora。

2、nutch通过ivy来进行依赖管理(1.2之后)。

3、nutch是使用svn进行源代码管理的。

4、lucene、nutch、hadoop,在搜索界相当有名。

5、ant构建之后,生成runtime文件夹,该文件夹下面有deploy和local文件夹,分别代表了nutch的两种运行方式。

6、nutch和hadoop是通过什么连接起来的?通过nutch脚本。

通过hadoop命令把apache-nutch-1.6.job提交给hadoop的JobTracker。

7、nutch入门重点在于分析nutch脚本文件。

第二讲1、git来作为分布式版本控制工具,github作为server。

提供免费的私有库。

2、nutch的提高在于研读nutch-default.xml文件中的每一个配置项的实际含义(需要结合源代码理解)。

3、定制开发nutch的入门方法是研读build.xml文件。

4、命令:apt-get install subversionsvn co https:///repos/asf/nutch/tags/release-1.6/cd release-1.6apt-get install antantcd runtime/localmkdir urlsvi urls/url.txt 并输入nohup bin/nutch crawl urls -dir data -depth 3 -threads 100 &vi release-1.6/conf/nutch-site.xml 增加配置cd ../../release-1.6antcd runtime/localnohup bin/nutch crawl urls -dir data -depth 3 -threads 100 & 删除报错的文件夹nohup bin/nutch crawl urls -dir data -depth 1 -threads 100 &第三讲1、nutch的存储文件夹data下面各个文件夹和文件里面的内容究竟是什么?2、命令:crawldbbin/nutch | grep readbin/nutch readdb data/crawldb -statsbin/nutchreaddb data/crawldb -dump data/crawldb/crawldb_dumpbin/nutch readdb data/crawldb -url/bin/nutch readdb data/crawldb -topN 10 data/crawldb/crawldb_topNbin/nutchreaddbdata/crawldb -topN 10data/crawldb/crawldb_topN_m 1 segmentscrawl_generate:bin/nutch readseg -dump data/segments/20130325042858 data/segments/20130325042858_dump -nocontent -nofetch -noparse -noparsedata –noparsetextcrawl_fetch:bin/nutch readseg -dump data/segments/20130325042858 data/segments/20130325042858_dump -nocontent -nogenerate -noparse -noparsedata –noparsetextcontent:bin/nutch readseg -dump data/segments/20130325042858 data/segments/20130325042858_dump -nofetch -nogenerate -noparse -noparsedata –noparsetextcrawl_parse:bin/nutch readseg -dump data/segments/20130325042858 data/segments/20130325042858_dump -nofetch -nogenerate -nocontent –noparsedata –noparsetextparse_data:bin/nutch readseg -dump data/segments/20130325042858 data/segments/20130325042858_dump -nofetch -nogenerate -nocontent -noparse –noparsetextparse_text:bin/nutch readseg -dump data/segments/20130325042858 data/segments/20130325042858_dump -nofetch -nogenerate -nocontent -noparse -noparsedata全部:bin/nutch readseg -dump data/segments/20130325042858 data/segments/20130325042858_dumpsegmentsbin/nutch readseg -list -dir data/segmentsbin/nutch readseg -list data/segments/20130325043023bin/nutch readseg -get data/segments/20130325042858 / linkdbbin/nutch readlinkdb data/linkdb -url /bin/nutch readlinkdb data/linkdb -dump data/linkdb_dump第四讲1、深入分析nutch的抓取周期injectgenerate -> fetch -> parse ->updatedb2、3大merge和3大read命令阐释bin/nutch | grep mergebin/nutch | grep readbin/nutch mergesegsdata/segments_all -dir data/segments 3、反转链接bin/nutch invertlinks data/linkdb -dir data/segments4、解析页面bin/nutch parsechecker 第五讲1、域统计bin/nutch domainstats data2/crawldb/currenthost hostbin/nutch domainstats data2/crawldb/current domain domainbin/nutch domainstats data2/crawldb/current suffix suffixbin/nutch domainstats data2/crawldb/current tld tld2、webgraphbin/nutch webgraph -segmentDir data2/segments -webgraphdb data2/webgraphdb有相同inlinks的URL,只输出topn条bin/nutch nodedumper-inlinks -output inlinks-topn 1-webgraphdb data2/webgraphdb有相同outlinks的URL,只输出topn条bin/nutch nodedumper -outlinks -output outlinks-topn 1-webgraphdb data2/webgraphdb有相同scores的URL,只输出topn条(初始分值全为0)bin/nutch nodedumper -scores -output scores-topn 1-webgraphdb data2/webgraphdb计算URL分值bin/nutch linkrank-webgraphdb data2/webgraphdb再次查看分值bin/nutch nodedumper -scores -output scores–topn 1-webgraphdb data2/webgraphdb对结果进行分组,取最大值或是连加和(topn参数不参与)bin/nutch nodedumper -group domain sum -inlinks -output inlinks_group_sum -webgraphdb data2/webgraphdbbin/nutch nodedumper -group domain max -inlinks -output inlinks_group_max -webgraphdb data2/webgraphdb对url进行分组,分组方式可选择为host或是domain,对同一组的url执行topn限制,对执行了topn限制的url集合执行max或是sum操作,max和sum 所针对的排序值是3种方式之一inlinks、outlinks以及scores。

Nutch搜索引擎(第1期)_Nutch简介及安装

Nutch搜索引擎(第1期)_Nutch简介及安装

细细品味Nutch——Nutch搜索引擎(第1期)精华集锦csAxp虾皮工作室/xia520pi/2014年3月18日Nutch搜索引擎(第1期)——Nutch简介及安装1、Nutch简介Nutch是一个由Java实现的,开放源代码(open-source)的web搜索引擎。

主要用于收集网页数据,然后对其进行分析,建立索引,以提供相应的接口来对其网页数据进行查询的一套工具。

其底层使用了Hadoop来做分布式计算与存储,索引使用了Solr分布式索引框架来做,Solr是一个开源的全文索引框架,从Nutch 1.3开始,其集成了这个索引架构。

Nutch目前最新的版本为version1.4。

1.1 Nutch的目标Nutch致力于让每个人能很容易,同时花费很少就可以配置世界一流的Web搜索引擎。

为了完成这一宏伟的目标,Nutch必须能够做到:●每个月取几十亿网页●为这些网页维护一个索引●对索引文件进行每秒上千次的搜索●提供高质量的搜索结果●以最小的成本运作1.2 Nutch的优点●透明度Nutch是开放源代码的,因此任何人都可以查看他的排序算法是如何工作的。

商业的搜索引擎排序算法都是保密的,我们无法知道为什么搜索出来的排序结果是如何算出来的。

更进一步,一些搜索引擎允许竞价排名,比如百度,这样的索引结果并不是和站点内容相关的。

因此Nutch对学术搜索和政府类站点的搜索来说,是个好选择。

因为一个公平的排序结果是非常重要的。

●扩展性你是不是不喜欢其他的搜索引擎展现结果的方式呢?那就用 Nutch 写你自己的搜索引擎吧。

Nutch 是非常灵活的,他可以被很好的客户订制并集成到你的应用程序中。

使用Nutch 的插件机制,Nutch 可以作为一个搜索不同信息载体的搜索平台。

当然,最简单的就是集成Nutch到你的站点,为你的用户提供搜索服务。

●对搜索引擎的理解我们并没有google的源代码,因此学习搜索引擎Nutch是个不错的选择。

java爬虫框架有哪些,各有什么特点

java爬虫框架有哪些,各有什么特点

java爬虫框架有哪些,各有什么特点目前主流的Java爬虫框架主要有Nutch、Crawler4j、WebMagic、scrapy、WebCollector等,各有各的特点,大家可以根据自己的需求选择使用,下面为大家详细介绍常见的java爬虫框架有哪些?各有什么特点?常见的java爬虫框架有哪些1、NutchNutch是一个基于Lucene,类似Google的完整网络搜索引擎解决方案,基于Hadoop的分布式处理模型保证了系统的性能,类似Eclipse 的插件机制保证了系统的可客户化,而且很容易集成到自己的应用之中。

总体上Nutch可以分为2个部分:抓取部分和搜索部分。

抓取程序抓取页面并把抓取回来的数据做成反向索引,搜索程序则对反向索引搜索回答用户的请求。

抓取程序和搜索程序的接口是索引,两者都使用索引中的字段。

抓取程序和搜索程序可以分别位于不同的机器上。

下面详细介绍一下抓取部分。

Nutch抓取部分:抓取程序是被Nutch的抓取工具驱动的。

这是一组工具,用来建立和维护几个不同的数据结构:web database,a set of segments,and the index。

下面逐个解释这三个不同的数据结构:1、The web database,或者WebDB。

这是一个特殊存储数据结构,用来映像被抓取网站数据的结构和属性的集合。

WebDB 用来存储从抓取开始(包括重新抓取)的所有网站结构数据和属性。

WebDB 只是被抓取程序使用,搜索程序并不使用它。

WebDB 存储2种实体:页面和链接。

页面表示网络上的一个网页,这个网页的Url作为标示被索引,同时建立一个对网页内容的MD5 哈希签名。

跟网页相关的其它内容也被存储,包括:页面中的链接数量(外链接),页面抓取信息(在页面被重复抓取的情况下),还有表示页面级别的分数score 。

链接表示从一个网页的链接到其它网页的链接。

因此WebDB 可以说是一个网络图,节点是页面,链接是边。

hadoop 原理

hadoop  原理

hadoop 原理Hadoop是一个开源的分布式计算框架,基于Google的MapReduce和分布式文件系统(HDFS)的概念而设计。

它可以处理大规模数据集并将其分布式存储在集群中的多个计算节点上。

Hadoop的核心原理包括:1. 分布式存储:Hadoop将大规模的数据集分散存储在集群中的多个计算节点上。

这些数据被分割为多个块,并复制到多个节点上以提供容错性。

这种分布式存储方式以Hadoop分布式文件系统(HDFS)实现,允许在存储节点上进行数据读写操作。

2. 分布式计算:Hadoop利用MapReduce模型进行分布式计算。

MapReduce模型将计算任务分为两个关键步骤:Map和Reduce。

Map阶段将输入数据集映射为键值对,并为每个键值对生成一个中间结果。

Reduce阶段将相同键的中间结果聚合为最终结果。

这种分布式计算模型允许在不同计算节点上并行处理数据块,并将结果合并。

3. 容错性:Hadoop实现了容错机制,使得在集群中的节点发生故障时能够自动恢复和重新分配任务。

当一个节点失败时,Hadoop会将该节点上的任务重新分配给其他可用节点,以确保计算过程的连续性和可靠性。

4. 数据局部性优化:Hadoop提供了数据局部性优化机制,通过将计算任务调度到存储有数据块的节点上来减少数据传输开销。

这样可以最大限度地利用集群内部的带宽和计算资源,提高计算效率。

5. 扩展性:Hadoop的分布式架构具有良好的可扩展性,允许根据需求增加或减少集群中的计算节点。

这种可扩展性使得Hadoop能够处理大规模数据集,并且可以处理节点故障或新节点的加入。

综上所述,Hadoop通过分布式存储和计算、容错性、数据局部性优化和可扩展性等主要原理,实现了对大规模数据集的高效处理和分析。

利用Hadoop实现分布式数据处理的步骤与方法

利用Hadoop实现分布式数据处理的步骤与方法

利用Hadoop实现分布式数据处理的步骤与方法随着数据量的急剧增长和计算任务的复杂化,传统的数据处理方法已经无法满足当今大数据时代的需求。

分布式数据处理技术由此应运而生,它能够将庞大的数据集分解为多个小块,然后在多个计算节点上并行处理,提高数据处理的效率和可靠性。

Hadoop作为目前最流行的分布式数据处理框架之一,具备高可靠性、高扩展性以及良好的容错性,并且能够在廉价的硬件上运行。

下面将介绍使用Hadoop实现分布式数据处理的步骤与方法。

1. 数据准备在开始之前,首先需要准备需要处理的数据集。

这些数据可以是结构化数据、半结构化数据或非结构化数据。

在准备数据时,需要考虑数据的格式、大小以及数据的来源。

可以从本地文件系统、HDFS、数据库或云存储等不同的数据源中获取数据。

确保数据的完整性和正确性非常重要。

2. Hadoop集群搭建接下来,需要搭建一个Hadoop集群来支持分布式数据处理。

Hadoop集群由一个主节点(Master)和多个从节点(Slaves)组成。

主节点负责任务调度、资源管理和数据分发,而从节点负责实际的数据处理任务。

搭建Hadoop集群的过程包括设置主节点和从节点的配置文件、创建HDFS文件系统以及配置各个节点的网络设置等。

可以采用Apache Hadoop的标准发行版或者使用商业发行版(如Cloudera或Hortonworks)来搭建Hadoop集群。

3. 数据分析与计算一旦完成Hadoop集群的搭建,就可以开始进行数据处理了。

Hadoop通过MapReduce模型来实现数据的并行处理。

Map阶段将输入数据分割为若干个小的数据块,并将每个数据块交给不同的计算节点进行处理。

Reduce阶段将Map阶段输出的结果进行合并和汇总。

为了实现数据的分析与计算,需要编写Map和Reduce函数。

Map函数负责将输入数据转换成键值对(Key-Value Pair),而Reduce函数负责对Map函数输出的键值对进行操作。

Nutch 的配置文件

Nutch 的配置文件

Nutch 的配置Nutch的配置文件主要有三类:1.Hadoop的配置文件,Hadoop-default.xml和Hadoop-site.xml。

2.Nutch的配置文件,Nutch-default.xml和Nutch-site.xml。

3.Nutch的插件的配置文件,这些插件的配置文件在加载插件的时候由插件自行加载,如filter的配置文件。

配置文件的加载顺序决定了配置文件的优先级,先加载的配置文件优先级低,后加载的配置文件优先级高,优先级低的配置会被优先级高的配置覆盖。

因此,了解Nutch配置文件加载的顺序对学习使用Nutch是非常必要的。

下面我们通过对Nutch源代码的分析来看看Nutch加载配置文件的过程。

Nutch1.0使用入门(一)介绍了Nutch主要命令--crawl的使用,下面我们就从crawl的main类(org.apache.nutch.crawl.Crawl)的main方法开始分析:Crawl类main方法中加载配置文件的源码如下:Configuration conf = NutchConfiguration.create();conf.addResource("crawl-tool.xml");JobConf job = new NutchJob(conf);上面代码中,生成了一个NutchConfiguration类的对象,NutchConfiguration 是Nutch管理自己配置文件的类,Configuration是Hadoop管理自己配置文件的类。

下面我们进入NutchConfiguration类的create()方法。

/** Create a {@link Configuration} for Nutch. */public static Configuration create() {Configuration conf = new Configuration();addNutchResources(conf);return conf;}create()方法中,先生成了一个Configuration类的对象。

基于Hadoop的分布式爬虫及其实现

基于Hadoop的分布式爬虫及其实现引言随着互联网的快速发展和信息的爆炸式增长,大数据时代已经来临。

海量的数据涌入网络,并形成了一个巨大的信息资源库。

如何有效地从这个海洋中提取有价值的信息,成为了当今互联网领域面临的重要挑战之一。

为了应对这一挑战,分布式爬虫技术应运而生。

本文将介绍基于Hadoop的分布式爬虫的实现过程及其优势。

一、分布式爬虫的背景与意义1.1 现有的爬虫技术传统的爬虫技术主要是基于单机环境下的串行爬虫,即一个爬虫程序在一个机器上运行,通过遍历链接、下载网页并解析的方式进行信息抓取。

然而,在处理大规模的数据量时,单机环境面临着许多挑战,如性能瓶颈、系统崩溃等。

1.2 分布式爬虫的优势与应用分布式爬虫依赖于分布式计算框架,如Hadoop,将爬取任务进行拆分,通过多个爬虫节点并行执行,大大提高了爬取效率。

同时,分布式爬虫还能够充分利用多个计算节点的存储资源,提高数据的采集速度和处理能力。

因此,分布式爬虫在大规模数据挖掘、搜索引擎优化等领域具有广泛的应用前景。

二、基于Hadoop的分布式爬虫的实现步骤2.1 爬虫任务的拆解与调度在分布式爬虫中,首先需要将爬取任务进行拆分,分配给多个爬虫节点。

如何进行任务的拆解与调度是整个分布式爬虫实现的重要环节。

Hadoop的MapReduce框架提供了良好的任务调度机制,可以将爬取任务拆解成独立的Map任务,再通过Reduce任务进行合并和处理。

2.2 爬虫节点的配置与管理在分布式爬虫中,每个爬虫节点都需要配置相应的设备和环境。

常见的配置包括网络代理、数据存储路径、爬取深度等。

此外,还需要对爬虫节点进行管理和监控,确保节点的正常工作和性能优化。

2.3 数据的采集与清洗数据的采集是分布式爬虫的核心步骤之一。

在分布式爬虫中,不同的爬虫节点负责采集不同的数据片段,并将采集结果通过消息队列等方式传递给中心节点。

中心节点进行数据的合并和清洗,去除重复数据和无效信息,得到最终的爬取结果。

基于Hadoop的Nutch分布式网络爬虫的研究9.2

基于Hadoop的Nutch分布式主题主题网络爬虫的研究施磊磊,施化吉,朱玉婷(江苏大学计算机科学与通信工程学院,江苏镇江212013)摘要:针对Nutch分布式主题爬虫的爬取效率和爬取的准确度问题,本文提出了改进的主题判断和预测模型来提高下载网页的主题相关度和网页的质量,同时引入改进的PageRank 算法来计算链接主题网页的优先级,并搭建Hadoop分布式集群环境,以MapReduce分布式计算模型以达到高效率的分布式爬取,然后利用HBase、Zookeeper和Memcached来达到高效率的分布式存储,最后通过实验验证了Nutch分布式主题爬虫的高效性、准确性、扩展性和可靠性。

关键词:主题爬虫;Hadoop集群; Nutch; MapReduceResearch on Nutch distributed web crawlersubject oriented.SHI Lei-lei , SHI Hua-ji , ZHU Yu-tin(School of Computer Science and Telecommunication Engineering,Jiangsu University,Zhenjiang 212013,China)Abstract:For crawling crawling efficiency and accuracy problems Nutch crawler distributed topic, this paper proposes an improved model to predict and judge topics to improve the quality of downloaded pages and pages of the topic, while the introduction of the improved PageRank algorithm to calculate the link priorities and build Hadoop distributed cluster environment to MapReduce distributed computing model in order to achieve efficient crawling topic pages, preferably through experimental verification of the efficiency of the subject reptiles, scalability and reliability.Keywords:topic crawler;Hadoop cluster;Nutch;MapReduce1 引言Nutch是一个开源的垂直搜索引擎,它使用Java语言开发,具有跨平台应用的优点,Nutch作为主题网络爬虫和lucene的结合,功能上极其强悍,每个月数以亿计的网页爬取量,网页搜索的高速,开源的功能剖析都是我们选择研究它的关键因素。

Nutch爬虫

Nutch搜索引擎简介Nutch 是一个基于Java 实现的开源搜索引擎,其内部使用了高性能全文索引引擎工具Lucene。

从nutch0.8.0开始,Nutch 完全构建在Hadoop 分布式计算平台之上。

Hadoop 除了是一个分布式文件系统外,还实现了Google 的GFS 和MapReduce 算法。

因此基于Hadoop 的Nutch 搜索引擎可以部署在由成千上万计算机组成的大型集群上。

由于商业搜索引擎允许竞价排名,这样导致索引结果并不完全是和站点内容相关的,而Nutch 搜索结果能够给出一个公平的排序结果,这使得Nutch 在垂直搜索、档案互联网搜索等领域得到了广泛应用。

背景知识Nutch 搜索引擎是一个基于Java 的开放源代码的搜索引擎。

Nutch 搜索引擎处理流程包括抓取流程和搜索流程,如图1 所示。

相应地Nutch 也分为2部分,抓取器和搜索器。

在抓取流程中,抓取器也叫蜘蛛或者机器人,以广度优先搜索(BFS)的方式从企业内部网或者互联网抓取网页。

这个过程涉及到对CrawlDB 和LinkDB 数据库的操作。

然后Nutch 解析器开始解析诸如HTML、XML、RSS、PDF等不同格式的文档。

最后Nutch 索引器针对解析结果建立索引并存储到indexDB 和SegmentsDB 数据库中,以供搜索器搜索使用。

在搜索流程中,搜索应用使用输入关键词调用Nutch 搜索接口(Nutch Query Interface)。

应用可通过网页上的输入框输入相应关键词。

搜索接口解析搜索请求为Lucene 全文检索引擎可以识别的格式。

Nutch 索引器将会调用Lucene 引擎来响应请求在indexDB 上展开搜索。

最后搜索接口收集从索引器返回的URL、标题、锚和从SegmentsDB 返回的内容。

所有上述内容将被提供给排序算法进行排序。

排序完成后,搜索接口将返回命中的搜索结果。

由于构建在Hadoop 分布式文件系统之上,Nutch 对CrawlDB, LinkDB, SegmentsDB 和IndexDB 数据库的操作都是通过调用M/R(map/reduce) 函数完成的。

nutch+hadoop集群总结磊磊版

1.下载Nutch-1.6-src.tar.gz /apache/nutch/1.6/将Nutch-1.6-src.tar.gz复制到usr/目录下sudo cp /home/franklin/Documents/apache-nutch-1.6-src.tar.gz /usr/并解压sudo tar -zxf apache-nutch-1.6-src.tar.gz改变apache-nutch-1.6的权限sudo chown hadoop:hadoop apache-nutch-1.62.使用ant对nutch进行编译ant的安装:下载ant-1.9.0 /bindownload.cgi将apache-ant-1.9.0-bin.tar.gz复制到usr下sudo cp /home/franklin/Documents/apache-ant-1.9.0-bin.tar.gz /usr/ 解压之sudo tar -zxf apache-ant-1.9.0-bin.tar.gz配置ant的环境变量sudo gedit /etc/profile加入如下内容export ANT_HOME=/usr/apache-ant-1.9.0在PATH后添加:$ANT_HOME/bin验证ant是否配置成功ant -version出现如下提示即配置成功使用ant对nutch进行编译进入apache-nutch-1.6.0目录下,运行ant命令,就会根据build.xml对nutch进行编译(需要等一段时间,因为要通过网络下载)编译成功总共花了15分钟编译完后会在apache-nutch-1.6.0目录下看到一个runtime目录进入该目录会发现一个local目录和一个deploy目录,一个是本地模式,一个是分布式模式。

很重要的是每次修改配置文件都需要重新ant编译一下3.本地模式下运行nutch的爬虫进行爬取进入runtime/local/conf下配置nutch-site.xmlsudo gedit nutch-site.xml在configuration中加入如下内容:<property><name></name><value>My Nutch Spider</value></property>创建爬虫爬取的Url新建urls目录sudo mkdir urls在urls目录下新建seed.txtsudo touch seed.txt改变seed.txt的读写权限chmod 777 seed.txt写入爬取Urlsudo echo / > seed.txt设置爬取的规则进入apache-nutch-1.6.0/runtime/local/conf目录下sudo gedit regex-urlfilter.txt将这两行内容# accept anything else+.替换为 +^http://([a-z0-9]*\.)*/运行ant重新编译一下开始爬取进入apache-nutch-1.6.0/runtime/local 运行bin/nutch crawl /data/urls/seed.txt -dir crawl -depth 3 -topN 5爬取的过程中出现错误:这是由于上一次运行爬取命令生成了一个不完整的segments/20130434113019造成的,到相应目录下将该文件夹删除即可爬取完毕:在输出结果的文件夹中可以看见:crawldb/ linkdb/ segments/4.分布式模式下运行nutch爬虫进行爬取启动hadoop的所有节点bin/start-all.sh进入apache-nutch-1.6.0/conf下配置nutch-site.xmlsudo gedit nutch-site.xml在configuration中加入如下内容:<property><name></name><value>My Nutch Spider</value></property>将爬取的url复制到hadoop分布式文件系统中设置爬取规则:进入apache-nutch-1.6.0/conf目录下sudo gedit regex-urlfilter.txt将这两行内容# accept anything else+.替换为 +^http://([a-z0-9]*\.)*/运行ant重新编译一下开始爬取进入apache-nutch-1.6.0/runtime/deploy 运行bin/nutch crawl /data/urls/seed.txt -dir crawl -depth 3 -topN 5可以看到爬取任务被提交给hadoop的mapping和reducing通过50030端口可以看到jobtracker运行的状态运行完毕:爬取完毕后可以通过50070查看hadoop的分布式文件系统点击Browse the filesystem:可以看到分布式文件系统下的文件进入该目录下可以看到爬取输出的内容至此所有配置测试完毕。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Hadoop-0.20.2+ Nutch-1.2+Tomcat-7——分布式搜索配置随着nutch的发展,各模块逐渐独立性增强,我从2.1到1.6装过来,也没有实现整个完整的功能。

今天装一下nutch1.2,这应该是最后一个有war文件的稳定版本。

1. 准备工作下载apache-nutch-1.2-bin.zip、apache-tomcat-7.0.39.tar.gz、hadoop-0.20.2.tar.gz。

将下载的hadoop-0.20.2.tar.gz解压到/opt文件夹下。

将下载的apache-nutch-1.2-bin.zip解压到/opt文件夹下。

将下载的apache-tomcat-7.0.39.tar.gz解压到/opt文件夹下。

2. 配置hadoop-0.20.2(1) 编辑conf/hadoop-env.sh,最后添加export JAVA_HOME=/opt/java-7-sunexport HADOOP_HEAPSIZE=1000exportHADOOP_CLASSPATH=.:/opt/nutch-1.2/lib:/opt/hadoop-0.20.2export NUTCH_HOME=/opt/nutch-1.2/lib(2) 编辑/etc/profile,添加#Hadoopexport HADOOP_HOME=/opt/hadoop-0.20.2export PATH=$PATH:$HADOOP_HOME/bin(3) 编辑conf/core-site.xml<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-- Put site-specific property overrides in this file. --><configuration><property><name></name><value>hdfs://m2:9000</value></property><property><name>hadoop.tmp.dir</name><value>/opt/hadoop-0.20.2/tempdata/var</value></property><property><name>hadoop.native.lib</name><value>true</value><description>Should native hadoop libraries, if present, beused.</description></property></configuration>(4) 编辑conf/hdfs-site.xml<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-- Put site-specific property overrides in this file. --><configuration><property><name>.dir</name><value>/opt/hadoop-0.20.2/tempdata/name1,/opt/hadoop-1.0.4/tempdata /name2</value> #hadoop的name目录路径<description> </description><property><name>dfs.data.dir</name><value>/opt/hadoop-0.20.2/tempdata/data1,/opt/hadoop-1.0.4/tempdata/ data2</value><description> </description></property><property><name>dfs.replication</name><value>2</value></property></configuration>(5) 编辑conf/mapred-site.xml<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>mapred.job.tracker</name><value>m2:9001</value></property><property><name>mapred.local.dir</name><value>/opt/hadoop-0.20.2/tempdata/var</value></property><name>pression.type</name><value>BLOCK</value><description>If the job outputs are to compressed as SequenceFiles,how shouldthey be compressed? Should be one of NONE, RECORD or BLOCK.</description></property><property><name>press</name><value>true</value><description>Should the job outputs be compressed?</description></property><property><name>press.map.output</name><value>true</value></property>(6) 将conf/master和conf/slave文件写好。

启动hadoop(hadoop命令在hadoop目录的bin目录下)a) hadoop namenode –formatb) start-all.sh(7) 在WEB下查看Hadoop的工作情况a) http://localhost:50070b) http://localhost:500303. 配置nutch-1.2(1) 建立nutch1.2/urls/url.txt,里面加入////(2) 编辑conf/crawl-urlfilter.txt# accept hosts in #+^http://([a-z0-9]*\.)*/+^http://([a-z0-9]*\.)*/+^http://([a-z0-9]*\.)*/+^http://([a-z0-9]*\.)*/+^http://([a-z0-9]*\.)*/(3) 配置conf/nutch-site.xml<configuration><property><name></name><value>aniu-search</value><description>aniu.160</description></property><property><name>http.agent.description</name><value></value><description></description></property><property><name>http.agent.url</name><value></value><description></description></property><property><name>http.agent.email</name><value></value><description></description></property><property><name>searcher.dir</name><value> search-dir</value>//此文件位置为hdfs://m2:9000/user/root </property></configuration>(4) 将hadoop/conf中的文件覆盖到nutch/conf下。

(5) 建立文件search-dir/search-servers.txt加入内容m2 9999s6 9999s7 99994. 配置tomcat(1) 将nutch-1.2下的nutch-1.2.war复制到/tomcat下的webapps中,在浏览器中http://localhost:8080/nutch-1.2/,则可以看到nutch的搜索界面。

(这一步测试要做,会生成相应的目录)(2) 解决中文乱码的问题,编辑tomcat/conf/server.xml,找到并添加<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"URIEncoding="UTF-8" useBodyEncodingForURI="true"/>(3) 将nutch/conf中的文件覆盖到/opt/apache-tomcat-7.0.39/webapps/nutch-1.2/WEB-INF/classes下。

相关文档
最新文档