参考:在Eclipse中运行Nutch

把nutch的源代码导入到eclipse工程自定义抓取任务。

下载源码:

http://svn.apache.org/repos/asf/nutch/

从svn下载想要的nutch源码,这里选择nutch-1.1

编译源码:

使用ant编译源代码,编译成功,可以看到多了一个build目录,其中有plugins目录及nutch-1.1.job文件

新建WEB工程

新建web工程org.apache.nutch.web,执行以下操作

1、      把nutch源代码的src/java 目录复制到web工程的src目录

2、      把nutch源代码的src/conf目录复制到web工程的src目录

3、      把nutch源代码的src/lib目录复制到web工程的WEB-INF/lib目录

4、      把编译的plugins目录复制到web工程的src目录

5、      在web工程src新建目录job,把编译的nutch-1.1.job文件复制到src/job

6、      在web工程src新建目录test,建立测试类,用这个类去调用crawl的main()

package org.apache.nutch;

import org.apache.nutch.crawl.Crawl;

public class Main {

    public static void main(String[] args) {
String[] arg = { "/urls/url.txt", "-dir", "crawled", "-depth", "", "-topN",
"" };
try {
Crawl.main(arg);
} catch (Exception e) {
e.printStackTrace();
}
} }

Note:

1、      Nutch使用hadoop调度任务,使用前要编辑conf目录下的core-site.xml、hdfs-site.xml、mapred-site.xml等hadoop配置文件。

2、      Nutch-1.1中没有hbase的jar文件,需另下载并设置hbase的配置文件,这里用hbase-0.94.jar

FAQ:

这是一位网友收集的hadoop,hbase,zookeeper错误日志及部分解决办法,以备以后遇到问题作为参考之用。

1、  hadoop-0.20.2 & hbase-0.90.4集群启动错误问题解决:

问题如下:org.apache.hadoop.ipc.RPC$VersionMismatch: Protocol org.apache.hadoop.hdfs.protocol.ClientProtocol version mismatch. (client = 43, server = 41)

at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:364)
        at
org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:113)
        at
org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:215)
        at
org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:177)

是hadoop-0.20.2
& hbase-0.90.4版本问题造成的,讲hbase\lib引入的包替换为hadoop-0.20.2-core.jar即可

2、  org.apache.hadoop.security.AccessControlException:
Permission denied: user=pc2000, access=WRITE

因为Eclipse使用hadoop插件提交作业时,会默认以 pc2000(计算机名)
身份去将作业写入hdfs文件系统中,对应的也就是 HDFS 上的/user/xxx ,  由于 pc2000 用户对hadoop目录并没有写入权限,所以导致异常的发生。

WEB中调用Nutch执行JOB抓取的更多相关文章

  1. Atitit.web的自动化操作与信息抓取 attilax总结

    Atitit.web的自动化操作与信息抓取 attilax总结 1. Web操作自动化工具,可以简单的划分为2大派系: 1.录制回放 2.手工编写0 U' z; D! s2 d/ Q! ^1 2. 常 ...

  2. Jmeter Web 性能测试入门 (二):Fiddler 抓取 http/https 请求

    jmeter自带了拦截request的功能,并且也有对应的tool:badboy 可以用.但由于我经常做移动端的项目,个人还是习惯用fiddler来收集request. 官网下载并安装Fiddler ...

  3. php中CURL技术模拟登陆抓取数据实战,抓取某校教务处学生成绩。

    这两天有基友要php中curl抓取教务处成绩的源码,用于微信公众平台的开发.下面笔者只好忍痛割爱了.php中CURL技术模拟登陆抓取数据实战,抓取沈阳工学院教务处学生成绩. 首先,教务处登录需要验证码 ...

  4. 使用Python中的urlparse、urllib抓取和解析网页(一)(转)

    对搜索引擎.文件索引.文档转换.数据检索.站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理.事实上,通过Python 语言提供的各种模块,我们无需借助Web服务器或者Web浏览 ...

  5. Python中的urlparse、urllib抓取和解析网页(一)

    对搜索引擎.文件索引.文档转换.数据检索.站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理.事实上,通过Python 语言提供的各种模块,我们无需借助Web服务器或者Web浏览 ...

  6. Scrapinghub执行spider抓取并显示图片

    序 最近在学习Scrapy的时候发现一个很有意思的网站,可以托管Spider,也可以设置定时抓取的任务,相当方便.于是研究了一下,把其中比较有意思的功能分享一下: 抓取图片并显示在item里: 下面来 ...

  7. Spring5源码,Spring Web中的处理程序执行链

    一.什么是Spring中的处理程序执行链? 二.HandlerExecutionChain类 三.自定义处理程序执行链 Spring的DispatcherServlet假如缺少几个关键元素将无法分派请 ...

  8. PHP中CURL技术模拟登陆抓取网站信息,用与微信公众平台成绩查询

    伴随微信的红火,微信公众平台成为许多开发者的下一个目标.笔者本身对于这种新鲜事物没有如此多的吸引力.但是最近有朋友帮忙开发微信公众平台中一个成绩查询的功能.于是便在空余时间研究了一番. 主要的实现步骤 ...

  9. [Python爬虫] 之九:Selenium +phantomjs抓取活动行中会议活动(单线程抓取)

    思路是这样的,给一系列关键字:互联网电视:智能电视:数字:影音:家庭娱乐:节目:视听:版权:数据等.在活动行网站搜索页(http://www.huodongxing.com/search?city=% ...

随机推荐

  1. UVa 793 - Network Connections

    题目大意:给出计算机之间的连接配置,询问某两台计算机是否相连.判断两个点是否在同一个连通分量里,用并查集处理. #include <cstdio> #define MAXN 1000000 ...

  2. Intel X710网卡VxLAN offload 性能测试

    Intel X710网卡VxLAN offload性能测试 1.  测试环境参数: 交换机:盛科E580 服务器: Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz ...

  3. 网站环境apache + php + mysql 的XAMPP,如何实现一个服务器上配置多个网站?

    xampp 是一个非常方便的本地 apache + php + mysql 的调试环境,在本地安装测试 WordPress 等各种博客.论坛程序非常方便.今天我们来给大家介绍一下,如何使用 XAMPP ...

  4. js模块化开发——require.js的用法

    这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战. 我采用的是一个非常流行的库require.js. 一.为什么要用require.js? 最早的 ...

  5. 一个好的函数(gcd)求最小公约数

    这个函数是我无意中看到的很不错,很给力,我喜欢 是用于求最小公约数的 简单的描述就是,记gcd(a,b)表示非负整数a,b的最大公因数,那么:gcd(a,b)=gcd(b,a%b)或者gcd(a,0) ...

  6. HTML URL

    HTML 统一资源定位器(Uniform Resource Locators) URL 是一个网页地址. URL可以由字母组成,如"runoob.com",或互联网协议(IP)地址 ...

  7. 数据契约(DataContract)的作用

    服务契约定义了远程访问对象和可供调用的方法,数据契约则是服务端和客户端之间要传送的自定义数据类型. 一旦声明一个类型为DataContract,那么该类型就可以被序列化在服务端和客户端之间传送,如下所 ...

  8. js连接sqlserver进行查询

    <script language="JavaScript"> // 创建数据库对象 var objdbConn = new ActiveXObject("AD ...

  9. KB奇遇记(10):终章

    本来还想写一篇关于前CIO的著名言论,不过想想还是算了.博客空间宝贵,不乱恶心人了. 这篇博文是本系列<KB奇遇记>的最后一篇了. 虽然在KB公司有这么多的苦,但毕竟收获也很多,至少让我懂 ...

  10. Iris的R语言命令工具箱(1)

    Iris的R语言命令工具箱(1) 最近在做数据分析,使用了R语言做了些数据处理和可视化,在此记下遇到过的问题.应用过的命令.处理方式以及工具包- *版权声明:本文为博主原创文章,转载请注明本文地址.h ...