- 浏览: 2182583 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (682)
- 软件思想 (7)
- Lucene(修真篇) (17)
- Lucene(仙界篇) (20)
- Lucene(神界篇) (11)
- Solr (48)
- Hadoop (77)
- Spark (38)
- Hbase (26)
- Hive (19)
- Pig (25)
- ELK (64)
- Zookeeper (12)
- JAVA (119)
- Linux (59)
- 多线程 (8)
- Nutch (5)
- JAVA EE (21)
- Oracle (7)
- Python (32)
- Xml (5)
- Gson (1)
- Cygwin (1)
- JavaScript (4)
- MySQL (9)
- Lucene/Solr(转) (5)
- 缓存 (2)
- Github/Git (1)
- 开源爬虫 (1)
- Hadoop运维 (7)
- shell命令 (9)
- 生活感悟 (42)
- shell编程 (23)
- Scala (11)
- MongoDB (3)
- docker (2)
- Nodejs (3)
- Neo4j (5)
- storm (3)
- opencv (1)
最新评论
-
qindongliang1922:
粟谷_sugu 写道不太理解“分词字段存储docvalue是没 ...
浅谈Lucene中的DocValues -
粟谷_sugu:
不太理解“分词字段存储docvalue是没有意义的”,这句话, ...
浅谈Lucene中的DocValues -
yin_bp:
高性能elasticsearch ORM开发库使用文档http ...
为什么说Elasticsearch搜索是近实时的? -
hackWang:
请问博主,有用solr做电商的搜索项目?
Solr中Group和Facet的用法 -
章司nana:
遇到的问题同楼上 为什么会返回null
Lucene4.3开发之第八步之渡劫初期(八)
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。当然在百度百科上这种方法在Nutch1.2之后,已经不再适合这样描述Nutch了,因为在1.2版本之后,Nutch专注的只是爬取数据,而全文检索的部分彻底的交给Lucene和Solr,ES来做了,当然因为他们都是近亲关系,所以Nutch抓取完后的数据,非常easy的就能生成全文索引。
下面散仙,进入正题,Nutch目前最新的版本是2.2.1,其中2.x的版本支持gora提供多种存储方式,1.x版本最新的是1.8只支持HDFS存储,散仙在这里用的还是Nutch1.8,那么,散仙为什么选择1.x系列呢? 这其实和自己的Hadoop环境有关系,2.x的Nutch用的Hadoop2.x的版本,当然如果你不嫌麻烦,你完全可以改改jar的配置,使Nutch2.x跑在Hadoop1.x的集群上。使用1.x的Nutch就可以很轻松的跑在1.x的hadoop里。下面是散仙,本次测试Nutch+Hadoop+Solr集群的配置情况:
下面开始,正式的启程
1, 首先确保你的ant环境配置成功,一切的进行,最好在Linux下进行,windows上出问题的几率比较大,下载完的nutch源码,进入nutch的根目录下,执行ant,等待编译完成。编译完后,会有runtime目录,里面有Nutch启动的命令,local模式和deploy分布式集群模式
2, 配置nutch-site.xml加入如下内容:
3, 在hadoop集群上创建urls文件夹和mydir文件夹
,前者用于存储种子文件地址,后者存放爬取完后的数据。
hadoop fs -mkdir urls --创建文件夹
hadoop fs -put HDFS路径 本地路径 --上传种子文件到HDFS上。
hadoop fs -ls / ---查看路径下内容
4,配置好hadoop集群,以及它的环境变量HADOOP_HOME这个很重要,Nutch运行时候,会根据Hadoop的环境变量,提交作业。
配置完成之后,可以使用which hadoop命令,检测是否配置正确:
5, 配置solr服务,需要将Nutch的conf下的schema.xml文件,拷贝到solr的里面,覆盖掉solr原来的schema.xml文件,并加入IK分词,内容如下:
6, 配置好后,进行nutch的/root/apache-nutch-1.8/runtime/deploy/bin目录下
执行如下命令:
./crawl urls mydir http://192.168.211.36:9001/solr/ 2
启动集群抓取任务。
抓取中的MapReduce截图如下:
抓取完,我们就可以去solr中查看抓取的内容了,截图如下:
至此,一个简单的抓取,搜索系统就搞定了,非常轻松,使用都是Lucene系列开源的工程。
总结:配置过程中遇到几个比较典型的错误,记录如下:
在执行抓取的shell命令时,发现
使用 bin/crawl urls mydir http://192.168.211.36:9001/solr/ 2 命令有时候会出现,一些HDFS上的目录不能正确访问的问题,所以推荐使用下面的这个命令:
./crawl urls mydir http://192.168.211.36:9001/solr/ 2
下面散仙,进入正题,Nutch目前最新的版本是2.2.1,其中2.x的版本支持gora提供多种存储方式,1.x版本最新的是1.8只支持HDFS存储,散仙在这里用的还是Nutch1.8,那么,散仙为什么选择1.x系列呢? 这其实和自己的Hadoop环境有关系,2.x的Nutch用的Hadoop2.x的版本,当然如果你不嫌麻烦,你完全可以改改jar的配置,使Nutch2.x跑在Hadoop1.x的集群上。使用1.x的Nutch就可以很轻松的跑在1.x的hadoop里。下面是散仙,本次测试Nutch+Hadoop+Solr集群的配置情况:
序号 | 名称 | 职责描述 |
1 | Nutch1.8 | 主要负责爬取数据,支持分布式 |
2 | Hadoop1.2.0 | 使用MapReduce进行并行爬取,使用HDFS存储数据,Nutch的任务提交在Hadoop集群上,支持分布式 |
3 | Solr4.3.1 | 主要负责检索,对爬完后的数据进行搜索,查询,海量数据支持分布式 |
4 | IK4.3 | 主要负责,对网页内容与标题进行分词,便于全文检索 |
5 | Centos6.5 | Linux系统,在上面运行nutch,hadoop等应用 |
6 | Tomcat7.0 | 应用服务器,给Solr提供容器运行 |
7 | JDK1.7 | 提供JAVA运行环境 |
8 | Ant1.9 | 提供Nutch等源码编译 |
9 | 屌丝软件工程师一名 | 主角 |
下面开始,正式的启程
1, 首先确保你的ant环境配置成功,一切的进行,最好在Linux下进行,windows上出问题的几率比较大,下载完的nutch源码,进入nutch的根目录下,执行ant,等待编译完成。编译完后,会有runtime目录,里面有Nutch启动的命令,local模式和deploy分布式集群模式
2, 配置nutch-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>http.agent.name</name> <value>mynutch</value> </property> <property> <name>http.robots.agents</name> <value>mynutch,*</value> <description>The agent strings we'll look for in robots.txt files, comma-separated, in decreasing order of precedence. You should put the value of http.agent.name as the first agent name, and keep the default * at the end of the list. E.g.: BlurflDev,Blurfl,* </description> </property> <property> <name>plugin.folders</name> <!-- local模式下使用下面的配置 --> <value>./src/plugin</value> <!-- 集群模式下,使用下面的配置 --> <value>plugins</value> <!-- <value>D:\nutch编译好的1.8\Nutch1.8\src\plugin</value> --> <description>Directories where nutch plugins are located. Each element may be a relative or absolute path. If absolute, it is used as is. If relative, it is searched for on the classpath.</description> </property> </configuration>
3, 在hadoop集群上创建urls文件夹和mydir文件夹
,前者用于存储种子文件地址,后者存放爬取完后的数据。
hadoop fs -mkdir urls --创建文件夹
hadoop fs -put HDFS路径 本地路径 --上传种子文件到HDFS上。
hadoop fs -ls / ---查看路径下内容
4,配置好hadoop集群,以及它的环境变量HADOOP_HOME这个很重要,Nutch运行时候,会根据Hadoop的环境变量,提交作业。
export HADOOP_HOME=/root/hadoop1.2 export PATH=$HADOOP_HOME/bin:$PATH ANT_HOME=/root/apache-ant-1.9.2 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL export JAVA_HOME=/root/jdk1.7 export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
配置完成之后,可以使用which hadoop命令,检测是否配置正确:
[root@master bin]# which hadoop /root/hadoop1.2/bin/hadoop [root@master bin]#
5, 配置solr服务,需要将Nutch的conf下的schema.xml文件,拷贝到solr的里面,覆盖掉solr原来的schema.xml文件,并加入IK分词,内容如下:
<?xml version="1.0" encoding="UTF-8" ?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- Description: This document contains Solr 3.1 schema definition to be used with Solr integration currently build into Nutch. See https://issues.apache.org/jira/browse/NUTCH-442 https://issues.apache.org/jira/browse/NUTCH-699 https://issues.apache.org/jira/browse/NUTCH-994 https://issues.apache.org/jira/browse/NUTCH-997 https://issues.apache.org/jira/browse/NUTCH-1058 https://issues.apache.org/jira/browse/NUTCH-1232 and http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/ example/solr/conf/schema.xml?view=markup for more info. --> <schema name="nutch" version="1.5"> <types> <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/> <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/> <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/> <fieldType name="date" class="solr.TrieDateField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/> <!-- 配置IK分词 --> <fieldType name="ik" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" /> <!-- in this example, we will only use synonyms at query time <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> --> <!-- <filter class="solr.LowerCaseFilterFactory"/> --> </analyzer> <analyzer type="query"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" /> <!--<filter class="org.wltea.analyzer.lucene.IKSynonymFilterFactory" autoupdate="false" synonyms="synonyms.txt" flushtime="20" /> --> <!--<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> --> <!--<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> --> <!-- <filter class="solr.LowerCaseFilterFactory"/> --> </analyzer> </fieldType> <fieldType name="text" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> <!-- in this example, we will only use synonyms at query time <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> --> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> <fieldType name="url" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1"/> </analyzer> </fieldType> </types> <fields> <field name="_version_" type="long" indexed="true" stored="true"/> <field name="id" type="string" stored="true" indexed="true"/> <!-- core fields --> <field name="segment" type="string" stored="true" indexed="false"/> <field name="text" type="string" stored="true" indexed="false"/> <field name="digest" type="string" stored="true" indexed="false"/> <field name="boost" type="float" stored="true" indexed="false"/> <!-- fields for index-basic plugin --> <field name="host" type="string" stored="false" indexed="true"/> <field name="url" type="url" stored="true" indexed="true" required="true"/> <field name="content" type="ik" stored="true" indexed="true"/> <field name="title" type="ik" stored="true" indexed="true"/> <field name="cache" type="string" stored="true" indexed="false"/> <field name="tstamp" type="date" stored="true" indexed="false"/> <!-- fields for index-anchor plugin --> <field name="anchor" type="string" stored="true" indexed="true" multiValued="true"/> <!-- fields for index-more plugin --> <field name="type" type="string" stored="true" indexed="true" multiValued="true"/> <field name="contentLength" type="long" stored="true" indexed="false"/> <field name="lastModified" type="date" stored="true" indexed="false"/> <field name="date" type="date" stored="true" indexed="true"/> <!-- fields for languageidentifier plugin --> <field name="lang" type="string" stored="true" indexed="true"/> <!-- fields for subcollection plugin --> <field name="subcollection" type="string" stored="true" indexed="true" multiValued="true"/> <!-- fields for feed plugin (tag is also used by microformats-reltag)--> <field name="author" type="string" stored="true" indexed="true"/> <field name="tag" type="string" stored="true" indexed="true" multiValued="true"/> <field name="feed" type="string" stored="true" indexed="true"/> <field name="publishedDate" type="date" stored="true" indexed="true"/> <field name="updatedDate" type="date" stored="true" indexed="true"/> <!-- fields for creativecommons plugin --> <field name="cc" type="string" stored="true" indexed="true" multiValued="true"/> <!-- fields for tld plugin --> <field name="tld" type="string" stored="false" indexed="false"/> </fields> <uniqueKey>id</uniqueKey> <defaultSearchField>content</defaultSearchField> <solrQueryParser defaultOperator="OR"/> </schema>
6, 配置好后,进行nutch的/root/apache-nutch-1.8/runtime/deploy/bin目录下
执行如下命令:
./crawl urls mydir http://192.168.211.36:9001/solr/ 2
启动集群抓取任务。
抓取中的MapReduce截图如下:
抓取完,我们就可以去solr中查看抓取的内容了,截图如下:
至此,一个简单的抓取,搜索系统就搞定了,非常轻松,使用都是Lucene系列开源的工程。
总结:配置过程中遇到几个比较典型的错误,记录如下:
java.lang.Exception: java.lang.RuntimeException: Error in configuring object at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:354) Caused by: java.lang.RuntimeException: Error in configuring object at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:93) at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64) at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117) at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:426) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:366) at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:223) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88) ... 11 more Caused by: java.lang.RuntimeException: Error in configuring object at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:93) at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64) at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117) at org.apache.hadoop.mapred.MapRunner.configure(MapRunner.java:34) ... 16 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88) ... 19 more Caused by: java.lang.RuntimeException: x point org.apache.nutch.net.URLNormalizer not found. at org.apache.nutch.net.URLNormalizers.<init>(URLNormalizers.java:123) at org.apache.nutch.crawl.Injector$InjectMapper.configure(Injector.java:74) ... 24 more 2013-09-05 20:40:49,329 INFO mapred.JobClient (JobClient.java:monitorAndPrintJob(1393)) - map 0% reduce 0% 2013-09-05 20:40:49,332 INFO mapred.JobClient (JobClient.java:monitorAndPrintJob(1448)) - Job complete: job_local1315110785_0001 2013-09-05 20:40:49,332 INFO mapred.JobClient (Counters.java:log(585)) - Counters: 0 2013-09-05 20:40:49,333 INFO mapred.JobClient (JobClient.java:runJob(1356)) - Job Failed: NA Exception in thread "main" java.io.IOException: Job failed! at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1357) at org.apache.nutch.crawl.Injector.inject(Injector.java:281) at org.apache.nutch.crawl.Crawl.run(Crawl.java:132) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) at org.apache.nutch.crawl.Crawl.main(Crawl.java:55) ========================================================================== 解决方法:在nutch-site.xml里面加入如下配置。 <property> <name>plugin.folders</name> <value>./src/plugin</value> <description>Directories where nutch plugins are located. Each element may be a relative or absolute path. If absolute, it is used as is. If relative, it is searched for on the classpath.</description> </property>
在执行抓取的shell命令时,发现
使用 bin/crawl urls mydir http://192.168.211.36:9001/solr/ 2 命令有时候会出现,一些HDFS上的目录不能正确访问的问题,所以推荐使用下面的这个命令:
./crawl urls mydir http://192.168.211.36:9001/solr/ 2
发表评论
-
Nutch1.8插件编译步骤
2014-05-21 19:15 1369Nutch的架构,采用了非常灵活的插件模式,大部分的核心功能, ... -
How to make nutch run in eclipse ?
2014-05-20 16:46 2424Nutch是一个优秀的开源的数据爬取框架,我们只需要简单的配置 ... -
Cygwin模拟Linux在windows下的镜像安装
2013-07-06 12:50 2641Cygwin是一款优秀的软件 ... -
nutch1.6+solr3.6的在win7下入门部署
2013-06-17 16:03 23021,在windows平台下,使用nutch,得需要cygwin ...
相关推荐
总的来说,Nutch+Solr+Hadoop 的框架搭建涉及多个组件的安装、配置和协同工作。理解这些组件的功能和相互之间的关系,以及如何通过脚本和配置文件控制它们,是成功搭建和使用该框架的关键。这个教程提供了详细步骤,...
如果你打算深入研究,还需要了解Hadoop,因为Nutch通常与Hadoop结合使用,利用其分布式计算能力处理大量数据。同时,熟悉Lucene的索引结构和查询语法也会对理解Nutch的工作方式有所帮助。在实践中,你可能还需要根据...
同时,你也需要配置 Hadoop 环境,因为 Nutch 可以与 Hadoop 集成,利用其分布式处理能力。 2. **项目结构**:Nutch 1.2 的项目结构包括源代码、配置文件、工作目录等。主要的代码集中在 `src` 目录下,包括 `java`...
Nutch与Hadoop紧密集成,可以充分利用Hadoop的分布式能力。 3. 预处理模块:对抓取的网页进行清洗和分词,这一步可以通过自定义的MapReduce任务完成。例如,使用Java的Jieba分词库进行中文分词。 4. 索引构建模块...
在开始Nutch配置之前,确保你已安装了Java运行环境(JRE)和Java开发工具(JDK),版本至少为1.8。同时,你需要一个支持Hadoop的环境,如Hadoop单机模式或伪分布式模式。如果你打算使用Solr或Elasticsearch作为检索...
目前已经搭建了Nutch2.3+HBase0.98.9+Hadoop2.6+Solr4.7.2伪分布式环境。该项目基于该环境如下课题:熟悉大数据环境搭建过程学习Nutch抓取,掌握抓取过程学习使用Hadoop分布式计算平台,HDFS分布式文件系统,...
Nutch与Hadoop紧密集成,能够充分利用分布式计算的优势,处理海量数据。在本篇中,我们将深入探讨Nutch的开发细节,包括其架构、工作流程、配置以及如何进行定制化开发。 1. **Nutch架构** Nutch的核心架构分为四...
【大数据技术文档27.docx】的概述主要讨论了大数据时代下信息检索面临的挑战和解决方案,特别是通过使用Hadoop、Nutch和Solr构建分布式搜索引擎。以下是对文档中提到的知识点的详细说明: 1. **大数据环境**:随着...
本篇文档详细介绍了一种基于Hadoop+Nutch+Solr的大数据搜索系统的设计与实现方法,旨在解决传统搜索引擎中存在的问题,如结果相关性不高、搜索速度慢等。通过对关键技术的深入研究和创新性的应用,该系统能够在...
Nutch与Hadoop紧密结合,利用分布式计算能力处理大规模数据,适合构建大规模的搜索引擎系统。 二、Nutch工作流程 1. **种子URL**:启动Nutch时,需要提供一批起始URL(种子URL),Nutch将从这些URL开始抓取。 2. **...
1. 在`conf`目录下,编辑`nutch-site.xml`配置文件,根据你的Hadoop集群设置相关参数,如`fs.defaultFS`、`mapreduce.framework.name`等。 2. 创建或修改`crawldb`、`segments`等目录路径,确保它们指向你的工作目录...
Nutch 与 Apache Hadoop 结合紧密,充分利用分布式计算的优势,实现大规模的数据抓取和处理。 **一、Nutch 抓取技术** 1. **多线程抓取**:Nutch 支持多线程抓取网页,提高爬虫的抓取速度和效率。 2. **URL管理**...
在实际应用中,Nutch常与Hadoop、HBase、Solr等其他开源项目结合使用,形成完整的搜索引擎解决方案。例如,Hadoop用于分布式存储和处理抓取的数据,HBase提供实时的索引存储,而Solr则提供高性能的搜索服务。 总的...
Nutch通常依赖Hadoop、Lucene、Solr等项目,用于分布式处理、文本分析和搜索服务。 5. **构建与运行**:使用Apache Maven来构建和运行Nutch。通过运行Maven命令,你可以生成可执行的JAR文件,然后执行爬虫任务。 6...
文档内容主要涉及大数据处理中的分布式搜索引擎,具体包括Hadoop、Nutch和Solr等技术的应用。 在大数据背景下,传统的信息检索方式已无法应对快速增长的网络信息量。Hadoop作为一个开源的分布式处理框架,其核心...
文档重点关注了Hadoop、Nutch和Solr这三个关键工具在分布式搜索引擎中的应用。 Hadoop是Apache基金会的一个开源框架,专为大规模数据处理而设计。它的核心组件包括分布式文件系统HDFS(Hadoop Distributed File ...
1. 配置Nutch的`conf/nutch-site.xml`,添加Hadoop的相关配置,如`hadoop.root.dir`,`fs.defaultFS`等。 2. 将Hadoop的`conf`目录添加到Nutch的类路径中,可以通过修改`bin/nutch`脚本来实现。 **六、监控和优化**...
该文档包含了对 Hadoop 分布式平台、Nutch 架构和 Solr 集群的深入研究,着重研究分析 Nutch 插件系统的内部结构和流程。 大数据技术文档样本.docx 的主要内容包括: 1. 大数据时代的挑战和机遇:随着计算机技术、...