`

在web中直接调用Nutch执行JOB

阅读更多

看了http://zha-zi.iteye.com/blog/639850的博客后

于是按着他给出的说明构造了一个实验项目:

首先是将Nutch打包成JOB,在Nutch中提供了对ant的支持,要打JOB包,就直接在项目目录下执行ant命令系统就会自动的实现对Nutch的打包,包括对plugins、nutch打包为Jar包,同时将nutch打包成Job.

这里nutch配置jar包依赖的时候用到了maven和Ivy,通过这些东东的配置对于jar包就用起来方便多了。

打包完成后可以查看项目文件夹中build目录,在该目录中有nutch的jar包和job文件,并且在该目录下还有plugins文件夹,就是对插件进行打包后的结果。

完成上述操作后,执行下面的具体操作:

1、新建一个web工程,把nutch源代码中plugins文件夹下的目录复制到src下,把nutch下src/java 中的这些包复制src下
2、把nutch中conf文件夹的所有配置文件复制到src目录下,把nutch中nutch.job文件复制到src下边
3、把nutch中lib文件夹的jar文件复制到web-inf的lib下
4、重新在src下建立一个类,用这个类去调用crawl的main()

 

这个调用时直接使用servlet来调用呗。

代码如下:

package com.nutch.demo;

import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.util.ToolRunner;
import org.apache.nutch.crawl.Crawl;
import org.apache.nutch.metadata.Metadata;
import org.apache.nutch.parse.Parse;
import org.apache.nutch.parse.html.HtmlParser;
import org.apache.nutch.protocol.Content;
import org.apache.nutch.util.NutchConfiguration;

public class NutchDemo extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		doPost(req, resp);
	}

	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		String []args ={"urls/url","-dir","crawled","-depth","10","-topN","50"}; 
		Configuration conf = NutchConfiguration.create();
		int res;
		try {
			res = ToolRunner.run(conf, new Crawl(), args);
			System.exit(res);
		} catch (Exception e) {
			e.printStackTrace();
		}

}
 

在web.xml文件的配置如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>nutch_web</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
  	<servlet-name>nutch_web_application</servlet-name>
  	<servlet-class>com.nutch.demo.NutchDemo</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>nutch_web_application</servlet-name>
  	<url-pattern>/nutch</url-pattern>
  </servlet-mapping>
</web-app>

 请求的时候就调用http://127.0.0.1:8080/nutch就可以执行nutch的job了(我是在tomcat上测的),其中urls/url文件放到tomcat的bin目录中。

好了就这么多了,试试吧

 

 

 

分享到:
评论

相关推荐

    Nutch执行单步执行、中间结果文件分析和插件开发基础

    资源中urls.txt是我nutch单步执行过程的种子文件,里面的ppt主要讲解nutch单步执行流程,并获取每次单步执行的结果文件,对文件进行分析,同时ppt还讲解了nutch的插件的基础知识,不是很详细,但是可以作为参考。...

    搭建nutch web开发环境

    一步一步详细解释了如何搭建nutch web开发环境,对nutch1.2有效,nutch1.3以上已经没有web这部分内容了

    Nutch中文教程nutcher.zip

    nutcher 是 Apache Nutch 的中文教程,在github上托管。nutch社区目前缺少教程和文档,而且教程对应版本号较为落后。nutcher致力于为nutch提供一个较新的中文教程和文档,供开发者学习。 github地址: ...

    nutch中文分词

    nutch应用,nutch中文分词,nutch中文乱码

    nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据

    nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据

    nutch 初学文档教材

    Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。 目 录 1. nutch简介...1 1.1什么是nutch..1 1.2研究nutch的原因...1 1.3 nutch的目标..1 1.4 nutch VS lucene.....2 2....

    Web Crawling and Data Mining with Apache Nutch

    Learn to run your application on single as well as multiple machines Customize search in your ...Acquaint yourself with storing crawled webpages in a database and use them according to your needs

    Nutch中文分词插件的编写与配置

    Nutch中文分词插件的编写与配置,由于Internet的迅猛发展,使得用户查找信息犹如大海捞针,而搜索引擎则能帮用户很好的解决这个问题。 Nutch是用java语言开发的,基于Lucene的完整的网络搜索引擎,并采用插件机制进行...

    nutch-1.5.1源码

    Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。包含nutch-1.5.1的源码

    Nutch相关框架视频教程

    资源名称:Nutch相关框架视频教程资源目录:【】Nutch相关框架视频教程1_杨尚川【】Nutch相关框架视频教程2_杨尚川【】Nutch相关框架视频教程3_杨尚川【】...资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    nutch Windows版脚本

    该批处理文件是bin\nutch的Windows版本 ...即可解决nutch不借助cgywin直接在Windows平台下运行。 该批处理基于 nutch 1.7 改写。 使用方法: 直接把此批处理放于bin目录下,用bin\nutch.bat 即可执行

    Eclipse中编译Nutch-1.0

    Eclipse 中编译 Nutch-1.0 运行源代码

    nutch的源码解读和nutch入门

    学习nutch 源码解读 轻松入门 搭建自己的nutch搜索引擎

    Nutch an Open-Source Platform for Web Search

    Nutch an Open-Source Platform for Web Search,nutch经典论文,Nutch an Open-Source Platform for Web Search

    eclipse配置nutch,eclipse配置nutch

    eclipse配置nutch,eclipse配置nutch

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

    4、 lucene、nutch、hadoop,在搜索界相当有名。 5、 ant构建之后,生成runtime文件夹,该文件夹下面有deploy和local文件夹,分别代表了nutch的两种运行方式。 6、 nutch和hadoop是通过什么连接起来的?通过nutch...

    nutch配置nutch-default.xml

    nutch配置nutch-default.xml

    Nutch搜索引擎的页面排序修改方法研究.kdh

    Nutch是一个优秀的开放源代码的Web搜索引擎。虽然Nutch的页面排序方法比较合理,但是很多情况下仍然不能 满足需要。分析开源搜索引擎Nutch代码,研究了Nutch的页面排序方法。在Nutch原有的结构基础上提出了3种修改...

    apache-nutch-1.4

    Nutch是一个由Java实现的,刚刚诞生开放源代码(open-source)的web搜索引擎。Nutch目前最新的版本为version1.4。这个为nutch的最新版 1.4。

Global site tag (gtag.js) - Google Analytics