在MyEclipse中搭建Nutch开发环境.docx_第1页
在MyEclipse中搭建Nutch开发环境.docx_第2页
在MyEclipse中搭建Nutch开发环境.docx_第3页
在MyEclipse中搭建Nutch开发环境.docx_第4页
在MyEclipse中搭建Nutch开发环境.docx_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

在MyEclipse中搭建Nutch开发环境1 以Java Project形式搭建1.1 第一步:下载Nutch的压缩包到Nutch的网站上下载Nutch的压缩包,这里以Nutch1.1为例。Nutch各版本的下载地址为/dist/nutch/,进入该网页后,找到apache-nutch-1.1-bin.tar.gz文件,将其下载到自己的电脑里。1.2 第二步:新建一个Java项目打开MyEclipse,点击FileNewJava Project新建一个Java项目,输入Project Name如Nutch1.1,点击Finish按钮。如下图所示。1.3 第三步:导入Nutch的代码将第一步下载的Nutch压缩包解压,解压后的目录结构如下图所示。将src/java目录下的整个org文件夹copy到Nutch1.1项目的src目录下。1.4 第四步:导入Nutch的配置文件、Jar包、插件在第三步解压后的目录下,找到conf、lib、plugins三个文件夹,将这三个文件夹copy到Nutch1.1项目的根目录下(即与src目录同级)。Copy完后,Nutch1.1项目的目录结构如图所示。1.5 第五步:替换Nutch中Hadoop的核心包官方版本的Hadoop是不支持Windows下的存取操作的,我们需要将其替换为自己修改过的Jar包。在Nutch1.1项目的lib目录下,找到Hadoop的核心包(如:hadoop-0.20.2-core.jar),将其删除,然后将自己的Jar包(hadoop-0.21.0-core.jar)copy到该目录下。1.6 第六步:在MyEclipse中为项目加载Jar包在MyEclipse中刷新Nutch1.1项目,可以看到如下所示的目录结构。我们会发现src目录下有错误存在,这是因为尽管该项目的lib目录下有Jar包,但是没有将其加入到ClassPath变量中。下面来解决这个问题。在Nutch1.1目录上单击右键Build PathConfigure Build Path将打开如下所示的对话框。在Libraries选项卡里,点击Add JARs按钮,将出现如下所示的对话框。展开Nutch1.1目录,展开lib目录,将lib文件夹及其子文件夹下的全部Jar包选中,然后单击OK按钮,如下图所示。单击OK按钮后,将回到Libraries选项卡,此时该选项卡将如下所示。最后,单击Libraries选项卡里的OK按钮,回到MyEclipse的主页面,看看src目录上的错误是不是消失了。1.7 第七步:在MyEclipse中为项目加载配置文件同理,虽然conf目录下已经有配置文件了,但Java虚拟机仍不能识别它们,因为它们也没有加入到ClassPath变量中。下面我们来将其加入。在conf目录上单击右键Build PathUse as Source Folder。然后我们会发现conf目录变成了一个“Source Folder”,这样conf目录下的配置文件就被中加入到ClassPath变量中了。1.8 第八步:修改Nutch中的配置Nutch中默认的配置并不能使Nutch正常运行,需要修改几个地方后才能使Nutch运行起来。1.8.1 修改nutch-default.xml在conf目录下找到nutch-default.xml文件,将其打开,找到配置项,如果该项的value值为空,则随便加入一个值,然后保存。如下图所示。1.8.2 修改crawl-urlfilter.txt在conf目录下找到crawl-urlfilter.txt文件,将其打开,找到# accept hosts in MY.DOMAIN.NAME配置项,将其下面的正则表达式+http:/(a-z0-9*.)*MY.DOMAIN.NAME/改为+http:/(a-z0-9*.)*。找到# skip URLs containing certain characters as probable queries, etc. 配置项,如果其下面有-?*!=形式的正则表达式,将其删除,或将-号改为+号。最后,保存所作的修改。如下图所示。此外,还可以修改nutch-site.xml这个文件的配置。(这里略去,不作修改)1.9 第九步:测试Crawl类,修正运行中的各种错误经过以上的操作,Nutch的开发环境的搭建就有可能大功告成了,现在我们就可以开始运行Nutch了。我们通过Crawl类来运行Nutch,运行时将出现两种结果,一是顺利地运行完成,二是程序被各种异常终止(即运行失败)。如果出现第一种结果,恭喜你,Nutch的开发环境搭建成功;如果出现第二种结果,很抱歉,你可能离成功还有很远,不过没关系,你可以一步一个脚印,修正运行中的各个错误。下面,按如下步骤来运行Nutch,修正运行中的各种错误。1.9.1 运行前的准备工作Nutch爬虫运行时需要一个入口,即一个或若干个url,通常将url存放在一个txt文件中。因此,运行前需要有这样的txt文件。在Nutch1.1项目的根目录下新建一个名为“testData”的文件夹,在该文件夹下新建一个名为“urls.txt”的文件,在urls.txt文件中写入若干url,如下图所示。1.9.2 打开Crawl类,配置运行参数在MyEclipse中,展开src目录,找到org/apache/nutch/crawl包下的Crawl.java类,双击打开。在MyEclipse的工具栏上找到,点击右边的黑色小三角,再点击Run Configurations,将打开一个对话框,如下图所示。点击Arguments选项卡,如下图所示输入运行参数和虚拟内存,点击Apply按钮,再点击Close按钮,返回主界面。1.9.3 运行Crawl类打开Crawl类,点击工具栏上左边的小三角,程序开始运行起来,耐心等待程序执行完成。如果程序运行后,满足以下几个条件则认为程序运行正常,开发环境搭建成功。如果不满足以下的条件,则认为程序运行失败,需要修正各种错误。程序没有被异常终止运行中没有抛出较严重的异常运行结束时,控制台出现类似以下的信息运行结束后,testData目录下出现out文件夹,且out目录下出现如下所示的子文件夹,并且各子文件夹中的文件要有数据1.9.4 修正错误,直至运行成功如果上一步中,Crawl类运行成功,则此步可以跳过。如果上一步中,Crawl类运行失败,则要根据实际情况,一步一个脚印,碰到一个错误修正一个错误,直到Crawl类运行成功。下面给出运行中常见的错误及其解决方法。java.lang.NoClassDefFoundError这类异常是因为没有找到相应的类文件,通常是缺少Jar包。以下图的异常为例,该异常是因为缺少jackson的Jar包,因而找不到相应的类文件。解决方法是:将jackson-core-asl-1.4.2.jar和jackson-mapper-asl-1.4.2.jar文件加入到lib目录下,再通过MyEclipse加入Jar包的方法将这两个Jar包加入到ClassPath变量中。Job failed!Job failed是Nutch中最常见也是最复杂的问题,引发该异常的原因数不胜数,解决方法应视具体情况而定。遇到该问题时,通常可以按以下步骤来解决。第一:检查Hadoop的核心包是否替换,没有则替换为自己修改过的Jar包,如:hadoop-0.21.0-core.jar。第二:检查nutch-defult.xml是否修改,以及是否修改正确。第三:检查crawl-urlfilter.txt是否修改,以及是否修改正确。第四:以上三种方法仍然不能解决时,需要查看Hadoop的日志文件hadoop.log(该文件通常在项目的根目录下,也可能在其他地方),来找出出现问题的具体原因。下面是hadoop.log的一个片段,该片段说明了引起Job failed的一个原因:avro的某些类文件未找到。因此,说明我们还要在项目中加入avro的Jar包,如:avro-1.3.2.jar。下面是hadoop.log的另一个片段,该片段说明了引起Job failed的另一个原因:OutOfMemoryError(内存溢出错误)。这个错误说明运行的虚拟内存太小或者根本就没设置虚拟内存,解决方法是在配置Crawl运行参数的对话框中正确设置虚拟内存的大小。Input path does not exist这个异常说明输入路径不存在,即含有url的txt文件不存在。引起这个异常的原因有两个,一个是没有所需的txt文件,另一个是运行参数配置错误。解决的方法是首先检查txt文件是否存在,然后检查Crawl的运行参

温馨提示

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

评论

0/150

提交评论