Nutch在Eclipse上的开发调试环境配置手册

NutchEclipse上的开发调试环境配置手册

Eclipse虽然可以正确导入Nutch的工程目录,但是在执行的时候会由于outputclass路径问题,而造成如classnotfoud或者找不到plugin目录的情况,下面总结一下如何正确的使用Eclipse搭建Nutch的编译和调试环境:

 

工程导入和配置文件修改

1. File->New->Project->Java Project 选择在已有代码目录上创建工程,jdk版本为1.6以上

 

2. LibrariesAdd Class Folderconf文件夹加入,在Order and Export页把conf置顶,Finish

 

3. 分别修改core-site.xml,hdfs-site.xml,mapred-site.xml,nutch-site.xml

core-site.xml

<configuration>

<property>

    <name>fs.default.name</name>

    <value>hdfs://localhost:9000</value>

   </property>

 

<property>

<name>hadoop.tmp.dir</name>

<value>/usr/local/hadoop-0.20.2/usr/tmp</value>

</property>

</configuration>

hdfs-site.xml

<configuration>

<property>

<name>dfs.data.dir</name>

<value>/usr/local/hadoop-0.20.2/usr/data</value>

</property>

 

<property>

<name>dfs.name.dir</name>

<value>/usr/local/hadoop-0.20.2/usr/name</value>

</property>

 

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

</configuration>

mapred-site.xml

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>localhost:9001</value>

</property>

 

<property>

<name>mapred.local.dir</name>

<value>/usr/local/hadoop-0.20.2/usr/mapred</value>

</property>

 

<property>

<name>mapred.map.tasks</name>

<value>40</value>

</property>

 

<property>

<name>mapred.reduce.tasks</name>

<value>4</value>

</property>

</configuration>

nutch-site.xml

<configuration>

<property>

<name>http.agent.name</name>

<value>nutch-1.2</value>

</property>

 

<property>

<name>searcher.dir</name>

<value>/user/root/data</value>

</property>

</configuration>

 

4. 修改masters,slaves,crawl-urlfilter文件,单机伪集群环境下按如下方式配置:

masters

localhost

slaves

localhost

crawl-urlfilter.txt

# skip URLs containing certain characters as probable queries, etc.

#-[?*!@=]

 

# accept hosts in MY.DOMAIN.NAME

#+^http://([a-z0-9]*/.)*MY.DOMAIN.NAME/

+^http://([a-z0-9]*/.)*tgbus.com/

+^http://([a-z0-9]*/.)*csdn.net/

 

5. Ant执行根目录下的build.xmlrun as -> ant build

 

6. build path下,把生成出来的build目录加入到class folder

 

7. 单步调试的方法[1]

a) 单步调试所有map/reduce任务的方法:

修改mapred-site.xml文件中的mapred.job.trackervaluelocal

b) 单步调试某个特定的task的方法:

修改代码,在new JobConf后,加入一行代码:

conf.set("mapred.job.tracker", "local");

 

分步调试Nutch的爬虫和索引过程

Nutch从爬虫到建立索引的整个过程比较复杂,包括多个子过程,如果直接执行crawl命令,会顺序执行从爬虫到建立索引的所有子过程,若出现问题,不易定位和调试。为此,Nutch提供分步执行每个子过程的方法,下面详细说明在EclipseRun Configurations的配置方法:

 

0. 索引目录结构

按照上文的配置,索引文件在hadoop上的根目录为/user/root/data

├─crawldb 

│ └─current

  └─part-00000

├─index

├─indexes

  └─part-00000

├─linkdb 

│ └─current

  └─part-00000

└─segments

└─20101213101132

其中indexindexesnutch搜索时的默认搜索路径,nutch搜索时只能指定索引文件的根目录,不能指定具体的index目录。

 

1. injector过程

Name: 1.injector

Main class: org.apache.nutch.crawl.Injector

Arguments: data/crawldb urls/url1

参数说明:data为建立索引时的根目录,urls为自己建立的存放url入口地址文件的目录

 

2. generator过程

Name: 2.generator

Main class: org.apache.nutch.crawl.Generator

Arguments: data/crawldb data/segments -topN 10

 

3. fetcher过程

Name: 3.fetch

Main class: org.apache.nutch.fetch.Fetcher

Arguments: data/segments/20101213101132

参数说明:20101213101132segments目录下按时间生成的子目录

 

4. updatedb过程

Name: 4.updatedb

Main class: org.apache.nutch.crawl.CrawlDb

Arguments: data/crawldb data/segments/20101213101132

 

5. invertlinks过程

Name: 5.invertlinks

Main class: org.apache.nutch.crawl.LinkDb

Arguments: data/linkdb data/segments/*

 

6. index过程

Name: 6.invertlinks

Main class: org.apache.nutch.crawl.LinkDb

Arguments: data/indexes data/crawldb data/linkdb data/segments/*

VM Arguments: -Xms250m –Xmx512m

参数说明:Data/Indexes目录可随意指定,但搜索时,nutch默认只会检索indexindexes,需要单独测试索引时,可以通过hadooprmr命令删除该目录,再重新单独执行index。增加了中文分词后,执行索引操作时容易出现内存不足的情况,抛出的异常是IO Exception,通过查看hadoop.log可以看到Out of memorylog,因此需要在VM Arguments中增加对Eclipse使用内存的扩展。

 

7. 查看索引状态的方法

a) 查看crawldb

Name: 0.readdb

Main class: org.apache.nutch.crawl.CrawlDbReader

Arguments: data/crawldb -stats

b) 查看segment

Name: 0.readseg

Main class: org.apache.nutch.segment.SegmentReader

Arguments: -list data/segments/20101213101132

 

Reference

[1] http://wiki.apache.org/hadoop/HowToDebugMapReducePrograms

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值