`

在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的插件的基础知识,不是很详细,但是可以作为参考。...

    Web Crawling and Data Mining with Apache Nutch

    在这本书《Web Crawling and Data Mining with Apache Nutch》中,作者详细介绍了如何使用Nutch进行网络爬取和数据挖掘,包括Nutch的安装、配置、使用、以及一些高级功能的探讨。本书适合有一定编程背景的读者,尤其...

    搭建nutch web开发环境

    此外,由于Nutch 1.2的Web界面在1.3版本后被移除,这意味着在更现代的Nutch版本中,你需要寻找其他方式来展示和交互索引结果,例如使用自定义的Web应用程序与Solr API交互。 总的来说,搭建Nutch Web开发环境是一个...

    Nutch中文教程nutcher.zip

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

    Nutch入门教程.pdf

    Nutch API和OpenSearch API则允许开发者在应用程序中集成Nutch搜索引擎功能。 Nutch的目标是让每个人都能容易地、低成本地配置一个世界级的Web搜索引擎。Nutch的扩展性使其不仅适用于学术和政府站点的搜索,也可以...

    nutch 0.9 版(包含war,bin,src可直接部署使用)

    在Nutch 0.9 中,这个WAR文件包含了运行Nutch Web界面所需的全部组件,包括Web UI和相关服务,用户可以通过浏览器访问这些服务来监控和管理爬虫任务。 3. **BIN 文件**: BIN目录通常包含Nutch的可执行脚本和...

    nutch中文分词

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

    nutch

    **Nutch 概述** Nutch 是一个开源的网络爬虫项目,主要设计用于抓取、索引和搜索互联网...学习和使用 Nutch 可以帮助开发者深入了解 Web 数据抓取和搜索引擎的工作原理,对于大数据处理和信息提取有着重要的实践价值。

    eclipse配置nutch,eclipse配置nutch

    在IT领域,Apache Nutch是一款开源的Web爬虫项目,用于抓取网页并进行索引。而Eclipse作为一款流行的集成开发环境(IDE),被广泛应用于Java开发中。本文将详细解析如何在Eclipse中配置Nutch,以便于开发者更好地...

    Eclipse中编译Nutch-1.0

    随后,在Eclipse中创建一个新的Java项目,命名可自定义,如“Nutch”,并在创建过程中选择“从现有源代码创建项目”选项,指向已解压的`nutch-1.0`目录。在项目的Library配置中,需添加`conf`文件夹,并将其置于...

    apache-nutch-1.16.rar 已编译好的版本,可以直接导入eclipse、idea

    Nutch 1.16是该项目的一个稳定版本,已经预先编译完成,方便开发者直接在Eclipse或IntelliJ IDEA这样的集成开发环境中导入使用,无需自行配置和编译源代码。 **Nutch的组成部分** 1. **Web爬虫**:Nutch的爬虫负责...

    org.restlet.jar org.restlet.ext.jackson.jar(nutch 2.2.1无法下载的jar包)

    在给定的标题和描述中,提到的"org.restlet.jar"和"org.restlet.ext.jackson.jar"是Nutch 2.2.1在执行过程中可能需要的特定库文件。 `org.restlet.jar` 是Restlet框架的基础库,这是一个Java应用编程接口(API),...

    nutch根据URL来查找快照

    - 对于命令行操作,可以使用`bin/nutch readseg`命令来直接查看段文件中的内容,结合URL进行筛选。 - 如果需要用户友好的界面,可以开发一个简单的Web应用,通过Nutch的API接口来查询索引并返回特定URL的快照。 5...

    Eclipse中编译Nutch-0.9

    在本篇文章中,我们将深入探讨如何在Eclipse环境中编译Nutch-0.9,一个开源的网络爬虫项目,用于抓取互联网上的网页信息。文章涵盖的关键知识点包括:环境准备(JDK/JRE版本需求)、源码获取与项目导入、解决编译...

    开发基于 Nutch 的集群式搜索引擎

    - 调用Lucene引擎在indexDB上执行搜索操作。 - 收集搜索结果,包括URL、标题、锚文本和内容片段。 - 应用排序算法对搜索结果进行排序。 - 将排序后的结果呈现给用户。 由于Nutch构建在Hadoop之上,所有的数据库...

    Nutch_插件深入研究

    通过具体实例,读者可以更好地理解Nutch插件是如何在实际场景中发挥作用的,以及如何根据自身需求开发和集成插件。 #### 五、在Eclipse中使用Ant构建插件 虽然Nutch插件可以通过命令行工具构建,但在Eclipse中使用...

    Apache Nutch 1.7 学习总结

    - 安装Solr,配置Solr的连接信息在Nutch的`conf/nutch-site.xml`中。 - 使用Nutch的`bin/nutch solrindex`命令将生成的索引数据推送到Solr,实现搜索功能。 **Nutch 在 Linux 下的搭建过程** 1. **准备工作** -...

Global site tag (gtag.js) - Google Analytics