zoukankan      html  css  js  c++  java
  • nutch+hadoop 配置使用

    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(当然,你也可以不用改)。找到下面文件 

    srcjavaorgapache utchanalysisNutchDocumentAnalyzer.java 

    修改tokenStream方法如下 

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


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

    import jeasy.analysis.*; 

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

    srcjavaorgapache utchanalysis中的NutchAnalysis.jj文件 

    将 <SIGRAM: <CJK> > 

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

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

    srcjavaorgapache utchanalysis 

    如何安装与使用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目录下的同名文件。 

    二、将uildclassesorgapache utchanalysis目录下的所有文件拷贝替换nutch-0.x.x.jar中orgapache utchanalysis目录下的文件。

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

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




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

  • 相关阅读:
    Codeforces Round #619 (Div. 2) ABC 题解
    Codeforces Round #669 ABC 题解
    中大ACM个人赛 ABC题题解
    Codeforces Round #601 (Div. 2) ABC 题解
    SCAU 2019年校赛 部分题解
    SCAU 2018年新生赛 初出茅庐 全题解
    Educational Codeforces Round 74 (Rated for Div. 2) ABC 题解
    Codeforces Round #603 (Div. 2) ABC 题解
    【题解】 CF767E Change-free 带悔贪心
    【题解】 NOIp2013 华容道 最短路+状态压缩 Luogu1979
  • 原文地址:https://www.cnblogs.com/jpfss/p/7896962.html
Copyright © 2011-2022 走看看