[Nutch]Nutch+Eclipse+Tomcat+Solr+Cygwin搭建Windows开发环境

Posted kandy_ye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Nutch]Nutch+Eclipse+Tomcat+Solr+Cygwin搭建Windows开发环境相关的知识,希望对你有一定的参考价值。

1、环境准备

1.1 软件

操作系统:Windows 10专业版
ANT版本:apache-ant-1.9.7-bin.zip
JDK版本:jdk-8u65-windows-x64.exe
Solr版本:solr-4.9.1.zip
Nutch版本:apache-nutch-1.6-bin.tar.gz
Tomcat版本:apache-tomcat-9.0.0.M8-windows-x64.zip
Eclipse版本:eclipse-jee-mars-1-win32-x86_64.zip
下面是安装的Eclipse插件:

IvyDE插件:
Ivy:
plugins:
org.apache.ivy.eclipse.ant_2.4.0.final_20141213170938.jar
org.apache.ivy_2.4.0.final_20141213170938.jar
features:
org.apache.ivy.feature_2.4.0.final_20141213170938.jar

IvyDE:
plugins:org.apache.ivyde.eclipse_2.2.0.final-201311091524-RELEASE.jar
features:org.apache.ivyde.feature_2.2.0.final-201311091524-RELEASE.jar

1.2 JDK安装配置

双击”jdk-8u65-windows-x64.exe”即可进行安装,我们一路点击Next,默认安装在C盘,下面是我们安装完JDK的目录。
这里写图片描述

下面配置JAVA环境变量:右击->我的电脑->属性->高级系统设置->高级->环境变量。

1.2.1 点击”新建”,然后变量名写上”JAVA_HOME”,填上上面内容。

JAVA_HOME=C:\\Program Files\\Java\\jdk1.8.0_65

如下:
这里写图片描述
备注:JAVA_HOME的变量值后千万不能加分号。

1.2.2 第二步:点击”新建”,然后变量名写上”CLASSPATH”,填上上面内容。

CLASSPATH=.;%JAVA_HOME%\\lib;%JAVA_HOME%\\jre\\lib

如下:
这里写图片描述
备注:要加圆点.表示当前路径。

1.2.3 第三步:点击”新建”,然后变量名写上”NUTCH_JAVA_HOME”,填上上面内容。

NUTCH_JAVA_HOME=%JAVA_HOME%

1.2.4 第四步:在系统变量里找到Path,点击编辑。在后面追加上面内容。

PATH=……;%JAVA_HOME%\\bin;%JAVA_HOME%\\jre\\bin

如下:
这里写图片描述
备注:追加时,用”;”与前面的值进行分割。

1.3 ANT安装配置

把”apache-ant-1.9.7-bin.zip”解压到”C:\\NutchWorkPlat”中,并重新命名为”ant”。
这里写图片描述

下面配置ANT环境变量:右击->我的电脑->属性->高级系统设置->高级->环境变量。

1.3.1 第一步:点击”新建”,然后变量名写上”ANT_HOME”,填上下面内容。

ANT_HOME= C:\\NutchWorkPlat\\ant

如下:
这里写图片描述
备注:ANT_HOME的变量值后千万不能加分号。

1.3.2 第二步:在系统变量里找到Path,点击编辑。在后面追加下面内容。

PATH=……;%ANT_HOME%\\bin;%ANT_HOME%\\lib

如下:
这里写图片描述
备注:追加时,用”;”与前面的值进行分割。

1.4 IvyDE安装配置

1.4.1 ivyde- plugins

把"org.apache.ivyde.eclipse_2.2.0.final-201311091524-RELEASE.jar"复制到Eclipse安装目录的"plugins"中。

1.4.2 ivyde-features

把"org.apache.ivyde.feature_2.2.0.final-201311091524-RELEASE.jar"解压到Eclipse安装目录的"features"中。

备注:是解压之后放到目录"features"中,而不是直接把jar包放到里面,不然启动Eclipse后,打开WindowàShow ViewàError log后,提示"Unable to find feature.xml in directory"。

1.4.3 ivy- plugins

把”org.apache.ivy.eclipse.ant_2.4.0.final_20141213170938.jar”和”org.apache.ivy_2.4.0.final_20141213170938.jar”复制到Eclipse安装目录的”plugins”中。

1.4.4 ivy-features

把”org.apache.ivy.feature_2.4.0.final_20141213170938.jar”解压到Eclipse安装目录的”features”中。

完成以上步骤之后,重启Eclipse,打开Windowàpreference对话框里看到ivy一栏;打开Help->About Eclipse->Installation->Plug-ins列表里也可以看到两个ivy,一个ivyDe。
这里写图片描述
这里写图片描述

1.5 Tomcat安装配置

1.5.1 首先安装Tomcat

把”apache-tomcat-9.0.0.M8-windows-x64.zip”解压到”C:\\NutchWorkPlat”目录下,并重新命名为”tomcat”。
这里写图片描述

进入”C:\\NutchWorkPlat\\tomcat\\bin”点击”startup.bat”,然后出现如下界面。
这里写图片描述

然后在浏览器输入”http://localhost:8080/“,出现如下界面,表示安装成功。
这里写图片描述

1.5.2 接着安装Tomcat的Eclipse插件,并让Eclipse与Tomcat结合

正Eclipse->Help->Install New Software里面,选择Add,分别填上如下内容:

Name:Tomcat
Location:http://tomcatplugin.sf.net/update

如下:
这里写图片描述

选择OK,勾选Tomcat Plugin后选择Next进行安装:
这里写图片描述

安装完成之后重启Eclipse。

打开Window->preference对话框里看到tomcat一栏,点击tomcat,把刚才解压的tomcat进行关联,操作如下:
这里写图片描述

点击工具栏的”Start Tomcat”即可启动Tomcat。
这里写图片描述

然后在Eclipse控制台会输出启动Tomcat的相关信息。
这里写图片描述

此时可以再次在浏览器输入”http://localhost:8080/“进行验证是否启动成功。

1.6 Cygwin安装配置

nutch是在hadoop基础上做的,由于hadoop只在linux上运行,里面涉及到大量的操作linux程序,所以我们在Windows部署的时候必须先安装cygwin环境,模拟linux操作。

这里写图片描述

在上图所示的对话框中,直接点击”下一步”,界面出现三种安装模式:
这里写图片描述

Install from Internet,这种模式直接从Internet安装,适合网速较快的情况;
Download Without Installing,这种模式只从网上下载Cygwin的组件包,但不安装;
Install from Local Directory,这种模式与上面第二种模式对应,当你的Cygwin组件包已经下载到本地,则可以使用此模式从本地安装Cygwin。

我们这里选择第一种”Install from Internet”方式进行安装,然后一直使用默认值,选择”下一步”,直到出现如下图所示对话框:
这里写图片描述

进入”Select Packages”对话框后,其实直接点击”下一步”,进行默认安装即可,为了以后再cygwin下面搭建hadoop环境,所以安装了一些软件。
- OpenSSL
- sed
- vim

必须保证”Net Category”下的”OpenSSL”被安装,如下图所示:
这里写图片描述

如果还打算在eclipse 上编译Hadoop,则还必须安装”Base Category”下的”sed”,如下图所示:
这里写图片描述

另外,还建议将”Editors Category”下的vim 安装,以方便在Cygwin 上直接修改配置文件,如下图所示:
这里写图片描述

建议安装在”Devel Category”下的subversion,如下图所示:
这里写图片描述

当完成上述操作后,点击”Select Packages”对话框中”下一步”,进入Cygwin 安装包下载过程。

当安装完Cygwin软件之后,我们还需要对其设置它的环境变量。

1.5.1 第一步:点击”新建”,然后变量名写上”CYGWIN_HOME”,填上下面内容。

CYGWIN_HOME= C:\\cygwin64

如下:
这里写图片描述

1.5.2 第二步:在系统变量里找到Path,点击编辑。在后面追加下面内容。

PATH=……;% CYGWIN_HOME %\\bin

如下:
这里写图片描述

2、Eclipse开发

2.1 Solr部署

2.1.1 第一步:把”solr-4.9.1.zip”解压到”C:\\NutchWorkPlat”目录下,并命名为”solr”。

这里写图片描述

2.1.2 第二步:把”C:\\NutchWorkPlat\\solr\\dist”目录下的”apache-solr-4.9.1.war”重命名为”solr.war”,并把它放到”C:\\NutchWorkPlat\\tomcat\\webapps”目录下面。

2.1.3 第三步:修改Tomcat配置文件”C:\\NutchWorkPlat\\tomcat\\conf\\server.xml”,添加中文编码支持。

这里写图片描述

2.1.4 第四步:把”C:\\NutchWorkPlat\\solr\\example”目录下的”solr”文件夹连同里面的内容一起复制到”C:\\NutchWorkPlat\\tomcat”目录中。

这里写图片描述

2.1.5 第五步:在”C:\\NutchWorkPlat\\tomcat\\conf\\Catalina\\localhost”下创建一个”solr.xml”文件,内容如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<Context docBase="C:\\NutchWorkPlat\\tomcat\\webapps\\solr.war" debug="0"

crossContext="true" >

    <Environment name="solr/home" type="java.lang.String"

   value="C:\\NutchWorkPlat\\tomcat\\solr" override="true" />

</Context>

2.1.6 第六步:修改”C:\\NutchWorkPlat\\tomcat\\solr\\conf\\ solrconfig.xml”找到下面这句话。

<queryResponseWriter

name="velocity"

class="solr.VelocityResponseWriter" enable="${solr.velocity.enabled:true}"/>

把 enable=”${solr.velocity.enabled:true}中的true修改为false。

2.1.7 第七步:重新启动Tomcat,输入”http://localhost:8080/solr/“,出现下面界面。

这里写图片描述

2.2 Nutch导入

2.2.1 第一步:把”apache-nutch-1.6-bin.tar.gz”解压到”C:\\NutchWorkPlat”目录下,并重命名为”nutch”。

这里写图片描述

2.2.2 第二步:在eclipse中新建立一个Java Project,名字自己定义为Nutch1.6,去掉默认路径(Use default location)前面的对勾,选择”C:\\NutchWorkPlat\\nutch”。其他保持默认,点击”next”。

2.2.3 第三步:选择”Librariesà Add Class Folder…”,从列表中选择”conf”,将conf加入到classpath中。

这里写图片描述

2.2.4 第四步:别着急点”next”,选择”Order and Export”,选中”conf”,点击”Top”,使其置顶,此步骤非常关键,置顶之后,点击”Finish”。

这里写图片描述

2.2.5 第五步:在”Nutch1.6”工程根目录下面创建”urls”文件夹(与src、conf同级),在里面在创建一个名为”urls.txt”的文件,在该文件里添加如下内容:

http://www.cnbeta.com

2.2.6 第六步:在”Nutch1.6”工程根目录下的conf文件夹中,编辑”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>My Nutch Spider</value>
    </property>
    <property>
        <name>plugin.folders</name>
        <value>./src/plugin</value>
    </property>

</configuration>

备注:其中”http.agent.name”和”plugin.folders”必须设置,不然会出现”Job Failure”。

2.2.7 第七步:在”Nutch1.6”工程根目录下的conf文件夹中,编辑”regex-urlfilter.txt”,在”# accept anything else”下面输入:”+^http://(.)“,然后保存。

这里写图片描述

2.2.8 第八步:经过上面的配置之后,就可以爬去网页了,选中”Nutch1.6”工程右击选择”Run As->Run Configurations”,从中找到”Java Application”,然后右击选择”New”,在Main Class选择”org.apache.nutch.crawl.Crawl”,将名字命名为”Crawl”。

这里写图片描述

2.2.9 第九步:接着上面在”Arguments”选项卡中按下面进行填写,然后点击”Apply与Run”。

Program Arguments:urls -dir data -depth 3 -threads 5 -topN 100
VM arguments:-Dhadoop.log.dir=logs -Dhadoop.log.file=hadoop.log

这里写图片描述

2.3 Solr与Nutch结合

通过上面的步骤之后,指定的网页已经抓取到本地了,现在我们就为我们下载的网页建立索引。

2.3.1 第一步:把”E:\\NutchWorkPlat\\nutch\\conf”下面的”schema.xml”复制到Tomcat的安装目录”E:\\NutchWorkPlat\\tomcat\\solr\\conf”下,覆盖掉原文件。schema.xml设置了索引的字段,把content项后面的stored=”false” 改为 stored=”true” 后在搜索返回值中就会包含含有关键字的具体内容。

2.3.2 第二步:点击Eclipse工具栏的”Start Tomcat”即可启动Tomcat。

备注:如果Tomcat已经起来了,在第一步完成之后,也应该重启使其有效,如果不起动Tomcat,在建立索引时会失败。

2.3.3 第三步:经过上面的配置之后,就可以建立索引了,选中”Nutch1.6”工程右击选择”Run AsàRun Configurations”,从中找到”Java Application”,然后右击选择”New”,在Main Class选择”org.apache.nutch.indexer.solr.SolrIndexer”,将其命名为”SolrIndexer”。

这里写图片描述

2.3.4 第四步:接着上面在”Arguments”选项卡中按下面进行填写,然后点击”Apply与Run”。

Program Arguments:
http://localhost:8080/solr/ data/crawldb -linkdb data/linkdb data/segments/*

VM arguments:-Dhadoop.log.dir=logs -Dhadoop.log.file=hadoop.log

这里写图片描述

下面是Eclipse控制台输出信息:

SolrIndexer: starting at 2016-06-18 14:45:41

Adding 352 documents

SolrIndexer: finished at 2016-06-18 14:45:56, elapsed: 00:00:14

2.5.5 第五步:在浏览器输入”http://localhost:8080/solr/admin/“,并在查询条件输入关键字,点击”Search”进行查询。

这里写图片描述

下面就是查询结果,以XML结果显示。
这里写图片描述
这里写图片描述

到目前为止,Nutch二次开发的前期工作已经准备完毕,并在上面进行简单的抓取,后面我们将对Nutch的源码以及工作原理相结合进行分析。进一步认识Nutch。

以上是关于[Nutch]Nutch+Eclipse+Tomcat+Solr+Cygwin搭建Windows开发环境的主要内容,如果未能解决你的问题,请参考以下文章

nutch2.x在eclipse+windows环境下运行遇到的一些问题的解决方案

Java分布式爬虫Nutch教程——导入Nutch工程,执行完整爬取

nutch 使用的协议

nutch+hadoop 配置使用

全文索引-lucene,solr,nutch,hadoop之nutch与hadoop

Nutch基础教程之七Nutch的2种执行模式:local及deploy