myeclipse 2014 配置nutch2.2.1,已经成功,记录一下

首先感谢wilco的文章:http://www.cnblogs.com/e-life/p/3897881.html

一、环境准备

首先,配置开发环境

需要的环境有JDK1.7,myeclipse,svn,ant一级myeclipse下的两个插件subeclipse和ivyDe,

二、从SVN检出项目,地址

7e994e907a983ff53fd6af5fcc3a6ab9.png

Finish完成导入.

395d5d9a9556e467d46e5e5c1f813fad.png四、修改ivy目录下的ivy.xml(增加mysql访问以来java包)

修改gora-core版本为0.2.1,并解除注释gora-sql和mysql-connector-java

29d57be5ca3ea60806c5dcc6c628cef4.png

五、到项目根目录执行 ant eclipse

一开始会有如下问题:

1fb917bb35bc20c378b17648d3b58d7b.png

具体解决办法是到ivy官网:http://ant.apache.org/ivy/index.html下载ivy-*-rc2.jar,复制到ant的lib目录下,再次执行 ant eclipse,就不会报错了,执行时间比较长,这是由于ivy要下载jar包,执行结果如下

466da21800384889f877d7c6f124de5c.png

六、回到myeclipse,刷新项目,会发现目录结果已经发生变化

cb1fdaef0b82267abce7476f3d321f6e.png

七、工程右键Build Path–>Config Build Path–>Order and Export下选中Conf文件置顶

b0a248c1f7aad678330af16129e7bedb.png

八、修改Conf文件夹下gora.properties配置mysql

ee91319abefa630401bfb699f08b0570.png

九、工程目录下新建文件夹urls,url目录下新建一文件url,里面输入要爬取的root_url,比如:http://www.163.com

十、配置conf目录下nutch-site.xml

http.agent.name

YourNutchSpider

http.accept.language

ja-jp,en-us,en-gb,en,zh-cn,zh-tw;q=0.7,*;q=0.3

Valueofthe“Accept-Language”requestheaderfield.

Thisallowsselectingnon-Englishlanguageasdefaultonetoretrieve.

Itisausefulsettingforsearchenginesbuildforcertainnational

group.

parser.character.encoding.default

utf-8

Thecharacterencodingtofallbacktowhennoother

information

isavailable

plugin.folders

src/plugin

Directorieswherenutchpluginsarelocated.Each

elementmaybearelativeorabsolutepath.Ifabsolute,itisused

asis.Ifrelative,itissearchedforontheclasspath.

generate.batch.id

*

storage.data.store.class

org.apache.gora.sql.store.SqlStore

TheGoraDataStoreclassforstoringandretrieving

data.

Currentlythefollowingstoresareavailable:….

十一、配置完上述步骤后配置命令运行Run Configuation选择org.apache.nutch.crawl.Crawler,参数设置urls-depth 3 -topN 5 和Dhadoop.log.dir=logs-Dhadoop.file=hadoop.log

c44d061ae40bed5b7c8721d3fe48a7e2.png5ceee681a39223c9af2e5920212bbe1f.png

这时候运行会遇到错误Exception in thread “main” java.io.IOException:Failed to set permissions of Path: mphadoop-AdministratormapredstagingAdministrator238829409.staging to 0700

2c6892ff1d62d09c6d5321895c2cd449.png

十二、上述错误一般只是在windows下才会遇到的,所以我们一般会去修改Haddop-core-1.2.0源码中的org.apache.hadoop.hadoop.fs下的FileUtil.java修改其中的CheckReturnValue方法,注释掉其中的内容privatestaticvoidcheckReturnValue(booleanrv,Filep,

FsPermissionpermission)throwsIOException{//if(!rv){//thrownewIOException(“Failedtosetpermissionsofpath:”+p+//“to”+//String.format(“%04o”,permission.toShort()));//}

}

然后编译成java包替换我们工程build/lib下的hadoop-core-1.2.0.jar.

另外一种方法是找到FileUtil.java编译过后的class文件,替换掉jar包中相应的class文件FileUtil.class和FileUtil$CygPathCommand.class(用压缩软件打开直接替换即可)

十三、接下来在运行就没有问题

你会发现mysql数据库中很多记录除了id,status这几个基本字段有数据外其他值都是null,这是正常情况,请注意status字段,

status 记录抓取状态

1unfetched(linksnotyetfetchedduetolimitssetinregex-urlfilter.txt,-TopNcrawlparameters,etc.)

2fetched(pagewassuccessfullyfetched)

3gone(thatpagenolongerexists)

4redir_temp (temporary redirection — see reprUrl below for more details)

5redir_perm(permanentredirection—seereprUrlbelowformoredetails)

34retry

38notmodified

这是因为我们的topN设置太小,所以很多url被限制抓取了(当然还有可能是url被regex-urllfilter过滤了),自己注意一下就好了。到此我们就完成了整个流程的配置和运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值