Apache Nutch 1.7 在windows和Linux下的安装.docx_第1页
Apache Nutch 1.7 在windows和Linux下的安装.docx_第2页
Apache Nutch 1.7 在windows和Linux下的安装.docx_第3页
Apache Nutch 1.7 在windows和Linux下的安装.docx_第4页
Apache Nutch 1.7 在windows和Linux下的安装.docx_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Apache Nutch 1.7安装总结目录前言3Nutch在Windows下的搭建过程31 准备工作32 安装Cygwin33 安装Nutch1.784 Nutch1.7测试95 Nutch与Solr结合使用11Nutch在Linux下的搭建过程131 准备工作132 开始部署132.1 安装linux系统132.2 安装jdk132.3.配置nutch创建索引142.4安装tomcat172.5配置nutch查询索引17参考文献19前言学习使用nutch的时间加起来能有一个月了,在网上也搜集了不少的资料,但是比较零散,所以想把这一个月使用它的全部过程、原理的讲解和中间的注意事项总结一下。主要汇总写网上已有的资料,方便查阅嘛。Nutch在Windows下的搭建过程1 准备工作我是在Window7下搭建的Nutch,所需要的工具如下:(1)Cygwin安装(2)jdk-6u25-win-i586.bin(2)apache-nutch-1.2-bin.tar.gz2 安装Cygwin下载地址: /setup.exe (1)因为nutch自身的命令是要在linux环境下才能运行,所以先安装了cygwin,Cygwin 是一个在Windows下的模拟Linux系统程序。Cygwin的安装:/cfree_ch/doc/help/UsingCF/CompilerSupport/Cygwin/Cygwin1.htm这个网址对cygwin的安装步骤演示的很详细,对我们这些初步接触cygwin的人有很大的帮助。(2) 下面是我自己安装时的截图1)安装页面,点击下一步 图示中共有三种安装方式:(1)Install from Internet:从Internet上下载并安装软件;(2)Download Without Installing:从Internet上下载安装的文件,但暂时不安装;(3)Install from Local Directory:从本地含有安装文件的目录进行安装。我们选择第一项“Install from Internet”后,点击“下一步”2) 选择安装目录,可以根据默认,也可以根据自己需要换路径 3) 建立Downloads文件夹,接收下载包 4)选择镜像地址,没有演示中说的:代表中国的网站,下载会更快5)选择安装包安装向导显示出所要安装的内容列表,用户可以根据自己的实际需要来决定安装哪些程序。点击循环箭头图标后面的文字,可以更改安装的方式,常用的方式有Default(表示只安装缺省的安装项)、Install(表示安装全部程序,空间要求较大)、Reinstall(表示重新安装程序)。6)安装完成至此,笔者还要对Cygwin再多说几句。Cygwin是一个在Windows平台上模拟运行Unix的环境,用户可以通过它来熟悉与学习Unix系统的操作。对于Unix系统还不甚熟悉的读者可以参阅笔者之前写作的Unix操作系统的入门与基础、Unix的轻便“约取而实得”系列文章,下文中对涉及使用到的Unix命令将不再给予具体解释。3 安装Nutch1.7Nutch是一个Java实现的web爬虫,爬取的结果存储到database(指定文件路径下的一系列文件及目录)供Solr或Lucene索引和检索。2014年发布的最新版本有两个:主流的v1.7和支持大范围爬取、大数据存储的v2.0。常见搜索相关的框架的基本功能列表:爬取索引检索NutchSolrLuceneGrubLarbinGrub (search engine)是开源的分布式搜索爬虫平台(distributed searchcrawler platform)。创建于2000年,2003年被LookSmart收购,后来被中止,2007年再次启动。官网。注意与GNU GRUB的不同,GNU GRUB是计算机启动的引导加载程序(boot loader)。Larbin是法国人用C+实现的web爬虫,最近已经不更新了。下载安装apache-nutch-1.7-bin.zip并设置。下载地址:/dist/nutch/(1) 下载完成后将其解压到D盘,文件夹名为nutch-1.7解压缩Nutch二进制分发包,目录如下:l bin目录,只包含一个可执行文件nutchl conf目录,nutch命令执行的配置参数l docs目录,JavaDoc帮助l lib目录,相关Jar类库l plugins目录,相关插件库(2)输入,打开到d盘目录下nutch-1.7文件夹,输入bin/nutch 进行nutch安装测试: 出来一系列nutch的命令,证明nutch安装成功;“工欲善其事,必先利其器。”经过前文的“细解”,我们已经完成了Nutch在Windows中的安装。接下来就让我们通过锋芒初试,来亲自体验一下Nutch的强大功能吧!(3)在Windows系统的环境变量设置中,添加NUTCH_JAVA_HOME环境变量 :D:jdk1.7.0_07。并将其值设为JDK的安装目录。4 Nutch1.7测试1. Nutch的爬虫抓取网页有两种方式,一种方式是Intranet Crawling,针对的是企业内部网或少量网站,使用的是crawl命令;另一种方式是Whole-web crawling,针对的是整个互联网,使用inject、generate、fetch和updatedb等更底层的命令。 本文将以使用Nutch为笔者在CSDN处的个人专栏(/zjzcl)文章内容建立搜索功能为例,来讲述Intranet Crawling的基本使用方法(假设用户电脑系统已安装好JDK、Tomcat和Resin,并做过相应的环境配置)。1、设置Nutch的环境变量在Windows系统的环境变量设置中,添加NUTCH_JAVA_HOME环境变量 :D:jdk1.7.0_07。并将其值设为JDK的安装目录。 2、Nutch抓取网站页面前的预备工作(1)修改配置文件conf/MySpider修改属性为任何其他值(2)设置要爬取的网址URL创建myURLs目录(为了执行方便,最好为$NUTCH_HOME/myURLs)在myURLs目录创建文件seed.txt,编辑该文件,一行一个要爬取的网址url。/zjzcl(3)编辑conf/crawl-urlfilter.txt文件,修改MY.DOMAIN.NAME部分:# accept hosts in MY.DOMAIN.NAME+/zjzcl(4)执行命令nutch命令bin/nutch crawl myURLs -dir crawlDir -depth 3 -topN 5说明:crawl是nutch命令的参数,表示进行爬取操作;myURLs指定要爬取的URLs;crawlDir指定爬取结果的存放目录;depth指定爬取的网址的深度,即从指定URL逐层进入的链接的深度;topN指定在每个深度爬取的页面数量上限 等待大约2分多钟后,程序运行结束。读者会发现在nutch-0.7.1目录下被创建了一个名为crawled的文件夹,同时还生成一个名为crawl.log的日志文件。利用这一日志文件,我们可以分析可能碰到的任何错误。(5)爬取结果分析经过若干时间,nutch命令执行完毕,crawlDir目录下将出现如下3个子目录:l crawldb,其中是Nutch已知的全部URL(包括已经爬取的和未爬取的,爬取的时间)。l linkdb,其中是到每个URL的已知链接列表,包括源URL和链接的锚名字。l segments,其中是segment的集合。一个segment是URLs的集合,这些URLs作为一个单位(unit)被爬取。n crawl_generate,命名爬取的URLs集合n crawl_fetch,包含每个URL的爬取状态n content,包含从每个URL爬取的原始内容n parse_text,包含每个URL的解析之后的文本n parse_data,包含从每个URL解析出来的外部链接(outlinks)和元数据(metadata)crawl_parse,包含外部链接URLs,用以更新crawldb(6)过滤要爬取的URLs打开文件conf/regex-urlfilter.txt,该文件末尾如下:# accept anything else+.说明:每行的第一个字符:+表示包含后续的URL,-表示忽略后续的URL。所以原始文件中的“+.”表示包含任何URL。内容替换如下:# accept anything else+http:/(a-z0-9*.)*/5 Nutch与Solr结合使用1、安装设置Solrl 下载Solr并解压缩(记Solr解压缩目录为SOLR_HOME)l 进入$SOLR_HOME/examplel 执行java jar start.jar打开浏览器,访问http:/localhost:8983/solr/admin/,如果正常即表示启动成功2、集成Nutch与SolrNutch擅长网页抓取,Solr擅长索引和搜索。通过如下命令可以在Nutch爬取的同时进行Solr索引:bin/nutch crawl myURLs -solr http:/localhost:8983/solr/ -depth 3 -topN 5Nutch完成爬取之后,使用Solr索引:l 复制$NUTCH_HOME/conf/schema.xml到$SOLR_HOME/example/solr/confl 进入$SOLR_HOME/examplel 重新执行java jar start.jarl 执行如下Nutch命令,将Nutch爬取的数据发送给Solr进行索引bin/nutch solrindex :8983/solr/ crawlDir/crawldb -linkdb crawlDir/linkdb crawlDir/segments/*Solr建立索引之后,就可以打开浏览器,访问http:/localhost:8983/solr/admin/进行各种关键词检索了。Nutch在Linux下的搭建过程1 准备工作我是在virtualbox下用虚拟机进行的nutch搭建,所需要的工具如下:(1)Virtualbox最新版(2)ubuntu-desktop最新版(以后会改为ubuntu-server)(3)jdk-6u25-linux-i586.bin(4)apache-nutch-1.2-bin.tar.gz2 开始部署2.1 安装linux系统首先安装VirtualBox,然后安装ubuntu,就是传统的安装方法。上传所用的包到linux系统/tmp目录下,表示用户目录。2.2 安装jdk终端命令1. #cd/tmp2. #chmoda+xjdk-6u23-linux-i586.bin3. #shjdk-6u23-linux-i586.bin4. #mkdir/usr/java5. #mvjdk1.6.0_23/usr/java/配置用户环境变量2这个比较重要,最开始nutch多次爬取失败,就是因为环境变量配置的不对。最开始是在/.bash_profile下配置,后来又在/etc/profile下配置,但是由于nutch有些命令需要管理员权限,当进入管理员权限时,上述配置的环境变量就不生效了,所以最后在/etc/environment下配置环境变量才好使。在/etc/profile下配置环境变量(这个最好也配置上吧)。终端命令1. #sudu gedit /etc/profile2. (在该文件中添加如下内容)3. export JAVA_HOME=/usr/java/jdk1.6.0_254. export JRE_HOME=/usr/java/jdk5/jre5. export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH6. export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH在/etc/environment下配置环境变量。终端命令1. sudu gedit /etc/environment2. (在该文件中添加如下内容)3. JAVA_HOME=/usr/java/jdk1.6.0_254. JRE_HOME=/usr/java/jdk5/jre5. CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH6. PATH直接在该文件本来有的PATH后面添加即可注意1:每段路径中间用冒号(:)分开,别忘记了那个点(.)注意2:在尝试的过程中,environment文件内容的错误添加可能导致电脑无法进入,反复的停留在登陆界面。(我在最开始修改这个文件的时候遇到过),只需按crl+alt+F2,在命令行界面把错误的修改删除即可。测试终端命令1. #javaversion输出1. java version 1.6.0_252. Java(TM) SE Runtime Environment (build 1.6.0_25-b05)3. JavaHotSpot(TM) Client VM (build 19.0-b09, mixed mode, sharing)Jdk安装成功另外,在终端下输入env,能够看到所有已经配置的环境变量,看看是否有这几个变量。输入sudo su,然后输入env,看在管理员权限下,是否有这几个变量。2.3.配置nutch创建索引终端命令1. #unzipapache-nutch-1.2-bin.zip2. #mvnutch-1.2/opt/3. #cd/opt/nutch-12终端命令1. #vimconf/crawl-urlfilter.txt注1:这里用vim,vi,gedit都可以,如果是vim的话,可能还需要下载vim,使用apt-get install命令安装。注2:crawl-urlfilter.txt是用来配置所爬取网站的范围,域名和它的子网页的正则表达式,类似于爬取规则。这里是以爬取新浪网第一页为例子的。找到该文件中如下内容的部分1. #accepthostsinMY.DOMAIN.NAME2. +http:/(a-z0-9*.)*MY.DOMAIN.NAME/更改为1. #accepthostsinMY.DOMAIN.NAME2. +http:/(a-z0-9*.)*/接下来修改nutch-site.xml文件,这类似于对我要爬取的网站进行一下声明,不声明的话,会导致爬取失败终端命令1. #vimconf/nutch-site.xml在该文件中添加1. 2. 3. 4. HDnutchagent5. 6. 7. http.agent.version8. 1.09. 10. 这里面的值(value)应该是可以更改的(并未进行过尝试)。然后建立种子文件,说明爬取的网站域名列表,现在只有新浪网一个。终端命令1. #cdbin2. #mkdirurls3. #vim urls/nutch.txt这个文件的名称是自定义的,如nutch.txt,seed.txt,url.txt,随意。在该文件中添加需要爬取的网站的最高层域名。这里添加内容如下1. /此后创建日志,用来基础爬取时的输出情况,不指定输出文件的话,默认是输出到终端。终端命令1. #mkdirlogs2. #vimlogs/log1.log3. :wq创建索引,用来存储爬取下来的所有结果。终端命令1. #mkdir/opt/index此后便可以进行爬取工作,输入nuch创建索引shell指令,这也是nuch不能在window下安装原因,在windows需要装虚拟机或用cygwin(在windows下运行unix shell command需要)。而且不能在win7下用cygwin模拟,试了一天才知道这一点。爬取命令如下,得加sudo,因为读写了home的上层目录。终端命令1. # sudo sh2. # bin/nutch crawl urls dir /opt/index depth 10 threads 2 topN 100000 | tee logs/log1.logcrawl:通知nutch.jar,执行crawl的main方法。urls:存放需要爬行的url.txt文件的目录dir:爬行后文件保存的位置depth:爬行次数,或者成为深度,不过还是觉得次数更贴切,建议测试时改为1threads 指定并发的进程这是设定为4topN :一个网站保存的最大页面数。终端命令1. #ls/opt/index下面有索引内容表示成功,没的话看logs/log1.log日记的异常。到此算是爬取的过程。可能出现的错误如下34Exception in thread main java.io.IOException: Job failed! at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1252) at org.apache.nutch.crawl.Injector.inject(Injector.java:226) at org.apache.nutch.crawl.Crawl.main(Crawl.java:124)这是由于JAVA_HOME没有设置好造成的,重新在/etc/environment中设置,并重启就好了。Exception in thread main java.io.IOException: Job failed!at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1252)at org.apache.nutch.crawl.Injector.inject(Injector.java:217)at org.apache.nutch.crawl.Crawl.main(Crawl.java:124)一说是语言设置的不对,因为函数返回值的类型无法匹配造成,需要在环境变量(/etc/environment)中配置“LANG=zh_CN.GBK,我尝试了,但是没有解决。后来查看源代码,是因为有一个文件没有找到造成的,需要把根目录中的nutch-1.2.jar拷贝到lib子目录中去。,因为在/bin/nutch的文件中需要读取这个包,但是这个包的路径不正确。”这个问题很严重,尤其在最初搭建的时候,很多的网址几乎都没有写这个解决方案。导致很久爬取不成功。应该没有其他的问题了,至少我没遇到。2.4安装tomcat终端命令1. #cdtmp2. #tarxzvfapache-tomcat-6.0.29.tar.gz3. #mvapache-tomcat-6.0.29tomcat4. #mvtomcat/usr/local/启动tomcat终端命令1. #/usr/local/tomcat/bin/startup.sh会有如下的输出UsingCATALINA_BASE:/usr/local/tomcatUsingCATALINA_HOME:/usr/local/tomcatUsingCATALINA_TMPDIR:/usr/local/tomcat/tempUsingJRE_HOME:/usr/java/jdk1.6.0_23UsingCLASSPATH:/usr/local/tomcat/bin/bootstrap.jar终端命令1. #netstattln查看8080端口是否开启测试访问http:/localhost:8080正常出现tomcat首页,测试成功后关闭tomcat终端命令1. #/usr/local/tomcat/bin/shutdown.sh2.5配置nutch查询索引把nutch的war包到tomcat的webapps目录下终端命令1. #cd/opt/nutch-1.2终端命令1. #mvnutch-1.2.war/usr/local/tomcat/webapps启动tomcat终端命令1. #/usr/local/tomcat/bin/startup.sh在webapps下会把nutch-1.2.war 解压出nutch-1.2文件包测试 http:/localhost:8080/nutch-1.2进入nutch

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论