nutch+hadoop 配置使用

配置nutch+hadoop 
1,下载nutch。如果不需要特别开发hadoop,则不需要下载hadoop。因为nutch里面带了hadoop core包以及相关配置 
2,建立目录(根据自己喜好) 
/nutch 
/search       (nutch installation goes here) nutch安装到这里,也就是解压到这里 
/filesystem hadoop的文件系统存放点 
/local /crawl后放置索引用来search用的 
/home     (nutch user's home directory)  如果你用系统用户,这个基本没用 
/tomcat 启动nutch.war用来search索引的app 

3,conf/hadoop-env.sh   一定要配置JAVA_HOME,否则系统起不来 
4,配置master和slave的ssh,否则每次都要输入passwd 
ssh-keygen -t rsa 
然后回车即可 
cp id_rsa.pub authorized_keys 
(copy到其它的slave上)scp /nutch/home/.ssh/authorized_keys nutch@devcluster02:/nutch/home/.ssh/authorized_keys 
5,将bin和conf下所有的.sh、 nuch、 hadoop文件  dos2unix 
dos2unix /nutch/search/bin/*.sh /nutch/search/bin/hadoop 

配置hadoop-size.xml 
6,记住要把master文件从nutch/hadoop  copy到这个nutch中,应该是bug。也就是说启动需要这个文件,文件内容为默认的localhost即可(如果是分布式,可能需要配置) 
7,格式化namenode 
bin/hadoop namenode -format 
8,启动:bin/start-all.sh 
9,配置crawl  (以配置一个网址 lucene.apache.org为例) 
cd /nutch/search 
mkdir urls 
vi urls/urllist.txt        http://lucene.apache.org 

cd /nutch/search 
bin/hadoop dfs -put urls urls 

cd /nutch/search 
vi conf/crawl-urlfilter.txt 
change the line that reads:   +^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/ 
to read:                      +^http://([a-z0-9]*\.)*apache.org/ 
10,启动crawl 
bin/nutch crawl urls -dir crawled -depth 3 
11,查询 
bin/hadoop dfs -copyToLocal crawled /media/do/nutch/local/(crawled)   将index的东西copy到以上配置的local中,因为search不能用dfs中搜索(从文档看是这样) 
12,启动nutch.war,测试 
vi nutch-site.xml    nutch.war中classes下 
start tomcat 

注意点: 
1,masters文件 nutch原来没有,需要copy到conf下 
2,crawl的log4j配置默认有问题,需要增加: 
hadoop.log.dir=. 
hadoop.log.file=hadoop.log 
3,nutch1.0 一定要配置nutch-site.xml。重新配置http.agent。default.xml里面已经存在。 

问题: 
1,运行hadoop程序时, 中途我把它终止了,然后再向hdfs加文件或删除文件时,出现Name node is in safe mode错误: 
rmr: org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Name node is in safe mode 
解决的命令: 
bin/hadoop dfsadmin -safemode leave #关闭safe mode 

索引命令:    
bin/nutch index plainindex/paodingindexes plainindex/crawldb plainindex/linkdb plainindex/segments/20090528132511 plainindex/segments/20090528132525 plainindex/segments/20090528132602 

eg: 
index: 
bin/nutch index crawled/indexes_new crawled/crawldb crawled/linkdb crawled/segments/20100313132517 

merge: 
bin/nutch merge crawled/index_new crawled/indexes_new 

去重 dedup: 
bin/nutch dedup crawled/index_new 

中文分词: 
1.对建立索引所用分词工具的修改 

将下载的中文分词包放到lib目录下,改名为analysis-zh.jar(当然,你也可以不用改)。找到下面文件 

src\java\org\apache\nutch\analysis\NutchDocumentAnalyzer.java 

修改tokenStream方法如下 

public TokenStream tokenStream(String fieldName, Reader reader) { 
Analyzer analyzer; 
analyzer= new MMAnalyzer(); 
return analyzer.tokenStream(fieldName, reader); 


注意:由于加入信息的分析类,你需要将该类导入。使用如下语句。 

import jeasy.analysis.*; 

2.对查询所用分析部分的修改 

src\java\org\apache\nutch\analysis\中的NutchAnalysis.jj文件 

将 <SIGRAM: <CJK> > 

改为:| <SIGRAM: (<CJK>)+ > 

使用javacc工具将NutchAnalysis.jj生成java文件,共会生成7个java文件,将他们拷贝到下面的文件夹中替 换原有文件。 

src\java\org\apache\nutch\analysis 

如何安装与使用javacc? 

下载javacc并解压,然后将javacc的主目录添加到环境变量下。进入命令行,输入javacc,如果不出现不能识别该命令之类的说法,证明安装成功。 

进入NutchAnalysis.jj文件所在的目录,输入javacc NutchAnalysis.jj命令就会生成7个java文件了。 

3.重新编译工程文件 

这里你需要用到ant工具了,那么ant工具怎么安装呢? 

ant的安装与配置与 javacc类似,下载后解压,然后在path环境变量中加如指向ant下的bin文件夹的路径。 

使用:从命令行进入nutch目录中,输入ant命令,它会自动根据当前目录下的build.xml进行重建。重建完毕后会在改目录下产生一个build文件夹。 

4.重建后的文件替换 

一、将nutch-0.x.x.job文件拷贝出来替换nutch目录下的同名文件。 

二、将\build\classes\org\apache\nutch\analysis目录下的所有文件拷贝替换nutch-0.x.x.jar中org\apache\nutch\analysis目录下的文件。

三、将nutch-0.x.x.jar文件和你的分词包(我的是analysis-zh.jar)拷贝到tomcat中WEB-INF\lib下面。 

5.重新爬行与建立索引,重新启动tomcat即可。 

nutch搜索url过滤规则: 
对于每一次(由depth决定)对url进行filter,所以要搜子页面,首页一定要通过filter,否则搜索不到。 
详见:http://hi.baidu.com/ldl_java/blog/item/84d1427894231ee62f73b30a.html

nutch+hadoop 配置使用的更多相关文章

  1. 【Nutch2.3基础教程】集成Nutch/Hadoop/Hbase/Solr构建搜索引擎:安装及运行【集群环境】

    1.下载相关软件,并解压 版本号如下: (1)apache-nutch-2.3 (2) hadoop-1.2.1 (3)hbase-0.92.1 (4)solr-4.9.0 并解压至/opt/jedi ...

  2. Nutch+Hadoop集群搭建

    转载自:http://www.open-open.com/lib/view/open1328670771405.html 1.Apache Nutch    Apache Nutch是一个用于网络搜索 ...

  3. 一个大数据方案:基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎

    网络爬虫架构在Nutch+Hadoop之上,是一个典型的分布式离线批量处理架构,有非常优异的吞吐量和抓取性能并提供了大量的配置定制选项.由于网络爬虫只负责网络资源的抓取,所以,需要一个分布式搜索引擎, ...

  4. 【架构】基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎

    网络爬虫架构在Nutch+Hadoop之上,是一个典型的分布式离线批量处理架构,有非常优异的吞吐量和抓取性能并提供了大量的配置定制选项.由于网络爬虫只负责网络资源的抓取,所以,需要一个分布式搜索引擎, ...

  5. Nutch+Hadoop集群搭建 分类: H3_NUTCH 2015-01-18 10:55 362人阅读 评论(0) 收藏

    转载自:http://www.open-open.com/lib/view/open1328670771405.html 1.Apache Nutch    Apache Nutch是一个用于网络搜索 ...

  6. 基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎

    基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎 网络爬虫架构在Nutch+Hadoop之上,是一个典型的分布式离线批量处理架构,有非常优异的吞吐量和抓取性能并 ...

  7. hadoop配置优化

    yarn-site.xml <property> <name>yarn.nodemanager.resource.memory-mb</name> <valu ...

  8. hadoop配置错误

    经过上一周的郁闷期(拖延症引发的郁闷),今天终于开始步入正轨了.今天主要是解决hadoop配置的错误以及网络时断时续的问题. 首先说明一下之前按照这篇文章的方法配置完全没有问题,但是等我配置好了发现h ...

  9. Hadoop 配置好hive,第一次在conf能进入,第二次就不行了,怎么办?

    问题描述: 在 Hadoop 配置好 hive 数据仓库,在conf目录下通过hive命令进入hive数据仓库,非常顺利.  但关闭终端,第二次按这种方式却显示,无次命令. 怎么办? 解决办法: 在h ...

随机推荐

  1. 利用Selenium实现图片文件上传的两种方式介绍

    在实现UI自动化测试过程中,有一类需求是实现图片上传,这种需求根据开发的实现方式,UI的实现方式也会不同. 一.直接利用Selenium实现 这种方式是最简单的一种实现方式,但是依赖于开发的实现. 当 ...

  2. oracle(cast , to_char , to_date )用法

    cast : cast(要转换的值 AS 转换的类型) From To BINARY_FLOAT, BINARY_DOUBLE To CHAR, VARCHAR2 To NUMBER To DATET ...

  3. Spring Boot 第一个demo

    Sring boot  一直没有使用过,跳槽来到新公司,暂时没有事情就学习一下. Spring boot  这里采用的是maven 来创建的 maven项目的pom.xml 文件 <?xml v ...

  4. [SharePoint][SharePoint Designer 入门经典]Chapter10 Web部件链接

    本章概要: 1.Web部件作用 2.如何添加和配置 3.如何个性化 4.如何导出,并在其他站点重利用 5.通过组合web part创建复杂的用户界面

  5. Android漫游记(6)---APP启动之旅(I)

    Android基于Linux2.6+内核,我们看一张图,以对Android系统的架构有个感性的认识. 我们从Kernel层简单说明: 1.Kernel层:基于Linux2.6+内核.同一时候做了一些嵌 ...

  6. HBase读取代码

    HBase读取代码 需要的jar包: activation-1.1.jar aopalliance-1.0.jar apacheds-i18n-2.0.0-M15.jar apacheds-kerbe ...

  7. JavaScript的那些坑之变量提升

    想总结一下JS的变量提升特性,都是由于一道题.先上题. var name = 'World!'; (function () { if (typeof name === 'undefined') { v ...

  8. Suffix Array 后缀数组

    后缀数组 顾名思义.SuffixArray(下面有时简称SA) 和字符串的后缀有关. 后缀:字符串中某个位置一直到结尾的子串.(SA中讨论包含了原串和空串).所以共同拥有len+1个后缀. 后缀数组: ...

  9. PBKDF2加密的实现

    PBKDF2(Password-Based Key Derivation Function). 通过哈希算法进行加密.由于哈希算法是单向的,能够将不论什么大小的数据转化为定长的"指纹&quo ...

  10. Spyder调试快捷键

    Ctrl+1:  注释.取消注释 Ctrl+4/5:  块注释 / 取消块注释 F12: 断点 / 取消断点 F5: 运行 Ctrl+F5: 启动调试 Ctrl+F10: 单步调试,跳过函数内部实现 ...