`
peigang
  • 浏览: 170533 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Nutch1.7二次开发培训讲义

 
阅读更多

Nutch二次开发,开发阶段用什么操作系统都可以,只要有JDKEclipse即可,源代码的管理需要使用一个集中的版本控制系统,可以使用SVNGIT,建议采用Bitbucket免费的私有库托管。如果想阶段性地在Hadoop集群上面试运行,需要搭建一个Hadoop伪分布式集群或完全分布式集群,开发组可以共用一个集群。

 

1、下载并解压eclipse(集成开发环境)

    使用Standard

    下载地址:Eclipse Standard 4.3.2 For Windows 64Bit

              Eclipse Standard 4.3.2 For Windows 32Bit

              其他操作系统版本

 

2、安装Subclipse插件(SVN客户端)

    Help >Install new software… > Add… > Name:subclipse > Location: http://subclipse.tigris.org/update_1.8.x > 选中 Subclipse and SVNKit > Next> Next >选中I accept … > Finish > continue? OK> restart? > Yes

 

3、安装IvyDE插件(下载依赖Jar

   Help > Installnew software… > Add… > Name:ivyde > Location: http://www.apache.org/dist/ant/ivyde/updatesite/ >选中Apache Ivy Library and Apache IvyDE Eclipseplugins > Next > Next >选中I accept … > Finish> continue? OK > restart? > Yes

 

4、签出代码

    File >New > Project > SVN > SVN 检出项目 > Next >选中 创建新的资源库位置 > Next > URLhttps://svn.apache.org/repos/asf/nutch/tags/release-1.7/> Next >选中URL > Finish > 弹出New Project向导,选择JavaProject > Next > 输入Projectnamenutch1.7 > Finish > 确认覆盖? OK

 

5、配置文件编码和环境变量

    在左部Package Explorer nutch1.7文件夹上单击右键 > Properties > 左边选中Resource> 右边Text file encoding > 选中other > 值为:UTF-8

    在左部Package Explorer nutch1.7文件夹上单击右键 > Build Path > Configure Build Path... > 选中Source选项 > 选择src > Remove > Add Folder... > 选择src/java, src/test src/testresources可选:对于插件,需要选中src/plugin目录下的每一个插件目录下的src/java src/test文件夹 > OK

    切换到Libraries选项 >

    Add ClassFolder... > 选中nutch1.7/conf > OK

    AddLibrary... > IvyDE Managed Dependencies > Next > Main > Ivy File:> Project… > 选中nutch1.7/ivy/ivy.xml > 0K >Finish可选:对于插件,还需要:Add JARs... >  IvyDEManaged Dependencies > Next > Main > Ivy File: > Project… > 选中nutch1.7/src/plugin/xxx/ivy.xml > OK,把这里的xxx替换为相应的插件名称

    切换到Order and Export选项>

   选中conf > Top(重要!)

 

6、执行ANT下载依赖构建项目

    在左部Package Explorer nutch1.7文件夹下的build.xml文件上单击右键 > Run As > Ant Build> BUILD SUCCESSFUL > 生成nutch1.7/build/apache-nutch-1.7.job

    nutch1.7\runtim目录下生成两个目录deploylocal,他们用于生产环境,跟二次开发没什么关系,deploy依赖Hadooplocal不依赖Hadoop

    在左部Package Explorer nutch1.7文件夹上单击右键 > Refresh

    在左部Package Explorer nutch1.7文件夹上单击右键 > Build Path > Configure Build Path... > 选中Libraries选项 > Add Class Folder... > 选中build > OK

 

7、修改配置文件

    nutch1.7/conf下不存在nutch-site.xml,则将nutch1.7/conf/nutch-site.xml.template复制一份改名为nutch1.7/conf/nutch-site.xml

    nutch1.7/conf下不存在regex-urlfilter.txt,则将nutch1.7/conf/regex-urlfilter.txt.template复制一份改名为nutch1.7/conf/regex-urlfilter.txt

    如新增了文件,则在左部Package Explorer nutch1.7文件夹上单击右键 > Refresh

    配置nutch-site.xml,新增:

<property>

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

         <value>nutch-crawler</value>

</property>

<property>

         <name>http.content.limit</name>

         <value>-1</value>

</property>

<property>

       <name>db.max.outlinks.per.page</name>

       <value>10000</value>

</property>

    配置regex-urlfilter.txt,将

# acceptanything else

+.

    替换为:

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

-.

8、开发运行调试

    在左部Package Explorer nutch1.7文件夹上单击右键 > New > Folder > Folder name: urls

    在刚新建的urls目录下新建一个文本文件url,文本内容为:http://news.163.com

    打开src/java下的org.apache.nutch.crawl.Crawl.java类,单击右键Run As > Java Application > Console显示:Usage:Crawl <urlDir> -solr <solrURL> [-dir d] [-threads n] [-depth i][-topN N]

    Crawl类上重新单击右键Run As > RunConfigurations… > Arguments > Programarguments输入框中输入: urls -dir data -depth 3 > Run

    windows环境中如果抛出异常Failed to set permissions of path,则需要下载修改过的hadoop,替换nutch依赖的hadoop。下载地址:http://pan.baidu.com/s/1o60QtD4,因为nutch1.7依赖的hadoop版本为1.2.0,提供下载的是1.2.1,所以将下载的hadoop拷贝到ivy本地存储库C:/Users/ysc/.ivy2/cache/org.apache.hadoop/hadoop-core/jars目录,删除原来的1.2.0,将1.2.1改为1.2.0

    在需要调试的地方打上断点Debug As > Java Applicaton

 

9、查看结果

    查看segments目录:

    打开src/java下的org.apache.nutch.segment.SegmentReader.java

    单击右键Run As > Java Applicaton,控制台会输出该命令的使用方法

    单击右键Run As > Run Configurations > Arguments > Program arguments输入框中输入: -dumpdata/segments/*  data/segments/dump

    用文本编辑器打开文件data/segments/dump/dump查看segments中存储的信息

 

    查看crawldb目录:

    打开src/java下的org.apache.nutch.crawl.CrawlDbReader.java

    单击右键Run As > Java Applicaton,控制台会输出该命令的使用方法

    单击右键Run As > Run Configurations > Arguments > Program arguments输入框中输入:data/crawldb -stats

    控制台会输出 crawldb统计信息

 

    查看linkdb目录:

    打开src/java下的org.apache.nutch.crawl.LinkDbReader.java

    单击右键Run As > Java Applicaton,控制台会输出该命令的使用方法

    单击右键Run As > Run Configurations > Arguments > Program arguments输入框中输入:data/linkdb -dump data/linkdb_dump

    用文本编辑器打开文件data/linkdb_dump/part-00000查看linkdb中存储的信息

 

10、全网分步骤抓取(可选)

    在左部Package Explorer nutch1.7文件夹下的build.xml文件上单击右键 > Run As > Ant Build

    cd  /home/ysc/workspace/nutch1.7/runtime/local

    #准备URL列表

    wgethttp://rdf.dmoz.org/rdf/content.rdf.u8.gz

    gunzipcontent.rdf.u8.gz

    mkdir dmoz

    bin/nutchorg.apache.nutch.tools.DmozParser content.rdf.u8 -subset 5000 > dmoz/url

    #注入URL

    bin/nutchinject crawl/crawldb dmoz

    #生成抓取列表

    bin/nutchgenerate crawl/crawldb crawl/segments

    #第一次抓取,s1是最新产生的segment

    s1=`ls -d crawl/segments/2* | tail -1`

    echo $s1

    #抓取网页

    bin/nutchfetch $s1

    #解析网页

    bin/nutchparse $s1

    #更新URL状态

    bin/nutchupdatedb crawl/crawldb $s1

    #第二次抓取,生成抓取列表,s2是最新产生的segment

    bin/nutchgenerate crawl/crawldb crawl/segments -topN 1000

    s2=`ls -d crawl/segments/2* | tail -1`

    echo $s2

    bin/nutchfetch $s2

    bin/nutchparse $s2

    bin/nutchupdatedb crawl/crawldb $s2

    #第三次抓取,生成抓取列表,s3是最新产生的segment

    bin/nutchgenerate crawl/crawldb crawl/segments -topN 1000

    s3=`ls -d crawl/segments/2* | tail -1`

    echo $s3

    bin/nutchfetch $s3

    bin/nutchparse $s3

    bin/nutchupdatedb crawl/crawldb $s3

    #生成反向链接库

    bin/nutchinvertlinks crawl/linkdb -dir crawl/segments

    #建索引

    bin/nutchsolrindex http://localhost:8983/solr/collection1 data/crawldb -linkdbdata/linkdb -dir data/segments

 

    bin/crawl提供了更简单的增量抓取脚本

 

11、索引和搜索

       下载解压solr,为了查看索引文件的格式,使用solr-4.6.1

       下载地址:http://pan.baidu.com/s/1hqxEFxq

                   

    #配置solr core

    复制nutchconf目录中的schema-solr4.xml文件到solr-4.6.1/example/solr/collection1/conf目录,覆盖名为schema.xml的文件 

    修改solr-4.6.1/example/solr/collection1/conf/schema.xml,在<fields>下增加:<fieldname="_version_" type="long" indexed="true"stored="true"/> 

    #配置中文分词

    下载中文分词依赖的Jarhttp://pan.baidu.com/s/1i37gcg1

    创建目录solr-4.6.1/example/solr/lib,并将下载下来的压缩文件中的3jar文件提取出来放到该目录

    修改文件solr-4.6.1/example/solr/collection1/conf/schema.xml        

         将字段类型text_generalanalyzerindexquerytokenizer分别改为:

       <tokenizerclass="org.ansj.solr.AnsjTokenizerFactory"conf="ansj.conf"/>

      

       <tokenizerclass="org.ansj.solr.AnsjTokenizerFactory"analysisType="1"/>

       创建文件solr-4.6.1/example/solr/collection1/conf/ansj.conf,输入:

lastupdate=123

files=dic/customDic.txt

    创建文件dic/customDic.txt,这就是自定义用户词典

         #启动SOLR服务器

       运行Jar文件:solr-4.6.1/example/start.jar

       #浏览器管理界面

       http://localhost:8983/solr

    http://localhost:8983/solr/#/colletion1

 

12、查看索引信息

    下载Luke(Lucene Index Toolbox)http://pan.baidu.com/s/1bn6CuQV  

    将索引文件solr-4.6.1/example/solr/collection1/data/index复制一份到其他目录,删除文件write.lock

    File >Open Lucene Index > 选择复制的索引文件路径

 

13、插件开发

    复制nutch1.7/src/plugin/parse-html,重命名为parse-jsoup,去掉对lib-nekohtml的依赖,修改build.xmlivy.xmlplugin.xml,依赖的jarjsoup配置到ivy.xml

    修改nutch1.7/src/plugin/build.xml,加入新的插件parse-jsoup的配置,以便构建的时候能编译新的插件,有3个配置项,参考parse-html

    将新插件加入Build PathSourceLibraries

    修改nutch1.7/conf/parse-plugins.xml,加入mimeTypealias

分享到:
评论

相关推荐

    Nutch1.7二次开发培训讲义 之 腾讯微博抓取分析

    ### Nutch 1.7 二次开发培训讲义之腾讯微博抓取分析 #### 一、概述 Nutch 是一个开源的网络爬虫项目,它提供了灵活的数据抓取能力,并支持二次开发定制功能。本篇培训讲义主要针对的是如何使用 Nutch 1.7 版本对...

    Apache Nutch 1.7 在windows和Linux下的安装

    Apache Nutch 1.7 在 Windows 和 Linux 下的安装 Apache Nutch 1.7 是一个开源的网络爬虫和搜索引擎项目,它可以对互联网上的网页进行爬取、索引和搜索。本文将详细介绍 Apache Nutch 1.7 在 Windows 和 Linux 下的...

    Apache Nutch 1.7 学习总结

    4. **Nutch1.7 测试** - 初始化Nutch的配置文件,根据需求修改`conf/nutch-site.xml`。 - 运行Nutch的基本命令,如抓取种子URL (`bin/nutch inject`), 分析网页 (`bin/nutch fetch`), 解析内容 (`bin/nutch parse`...

    nutch1.7 爬虫

    一个已经部署好的 nutch1.7爬虫。 导入到 eclipse里面就能用了。假如不能用的话。 还是装个cygwin 吧 找到org.apache.nutch.crawl.Crawl 这个类。 run configuration 在 Programa argument 里面 输入 crawl urls -...

    Nutch 1.7 Windows 批处理脚本

    Nutch 脱离Cygwin直接在Windows下运行。 修正批处理最大只能直接传9个参数的问题。

    apache-nutch-1.7-src.tar.gz

    总的来说,Apache Nutch 1.7提供了完整的网络爬虫和搜索引擎框架,适用于研究、数据分析以及自定义搜索应用的开发。通过深入学习和理解Nutch的源代码,你可以定制自己的爬虫策略,优化索引性能,甚至构建企业级的...

    nutch二次开发学习笔记

    我们需要去抓取网页数据的时候我们就用nutch来爬取,我们对它进行二次开发使其更加符合我们的需求

    Nutch搜索引擎培训讲义

    ### Nutch 搜索引擎培训讲义关键知识点解析 #### 一、Nutch 1.2 版本配置与运行步骤 1. **环境搭建** - 在进行配置之前,确保已经安装了必要的软件,如Java环境(推荐使用Java 1.6以上版本)、Eclipse等开发工具...

    Lucene+nutch搜索引擎开发 PDF 2/2

    完整的《Lucene+nutch搜索引擎开发》pdf版一共有83.6M,无奈我上传的上限是80M,所以切成两个。这个是副文件,还有个主文件http://download.csdn.net/detail/spring123tt/4361166 ,解压时,将两个文件放在一起解压...

    nutch初体验

    **二、Nutch的工作流程** Nutch的工作流程主要包括以下几个步骤: 1. **种子URL生成**:首先,你需要提供一组起始URL(种子),Nutch将从这些URL开始爬取。 2. **网页抓取**:Nutch使用高效的HTTP客户端库下载...

    Nutch插件开发文档

    #### 二、Nutch插件开发基础 为了更好地理解Nutch插件的开发过程,我们需要先了解几个关键的概念: 1. **Pluggable接口**:这是所有扩展点必须实现的一个通用接口,用于确定一个类是否能够作为插件集成到Nutch框架...

    nutch开发资料 搜索引擎

    开发者可以通过阅读源码理解其内部机制,并进行二次开发。 6. **Hadoop集成**:Nutch充分利用了Hadoop的分布式计算能力,将大型数据集的处理分布到多台机器上。Hadoop MapReduce框架用于处理大规模数据的索引和搜索...

    Nutch相关框架视频教程 讲义 杨尚川

    #### 二、Nutch的依赖管理与源代码管理 - **依赖管理**:自1.2版本以后,Nutch采用了**Ivy**作为其依赖管理工具。Ivy是一个Apache项目下的开源工具,它能够方便地管理Java项目的依赖关系,简化了构建过程中的依赖...

    分布式搜索引擎nutch开发

    分布式搜索引擎Nutch开发详解 Nutch是一款开源的、基于Java实现的全文搜索引擎,它主要用于构建大规模的网络爬虫系统,并提供了对抓取的网页进行索引和搜索的功能。Nutch与Hadoop紧密集成,能够充分利用分布式计算...

    Lucene.Nutch搜索引擎开发

    学习Lucene和Nutch的入门书籍,学习搜索引擎开发值得一看的书籍

    Lucene+nutch搜索引擎开发.part1.rar

    Lucene nutch 搜索引擎开发 Part1

    nutch Windows版脚本

    该批处理文件是bin\nutch的Windows版本 ...之前发的 hadoop-core-1.2.1.jar 一起使用, 即可解决nutch不借助cgywin...该批处理基于 nutch 1.7 改写。 使用方法: 直接把此批处理放于bin目录下,用bin\nutch.bat 即可执行

    Lucene+nutch搜索引擎开发

    完整的《Lucene+nutch搜索引擎开发》PDF版一共83.6M,无奈我上传的最高限是80M,所以切成两个。这一个是主文件,还需要下载一个副文件Lucene+nutch搜索引擎开发.z01。解压时直接放到一起,解压这个主文件就行了。

Global site tag (gtag.js) - Google Analytics