Nutch的配置过程,及导入Eclipse的步骤

1. 安装jdk 略 

2.安装eclipse略

3.Cygwin的下载 参考资料:http://hi.baidu.com/shirdrn/item/3961643c9e8d9bfc96f88da5

4.Cygwin安装地址不能有空格。

5.配置一下环境变量,环境变量的设置中一定要将JDK的安装根目录设置为JAVA_HOME,然后再设置CLASSPATH,PATH,即:%JAVA_HOME%/bin,%JAVA_HOME%/lib,千万不要设置为绝对目录,否则在执行Nutch命令时会出现错误,加入NUTCH_JAVA_HOME的变量,值跟JAVA_HOME的一样

6.安装nutch0.9解压后目录为:d:\nutch-0.9

扫描二维码关注公众号,回复: 701788 查看本文章

下载jid3lib-0.5.1.jar和rtf-parser.jar两个文件分别拷贝src/plugin/parse-mp3/lib src/plugin/parse-rtf/lib/

7.打开Cygwin Terminal,cd d:/ 回车    cd nutch-0.9 回车  cd bin/nutch .如果 cd bin/nutch 出现错误,我是重新安装了一次Cygwin。

8.在D:\nutch-0.9下新建urls文件夹,在新建url.txt  写入http://www.aicent.net/    

注意:必须有最后的/

9.在conf/crawl-urlfilter.txt 加入以下信息:利用正则表达式对网站url抓取筛选

# accept hosts in MY.DOMAIN.NAME
+^
# skip everything else
-.

10.nutch-site.xml 设置如下:
   <configuration>
<property>
    <name>http.agent.name</name>
    <value>test/unique</value>
</property>
</configuration>

11.执行bin/nutch crawl urls -dir sina -depth 3 -threads 1 -topN 100

开始抓取,抓取结束后会在d:\nutch-0.9下出现sina。

 12.

将nutch目录的nutch-0.9.war复制到tomcat\webapps下,运行tomcat.生成nutch-0.9文件夹

.修改nutch-0.9/WEB-INF/classes/nutch-site.xml

<property>
<name>searcher.dir</name>
<value>D:\Cygwin\nutch-0.9\sina</value>
</property>

其中的"<value>D:\Cygwin\nutch-0.9\sina</value>"部分,应根据自己的设置进行相应修改,是nutch抓取结果存放目录。

启动Tomcat,打开浏览器在地址栏中输入:http://localhost:8080/nutch-0.9,即可看见nutch的搜索页面。

输入n即可看到搜索结果。

 参考资料:http://www.cnblogs.com/streamhope/archive/2011/07/27/2118397.html

问题汇总:


 

Exception in thread "main" java.io.IOException: Job failed! 
        at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:604) 
        at org.apache.nutch.crawl.Injector.inject(Injector.java:162) 
        at org.apache.nutch.crawl.Crawl.main(Crawl.java:115)

情况一:说明:一般为crawl-urlfilters.txt中配置问题,比如过滤条件应为 
+^http://www.ihooyo.com ,而配置成了 http://www.ihooyo.com 这样的情况就引起如上错误。

 

情况二:执行set JAVA_OPTS= -Xms32m -Xmx512m

 

2:http://127.0.0.1:8080/nutch-0.9
 输入n进行查询,结果报错:
 HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: /search.jsp(151,22) Attribute value  language + "/include/header.html" is quoted with " which must be escaped when used within the value
 org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
 org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
 org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:198)
 org.apache.jasper.compiler.Parser.parseQuoted(Parser.java:299)
 org.apache.jasper.compiler.Parser.parseAttributeValue(Parser.java:249)
 org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:211)
 org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:154)
 org.apache.jasper.compiler.Parser.parseInclude(Parser.java:867)
 org.apache.jasper.compiler.Parser.parseStandardAction(Parser.java:1134)
 org.apache.jasper.compiler.Parser.parseElements(Parser.java:1461)
 org.apache.jasper.compiler.Parser.parse(Parser.java:137)
 org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
 org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
 org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:170)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
 org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.

分析:查看nutch Web应用根目录下的search.jsp可知,是引号匹配的问题。

<jsp:include page="<%= language + "/include/header.html"%>"/>  //line 152 search.jsp

第一个引号和后面第一个出现的引号进行匹配,而不是和这一行最后一个引号进行匹配,所以问题就出现了。

解决方法:

替换成
<jsp:include page="<%= language + \"/include/header.html\"%>"/>

修改完成后,为确保修改成功,重启一下Tomcat服务器,进行搜索,不再报错。

导入到Eclipse中

①在Eclipse中添加File > New > Project > Java project。
project name随便,选择 “Create project from existing source” ,在browse中选nutch的解压路径,如D:\nutch-1.2

②在“Add Class Folder” 中选择 conf 文件夹。

③然后再定义一个“Default ouput folder” ,名称任意。注意不能选bin文件夹,因为如果选了bin文件夹做为Default output folder 编译时会清空该文件夹,bin下的其他文件会被删掉,导致其他问题。

④Finish.

3.修改Nutch的配置文件,这里以抓取www.163.com为例。

①修改D:\nutch-1.2\conf下的nutch-site.xml配置

<?xml version="1.0"?>
<?xml-stylesheet href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>

<property>
  <name>http.agent.name</name>
  <value>nutch-1.2</value>
  <description>HTTP 'User-Agent'</description>
</property>
 
<property>
  <name>searcher.dir</name>
  <value>D:\nutch-1.2\crawl</value>
  <description>Path to root of crawl.</description>
 </property>
 
</configuration>

 ②修改在D:\nutch-1.2\conf下的crawl-urlfilter.txt

# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*163.com/ 
# skip everything else

③修改D:\nutch-1.2\conf下的nutch-default.xml

<property>
  <name>plugin.folders</name>
  <value>./src/plugin</value>
  <description>Directories where nutch plugins are located.  Each
  element may be a relative or absolute path.  If absolute, it is used
  as is.  If relative, it is searched for on the classpath.</description>
</property>

 ④在D:\nutch-1.2\下,建立名为urls的文件夹,并在文件夹内建立url.txt的文本,写入

http://www.163.com/

 选择window->show View ->add buildfiles-> buildfile selection   选择build.xml 点击OK 双击项目名,开始编译,经过打包,生成war发布包,把新成的war 文件复制tomcat/webapps下,重启to mcat,打开浏览器,访问地址,可以看到Nutch的检索页面。

猜你喜欢

转载自a453228609.iteye.com/blog/1933409
今日推荐