zoukankan      html  css  js  c++  java
  • Nutch1.0或者Nutch1.1如何导入MyEclipse与Eclipse

    Nutch1.0或者Nutch1.1如何导入MyEclipse与Eclipse

    今天浪费了一天的时间花费在这上面,一开始是用Nutch1.1导入在MyEclipse与Eclipse中的,不断的尝试,不断的调试,上网查阅了太多的文章了,发现按他们每一种的方式都会出错,最后还是跟人交流之后,用自己的方式尝试成功了.好了不费话了.下面说说如何成功导入Nutch1.0而不会出错.

    前期准备工作及导入步骤:

    1.下载Cygwin工具:http://www.cygwin.com并安装Cygwin.安装成功后,记得在我的电脑属性中配置环境变量:

    编辑path属性,加入d:cygwin/bin到path中.


    2.下载nutch软件包:

    http://labs.renren.com/apache-mirror//nutch/一般下载bin包即可.


    3.解压刚下载下来的nutch软件包.如,解压位置为:D:\nutch-1.04.在Eclipse或者是在MyEclipse中新建一个Java Project项目, 名字自己定义(Nutch). 选择”Create project from existing source”,指向自己nutch-1.0的目录.

    4.点击下一步,切换到”Libraries”选择”Add Class Folder…” 按钮,从列表中选择”conf”. —->Default Output floder —->Brower-à从Create New Folder中…新建一个新文件夹 output.(这一步跟网上的所有办法都不一样.).

    注意:修改output文件夹下面的nutch-site.xml文件:

    Xml代码  
    1. <property>  
    2.   <name>http.agent.name</name>  
    3.   <value>HD nutch agent</value>  
    4.   <description></description>  
    5. </property>  
    6.   
    7. <property>  
    8.   <name>http.agent.description</name>  
    9.   <value>hpjianhua</value>  
    10. <description></description>  
    11. </property>  
    12.   
    13. <property>  
    14.   <name>http.agent.url</name>  
    15.   <value>http://www.163.com</value>  
    16.   <description></description>  
    17. </property>  
    18.   
    19. <property>  
    20.   <name>http.agent.email</name>  
    21.   <value>hpjianhua@163.com</value>  
    22.   <description></description>  
    23. </property>  

    5.点击Finish 来完成Nutch1.0的导入.

    下面在MyEclipse或者是Eclipse中对Nutch1.0进行修改以去掉项目中提示的错误:

    1.      修改conf文件夹下面的文件:

    1.1修改nutch-site.xml文件:

    Xml代码  
    1. <configuration>  
    2.     <property>  
    3.       <name>http.agent.name</name>  
    4.       <value>nutch</value>  
    5.       <description></description>  
    6.     </property>  
    7.       
    8.     <property>  
    9.       <name>http.agent.description</name>  
    10.       <value>hpjianhua</value>  
    11.     <description></description>  
    12.     </property>  
    13.       
    14.     <property>  
    15.       <name>http.agent.url</name>  
    16.       <value>http://www.163.com</value>  
    17.       <description></description>  
    18.     </property>  
    19.       
    20.     <property>  
    21.       <name>http.agent.email</name>  
    22.       <value>hpjianhua@163.com</value>  
    23.       <description></description>  
    24.     </property>  
    25. </configuration>  

    1.2修改nutch-defaul.xml文件:

    Xml代码  
    1. <property>  
    2.   <name>http.agent.name</name>  
    3.   <value>HD nutch agent</value>  
    4.   <description>HTTP 'User-Agent' request header. MUST NOT be empty -   
    5.   please set this to a single word uniquely related to your organization.  
    6.   
    7.   NOTE: You should also check other related properties:  
    8.   
    9.     http.robots.agents  
    10.     http.agent.description  
    11.     http.agent.url  
    12.     http.agent.email  
    13.     http.agent.version  
    14.   
    15.   and set their values appropriately.  
    16.   
    17.   </description>  
    18. </property>  

    1.3修改crawl-urlfilter.txt文件:

    Xml代码  
    1. # accept hosts in MY.DOMAIN.NAME  
    2. +^http://([a-z0-9]*\.)*163.com/  

    如果是Nutch1.1可以跳过下面的2 , 3, 4,直接跑到第5步继续!

     

    2.      下载MP3跟rtf的jar文件

    http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-mp3/lib/

    http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-rtf/lib/

    分别拷贝到src/plugin/parse-mp3/lib 和 src/plugin/parse-rtf/lib/文件夹下

    3.      刷新几下,右键选择工程文件夹,选择Build Path->Configure Build Path…在弹出的窗口上,切换到Libraries,选择Add Jars…,添加刚才下载的jar文件到工程。

    4.到这一步,一般的工程都会有两个错误,nutch的official 1.0 release版本中,这两个问题因为licensing issues没有修复。

    接下来的就是最关键的部分了

    Java代码  
    1. 修改—-  src\plugin\parse-rtf\src\java\org\apache\nutch\parse\rtf下RTFParseFactory.java  
    2. 添加—– import org.apache.nutch.parse.ParseResult;  
    3. 将  —– public Parse getParse(Content content) {  
    4. 改为—- public ParseResult getParse(Content content) {  
    5. 将  —- return new ParseStatus(ParseStatus.FAILED,  
    6. ParseStatus.FAILED_EXCEPTION,  
    7. e.toString()).getEmptyParse(conf);  
    8. 改为—–return new ParseStatus(ParseStatus.FAILED,  
    9. ParseStatus.FAILED_EXCEPTION,  
    10. e.toString()).getEmptyParseResult(content.getUrl(), getConf());  
    11. 将——return new ParseImpl(text,  
    12. new ParseData(ParseStatus.STATUS_SUCCESS,  
    13. title,  
    14. OutlinkExtractor.getOutlinks(text, this.conf),  
    15. content.getMetadata(),  
    16. metadata));  
    17. 改为——return ParseResult.createParseResult(content.getUrl(),  
    18. new ParseImpl(text,  
    19. new ParseData(ParseStatus.STATUS_SUCCESS,  
    20. title,  
    21. OutlinkExtractor.getOutlinks(text, this.conf),  
    22. content.getMetadata(),  
    23. metadata)));  
    24. 修改——src\plugin\parse-rtf\src\test\org\apache\nutch\parse\rtf下的TestRTFParser.java  
    25. 将—–parse = new ParseUtil(conf).parseByExtensionId(“parse-rtf”, content);  
    26. 改为—-parse = new ParseUtil(conf).parseByExtensionId(“parse-rtf”, content).get(urlString); 到这一步,eclipse上面的工程就会没有错误了 .  

    5.在nutch1.0的目录下新建立一个文件夹urls,然后再在urls中建立一个文本文件url. 写上链接。注意后面要有 “/”.

    6.运行Nutch1.0:

    选择Run->Run As->Java Application在弹出的Select Java Application上选择Crawl-org.apache.nutch.crawl. 接下来,

    选择 Run->Run Configurations…在左边的Java Application下面会有Crawl这一项,选择它,

    切换到Arguments,Program Arguments的内容就是要设置的参数,填上urls -dir crawl -depth 3 -topN 50(这里视自己的具体情况而定,urls为链接)

    在VM arguments下面填上-Dhadoop.log.dir=logs -Dhadoop.log.file=hadoop.log.

    直接运行吧:看在你的控制台上出现信息了没.

    注意:关于Java Heap Size的问题,查看logs/hadoop.log或控制台输出,如果出现类似java.lang.OutOfMemoryError: Java heap space语句,

    解决方法:

    设置Eclipse -> Window -> Preferences -> Java -> Installed JREs -> edit -> Default VM arguments

    7.设置为-Xms256m -Xmx1024m,其中Xms为最小内存,Xmx为最大内存

  • 相关阅读:
    【Anagrams】 cpp
    【Count and Say】cpp
    【Roman To Integer】cpp
    【Integer To Roman】cpp
    【Valid Number】cpp
    重构之 实体与引用 逻辑实体 逻辑存在的形式 可引用逻辑实体 不可引用逻辑实体 散弹式修改
    Maven项目聚合 jar包锁定 依赖传递 私服
    Oracle学习2 视图 索引 sql编程 游标 存储过程 存储函数 触发器
    mysql案例~tcpdump的使用
    tidb架构~本地化安装
  • 原文地址:https://www.cnblogs.com/cy163/p/2911114.html
Copyright © 2011-2022 走看看