文档章节

Nutch1.7和eclipse集成

hiqj
 hiqj
发布于 2014/04/18 16:33
字数 1220
阅读 114
收藏 0

Nutch1.7eclipse集成

1、将nutch项目部署到eclipse

首先到nutch官网上找到FAQ链接http://wiki.apache.org/nutch/FAQ,进入链接

点击第二个链接查看。

                                              

参照文档进行配置,有卡壳不明白的地方,继续在网上针对具体问题查找资料。集成时可参照http://blog.csdn.net/witsmakemen/article/details/8866235

运行之前必须有一下先决条件:

A、在windows上安装配置Apache Anthttp://ant.apache.org/manual/index.html

B、安装Eclipse,这个不用说肯定是必须的。

C、在Linux安装svn。目的:迁出nutch1.7源代码。

D、在Linux下检出nutch1.7代码

[root@nutch-five branch-1.7]# svn co http://svn.apache.org/repos/asf/nutch/branches/branch-1.7/

E、在Linux安装ivy插件。目的,根据ivy配置文件动态下载jar包。

F、编译branch1.7

[root@nutch-five branch-1.7]# ant

2、在Linux下执行ant命令编译源代码:ant

3、编译成功后,将trunk文件夹复制到windows中,导入eclipse

Aeclipse : File -- New -- Java Project

B、点击NEXT

  1. 找到 conf 文件夹 ,然后点击 Add Folder 'conf' to build path

defautl output 设置为 apache-nutch-1.7/conf

在这儿我因为不能创建conf,所以写为conf1

点击Finish

至此,建立成功。

 

 

 

C、此时会发现工程有错误(红色的小叉叉),这是因为缺少引用导致的。

parse-html为例:

import org.cyberneko.html.parsers.*;

这里报错是因为缺少 nekohtml-0.9.5.jar

如何获取nekohtml-0.9.5.jar

找到runtime/local/plugins/lib-nekohtml/nekohtml-jar,单击右键add to build path,其他bug以此类推。

在这儿一共要加runtime/local/plugins/lib-nekohtml/nekohtml-jarruntime/local/plugins/parse-html/tagsoup.jarruntime/local/plugins/feed/rome.jar(解决了com.sun.syndication.io.SyndFeedInput报错问题)、runtime/local/plugins/urlfilter-automaton/automaton.jar(解决dk.brics.automaton.RunAutomaton报错问题)

至此整个工程将应该不会有错了。

4、新建文件夹urls

在文件夹内新建文件url,存放待抓取网址

如:http://www.163.com/

5、运行程序

6、报异常:

ERROR security.UserGroupInformation (UserGroupInformation.java:doAs(1193)) - PriviledgedActionException as:hadoop cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-hadoop\mapred\staging\hadoop1071373990\.staging to 0700

解决方案:

下载hadoop的源代码,重新编译hadoophadoop-core.jar包,替换掉nutch项目中的hadoopjar包。(注意:下载时先确定nutch引用的hadoop的哪个版本的jar包,然后下载对应版本。在runtime/local/lib中可以找对hadoopjar包。)

下载hadoop源代码:

下载链接:http://apache.dataguru.cn/hadoop/common/hadoop-1.2.1/

 

1、注释掉build.xml中的

<target name="create-native-configure">

<exec executable="autoreconf" dir="${native.src.dir}" searchpath="yes" failonerror="yes">  <arg value="-if"/>

</exec>

  </target>

2、去掉compile-core-native中的create-native-configure依赖

  <target name="compile-core-native" depends="create-native-configurecompile-core-classes"

 if="compile.native">

3、修改hadoop-1.1.2/src/core/org/apache/hadoop/fs/FileUtil.java 691行,把throw new IOException改为LOG.warn

4、用ant编译项目,编译成功后从build文件夹中取出hadoop-core.jar文件夹,放入nutch项目中,替换项目中原有hadoop-core.jar,放入build/lib文件夹下。再通过buildpath添加jar包。

添加完毕后,运行测试

7、继续运行,继续报错

java.lang.RuntimeException: Error in configuring object

解决方案:

将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>

红色处改一下就可以了。

参照上边的运行方法,继续运行测试,产生异常:

java.net.SocketException: Software caused connection abort: recv failed

解决方案:

链接不成功,可以忽略,对程序没有影响。

至此,nutcheclipse中集成成功。

运行过程中相关配置参数:

爬取网页 crawl

导出网页抓取状态信息 -stats

导出crawldb文件夹信息

导出linkdb文件夹信息

导出segment文件夹信息

导出segment-content文件夹信息

导出segment-fetch文件夹信息

导出segment-parse文件夹信息

导出segment-parsedata文件夹信息

导出segment-parsetext文件夹信息

相关异常:

ERROR security.UserGroupInformation (UserGroupInformation.java:doAs(1193)) - PriviledgedActionException as:hadoop cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-hadoop\mapred\staging\hadoop1071373990\.staging to 0700

解决方案:

重新编译hadoophadoop-core.jar包,替换掉nutch项目中的hadoopjar

1、注释掉build.xml中的

<target name="create-native-configure">

<exec executable="autoreconf" dir="${native.src.dir}" searchpath="yes" failonerror="yes">  <arg value="-if"/>

</exec>

  </target>

2、去掉compile-core-native中的create-native-configure依赖

  <target name="compile-core-native" depends="create-native-configurecompile-core-classes"

 if="compile.native">

3、修改hadoop-1.1.2/src/core/org/apache/hadoop/fs/FileUtil.java 691行,把throw new IOException改为LOG.warn

4、用ant编译项目,编译成功后从build文件夹中取出hadoop-core.jar文件夹,放入nutch项目中,替换项目中原有hadoop-core.jar,放入build/lib文件夹下。再通过buildpath添加jar包。

添加完毕后,运行测试

源码环境搭建时发现sun.net.util.ipaddressutil的包没有

sun.net包里的类,在eclipse里默认是不让用的。解决办法是自定义access rules工程上右键->工程属性->java builder path->Libraries标签,点击JRE System Library里面的Access rulesadd sun/** accessible,如果该项存在,就edit

具体操作方法:

问题解决后,发现继续有错,缺少antjar包,添加antjar包。

 

© 著作权归作者所有

hiqj
粉丝 24
博文 208
码字总数 92586
作品 0
渝北
程序员
私信 提问
Nutch1.7 配置到 eclipse

在nutch项目集成到eclipse中遇到了很多的问题,第一次参照网上资料配置成功后,由于没做笔记。第二天写笔记时,没想到又忘记了。诶,悲催的又花了一天。总觉得这次配环境花的时间真的是太多了...

hiqj
2014/04/19
84
0
OSChina 技术周刊第五期

每周技术抢先看,总有你想要的! 移动开发 【软件】Android 测试框架 RoboSpock 前端开发 【翻译】7 个 Bootstrap 在线编辑器用于快速开发响应式网站 【翻译】Browserify vs. Webpack 【软件...

OSC编辑部
2014/10/19
5.2K
5
Cygwin运行nutch报错:Failed to set permissions of path

错误信息: Exception in thread "main" java.io.IOException:Failed to set permissions of path:tmphadoop-yscmapredstagingysc-2036315919.staging to 0700 官方BUG参考: https://issues......

杨尚川
2015/04/07
182
0
配置Nutch模拟浏览器以绕过反爬虫限制

当我们配置Nutch抓取 http://yangshangchuan.iteye.com 的时候,抓取的所有页面内容均为:您的访问请求被拒绝 ...... 这是最简单的反爬虫策略(该策略简单地读取HTTP请求头User-Agent的值来判...

杨尚川
2014/03/15
2.7K
0
运行nutch报错:unzipBestEffort returned null

报错信息:fetch of http://szs.mof.gov.cn/zhengwuxinxi/zhengcefabu/201402/t20140224_1046354.html failed with: java.io.IOException: unzipBestEffort returned null 完整的报错信息为:......

杨尚川
2014/03/12
287
0

没有更多内容

加载失败,请刷新页面

加载更多

spring-boot-maven-plugin not found的解决方案。

通过IDE创建一个springboot项目, <plugin> <groupId>org.springframework.boot</groupId>//这行红色 <artifactId>spring-boot-maven-plugin</artifactId>//这行红色</plugin> 提示sprin......

一片云里的天空
今天
52
0
OSChina 周三乱弹 —— 我可能是个憨憨

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @宇辰OSC :分享Hare Je的单曲《Alan Walker-Faded(Hare Je remix)》: #今日歌曲推荐# 可以放松大脑的一首纯音乐 《Alan Walker-Faded(Har...

小小编辑
今天
99
0
搞定SpringBoot多数据源(3):参数化变更源

春节将至,今天放假了,在此祝小伙伴们新春大吉,身体健康,思路清晰,永远无BUG! 一句话概括:参数化变更源意思是根据参数动态添加数据源以及切换数据源,解决不确定数据源的问题。 1. 引言...

mason技术记录
昨天
99
0
sql 基础知识

sql 基础知识 不要极至最求一条sql语句搞定一切,可合理拆分为多条语句 1. sql 变量定义与赋值 Sql 语句中,直接在SELECT使用@定义一个变量,如:[@a](https://my.oschina.net/a8856225a)。 ...

DrChenXX
昨天
57
0
MacOSX 安装 TensorFlow

TensorFlow是一个端到端开源机器学习平台。它拥有一个包含各种工具、库和社区资源的全面灵活生态系统,可以让研究人员推动机器学习领域的先进技术的。 准备 安装 Anaconda TensorFlow 安装的...

叉叉敌
昨天
79
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部