- 浏览: 80712 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
neptunecai:
2.创建nutch2.1的编译环境 这部分能详细些吗?比如:T ...
Nutch2.1 in eclipse
Nutch2.1 in eclipse
主要目的:
1. 将nutch2.1放入eclipse中,便于调试源代码,查看nutch2.1是如何实现的。
2. 方便学习编写nutch2.1的plugin
准备:
Linux环境
Nutch2.1
Mysql
Java1.6
Eclipse
开始:
首先需要安装好jdk1.6,mysql,eclipse
开启eclipse,使用market place下载ivyDE,subeclipse
在首先进入/etc/my.cnf
在[mysqld]
下添加:
innodb_file_format=barracuda
innodb_file_per_table=true
innodb_large_prefix=true
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
开启mysql服务器
修改root用户密码为root
创建数据库:
创建用户表:
1.安装nutch2.1
File > New > Project > SVN > Checkout Projects from SVN
Create new repository location > https://svn.apache.org/repos/asf/nutch/tags/release-2.1
checkout 源代码 as a project configured using the New Project Wizard
最后点击finish根据提示选择Java > Java Project > next
为项目取个名字(随意取,无限制,本人这里取nutch2.1,下面会用到)其他全部按照默认走就可以了,下载nutch2.1的源代码。
2.创建nutch2.1的编译环境
在project explorer下右击项目,选择properties。进入java build path
The only Source folder will be nutch2.1(之前自己取的名字) /src> Remove this folder > Add Folder > expand trunk/src and check src/bin, src/java, src/test & src/testresources.
我们必须手动添加 plugin src/java and src/test folder,虽然这个户花费我们不少时间,但是这个是必须要做的。
在 Libraries tab, 点击 Add Class Folder 并添加 nutch2.1/conf 到 classpath.
还是在 Libraries tab add JARs > src/plugin/urlfilter-automaton/lib/automaton.jar & src/plugin/parse-swf/lib/javaswf.jar
在 Libraries tab Add Library > IvyDE Managed Dependencies > browse to nutch2.1/ivy/ivy.xml
"Order and Export" tab 找到src/conf选中并点击top,移动到最顶端。
这些配置完成。IvyDE会自动加载依赖的jar包。可能会出现报错(如果网络不好的话)
然后就算没有报错,我们仍然可以看到nutch2.1中有很多红叉。
可以先放着。接下来要做的是配置编译环境变量。
在nutch2.1/conf下
Gora.properties
加入:
并注释掉其他的数据库链接。
在ivy/ivy.xml
解除mysql-connector的注释。
在/conf/nutch-site.xml.template的configuration中添加如下代码:
在根目录下的build.xml中找到如下代码
将原本的
改为
用来避免ivy再次下载编译不通过的情况。原因:ivy会下载class的jar和source的jar,当时如果直接按照上面的pattern下载的话,两个文件是无法区分的。会出现相同的文件的错误。
完成如上信息之后,点击build.xml进行ant编译就会生成runtime目录。
3. 创建debug环境。
由于我们的代码中有很多红叉,现在我们就来消除它。
首先,我们需要去runtime/local/plugins下的各个包中寻找没有加的jar这些jar是各个plugin自己需要的,通过他们自己的ivy加载进来的。用来消除红叉,到最后会发现肯定还是有那么四个总是红色的。Parser-js,Parser-ext, Parser-swf, Parser-zip
这个就是nutch项目的问题了。因为他们引用的是nutch1.X的包中的类,所以这里有错误。源代码的开发者不知道为什么没有把这些更新。一般我们做初步调试时不需要用到这些插件的。所以可以直接从source path将他们remove。
在根目录下添加一个urls文件夹,放入seed.txt文件,其中加一个网站地址。如:http://nutch.apache.org/
打开src/java下的crawl的package下的crawler,使用run configuration
第一页已经默认填写完毕
选择第二个arguments
放入:urls -depth 3 -topN 5
最后就可以使用run进行爬取该网站的链接信息了。
参考文献:
http://nlp.solutions.asia/?p=180
http://wiki.apache.org/nutch/RunNutchInEclipse
写在后面:
Nutch的官方文档和源代码的管理很让人失望。官方文档中有不少错误的或者说介绍不明确的地方。直接按照官方文档来操作死活弄不出来的事情时有发生。然后是源代码的管理,自nutch从1.x升级到2.x,其中除了parser-html外的所有其他parser插件如js,ext,zip,swf等都改用parser-tika了。但是这些插件却没有在nutch2.1的源码中删除,如果直接添加进来,指向不明确的话,永远都会有报错。最后就是nutch2.1的文档太少,自己需要投入相当的精力才可以把这个环境搭建好。希望官方可以好好的把这些问题解决掉。
其他补充:
1. 如何添加合适的plug
由于我们有一个plugin include在nutch-site中,只要根据这个去看哪些是我们某人需要添加的plugin 在add source 的时候可以只加这些必须的plugin。自己也可以编写plugin为自己的nutch使用。可以参考如何编写plugin的文档。
2. 如何在windows下执行。
如上信息其实大多没有linux和windows的区别。(你耍我?,那还要linux干嘛?)只是,由于nutch是基于hadoop的,而我们知道hadoop只能在linux上运行。在linux上运行没有问题,到windows下就会问题不断。其中一个重点问题就是linux和windows的路径名是不同的。所以在上面的配置中plugin folder这里的路径就要调整为src/plugin了。Mysql安装完成后,对于linux下的/etc/my.cnf是windows的mysql安装目录下面的一个my.ini文件,所以之前添加到/etc/my.cnf的信息需要添加到这个my.ini中。还有就是hadoop默认使用的是linux的路径形式。所以需要修改hadoop的源码。大家可以到网上去下载一个hadoop-1.0.2-modified.jar用来代替ivy为我们下载的hadoop-1.0.3。该jar解决了linux下的所有问题,可以用来windows下使用。所以修改完以上,我们也是可以在windows下使用nutch2.1的。
3. Mysql下的/etc/my.cnf参数复制好后就无法重启mysql了
那是因为你复制的参数在该文件中已经存在了。Mysql是不允许出现两份一样的配置的。所以检查一下有没有哪个参数在配置文件中已经有了,删除它即可。我遇到的问题就是character-set-server已经被设置成了utf8。修改成utf8mb4即可。
主要目的:
1. 将nutch2.1放入eclipse中,便于调试源代码,查看nutch2.1是如何实现的。
2. 方便学习编写nutch2.1的plugin
准备:
Linux环境
Nutch2.1
Mysql
Java1.6
Eclipse
开始:
首先需要安装好jdk1.6,mysql,eclipse
开启eclipse,使用market place下载ivyDE,subeclipse
在首先进入/etc/my.cnf
在[mysqld]
下添加:
innodb_file_format=barracuda
innodb_file_per_table=true
innodb_large_prefix=true
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
开启mysql服务器
修改root用户密码为root
创建数据库:
CREATE DATABASE nutch DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
创建用户表:
CREATE TABLE `webpage` ( `id` varchar(767) NOT NULL, `headers` blob, `text` mediumtext DEFAULT NULL, `status` int(11) DEFAULT NULL, `markers` blob, `parseStatus` blob, `modifiedTime` bigint(20) DEFAULT NULL, `score` float DEFAULT NULL, `typ` varchar(32) CHARACTER SET latin1 DEFAULT NULL, `baseUrl` varchar(767) DEFAULT NULL, `content` longblob, `title` varchar(2048) DEFAULT NULL, `reprUrl` varchar(767) DEFAULT NULL, `fetchInterval` int(11) DEFAULT NULL, `prevFetchTime` bigint(20) DEFAULT NULL, `inlinks` mediumblob, `prevSignature` blob, `outlinks` mediumblob, `fetchTime` bigint(20) DEFAULT NULL, `retriesSinceFetch` int(11) DEFAULT NULL, `protocolStatus` blob, `signature` blob, `metadata` blob, PRIMARY KEY (`id`) ) ENGINE=InnoDB ROW_FORMAT=COMPRESSED DEFAULT CHARSET=utf8mb4;
1.安装nutch2.1
File > New > Project > SVN > Checkout Projects from SVN
Create new repository location > https://svn.apache.org/repos/asf/nutch/tags/release-2.1
checkout 源代码 as a project configured using the New Project Wizard
最后点击finish根据提示选择Java > Java Project > next
为项目取个名字(随意取,无限制,本人这里取nutch2.1,下面会用到)其他全部按照默认走就可以了,下载nutch2.1的源代码。
2.创建nutch2.1的编译环境
在project explorer下右击项目,选择properties。进入java build path
The only Source folder will be nutch2.1(之前自己取的名字) /src> Remove this folder > Add Folder > expand trunk/src and check src/bin, src/java, src/test & src/testresources.
我们必须手动添加 plugin src/java and src/test folder,虽然这个户花费我们不少时间,但是这个是必须要做的。
在 Libraries tab, 点击 Add Class Folder 并添加 nutch2.1/conf 到 classpath.
还是在 Libraries tab add JARs > src/plugin/urlfilter-automaton/lib/automaton.jar & src/plugin/parse-swf/lib/javaswf.jar
在 Libraries tab Add Library > IvyDE Managed Dependencies > browse to nutch2.1/ivy/ivy.xml
"Order and Export" tab 找到src/conf选中并点击top,移动到最顶端。
这些配置完成。IvyDE会自动加载依赖的jar包。可能会出现报错(如果网络不好的话)
然后就算没有报错,我们仍然可以看到nutch2.1中有很多红叉。
可以先放着。接下来要做的是配置编译环境变量。
在nutch2.1/conf下
Gora.properties
加入:
gora.sqlstore.jdbc.driver=com.mysql.jdbc.Driver gora.sqlstore.jdbc.url=jdbc:mysql://localhost:3306/nutch?createDatabaseIfNotExist=true gora.sqlstore.jdbc.user=root gora.sqlstore.jdbc.password=root
并注释掉其他的数据库链接。
在ivy/ivy.xml
解除mysql-connector的注释。
在/conf/nutch-site.xml.template的configuration中添加如下代码:
<property> <name>http.agent.name</name> <value>Your Nutch Spider</value> </property> <property> <name>http.accept.language</name> <value>ja-jp, en-us,en-gb,en;q=0.7,*;q=0.3</value> <description>Value of the “Accept-Language” request header field. This allows selecting non-English language as default one to retrieve. It is a useful setting for search engines build for certain national group. </description> </property> <property> <name>parser.character.encoding.default</name> <value>utf-8</value> <description>The character encoding to fall back to when no other information is available</description> </property> <property> <name>plugin.includes</name> <value>protocol-httpclient|protocol-http|urlfilter-regex|parse-(html|tika)|index-(basic|anchor)|urlnormalizer-(pass|regex|basic)|scoring-opic</value> <description>Regular expression naming plugin directory names to include. Any plugin not matching this expression is excluded. In any case you need at least include the nutch-extensionpoints plugin. By default Nutch includes crawling just HTML and plain text via HTTP, and basic indexing and search plugins. In order to use HTTPS please enable protocol-httpclient, but be aware of possible intermittent problems with the underlying commons-httpclient library. </description> </property> <property> <name>storage.data.store.class</name> <value>org.apache.gora.sql.store.SqlStore</value> <description>The Gora DataStore class for storing and retrieving data. Currently the following stores are available: …. </description> </property> <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>
在根目录下的build.xml中找到如下代码
<target name="resolve-default" depends="clean-lib, init" description="--> resolve and retrieve dependencies with ivy"> <ivy:resolve file="${ivy.file}" conf="default" log="download-only" /> <ivy:retrieve pattern="${build.lib.dir}/[artifact]-[revision].[ext]" symlink="false" log="quiet" /> <antcall target="copy-libs" /> </target>
将原本的
pattern="${build.lib.dir}/[artifact]-[revision].[ext]"
改为
pattern="${build.lib.dir}/[artifact]-[type]-[revision].[ext]"
用来避免ivy再次下载编译不通过的情况。原因:ivy会下载class的jar和source的jar,当时如果直接按照上面的pattern下载的话,两个文件是无法区分的。会出现相同的文件的错误。
完成如上信息之后,点击build.xml进行ant编译就会生成runtime目录。
3. 创建debug环境。
由于我们的代码中有很多红叉,现在我们就来消除它。
首先,我们需要去runtime/local/plugins下的各个包中寻找没有加的jar这些jar是各个plugin自己需要的,通过他们自己的ivy加载进来的。用来消除红叉,到最后会发现肯定还是有那么四个总是红色的。Parser-js,Parser-ext, Parser-swf, Parser-zip
这个就是nutch项目的问题了。因为他们引用的是nutch1.X的包中的类,所以这里有错误。源代码的开发者不知道为什么没有把这些更新。一般我们做初步调试时不需要用到这些插件的。所以可以直接从source path将他们remove。
在根目录下添加一个urls文件夹,放入seed.txt文件,其中加一个网站地址。如:http://nutch.apache.org/
打开src/java下的crawl的package下的crawler,使用run configuration
第一页已经默认填写完毕
选择第二个arguments
放入:urls -depth 3 -topN 5
最后就可以使用run进行爬取该网站的链接信息了。
参考文献:
http://nlp.solutions.asia/?p=180
http://wiki.apache.org/nutch/RunNutchInEclipse
写在后面:
Nutch的官方文档和源代码的管理很让人失望。官方文档中有不少错误的或者说介绍不明确的地方。直接按照官方文档来操作死活弄不出来的事情时有发生。然后是源代码的管理,自nutch从1.x升级到2.x,其中除了parser-html外的所有其他parser插件如js,ext,zip,swf等都改用parser-tika了。但是这些插件却没有在nutch2.1的源码中删除,如果直接添加进来,指向不明确的话,永远都会有报错。最后就是nutch2.1的文档太少,自己需要投入相当的精力才可以把这个环境搭建好。希望官方可以好好的把这些问题解决掉。
其他补充:
1. 如何添加合适的plug
由于我们有一个plugin include在nutch-site中,只要根据这个去看哪些是我们某人需要添加的plugin 在add source 的时候可以只加这些必须的plugin。自己也可以编写plugin为自己的nutch使用。可以参考如何编写plugin的文档。
2. 如何在windows下执行。
如上信息其实大多没有linux和windows的区别。(你耍我?,那还要linux干嘛?)只是,由于nutch是基于hadoop的,而我们知道hadoop只能在linux上运行。在linux上运行没有问题,到windows下就会问题不断。其中一个重点问题就是linux和windows的路径名是不同的。所以在上面的配置中plugin folder这里的路径就要调整为src/plugin了。Mysql安装完成后,对于linux下的/etc/my.cnf是windows的mysql安装目录下面的一个my.ini文件,所以之前添加到/etc/my.cnf的信息需要添加到这个my.ini中。还有就是hadoop默认使用的是linux的路径形式。所以需要修改hadoop的源码。大家可以到网上去下载一个hadoop-1.0.2-modified.jar用来代替ivy为我们下载的hadoop-1.0.3。该jar解决了linux下的所有问题,可以用来windows下使用。所以修改完以上,我们也是可以在windows下使用nutch2.1的。
3. Mysql下的/etc/my.cnf参数复制好后就无法重启mysql了
那是因为你复制的参数在该文件中已经存在了。Mysql是不允许出现两份一样的配置的。所以检查一下有没有哪个参数在配置文件中已经有了,删除它即可。我遇到的问题就是character-set-server已经被设置成了utf8。修改成utf8mb4即可。
评论
1 楼
neptunecai
2014-09-29
2.创建nutch2.1的编译环境 这部分能详细些吗?
比如:The only Source folder will be nutch2.1(之前自己取的名字) /src> Remove this folder > Add Folder > expand trunk/src and check src/bin, src/java, src/test & src/testresources.
没看懂啥意思?能上图吗?
比如:我们必须手动添加 plugin src/java and src/test folder,虽然这个户花费我们不少时间,但是这个是必须要做的。
在 Libraries tab, 点击 Add Class Folder 并添加 nutch2.1/conf 到 classpath.
还是在 Libraries tab add JARs > src/plugin/urlfilter-automaton/lib/automaton.jar & src/plugin/parse-swf/lib/javaswf.jar
这能贴些图吗?谢谢
比如:在 Libraries tab Add Library > IvyDE Managed Dependencies > browse to nutch2.1/ivy/ivy.xml
"Order and Export" tab 找到src/conf选中并点击top,移动到最顶端。
能上些图吗?谢谢。
比如:The only Source folder will be nutch2.1(之前自己取的名字) /src> Remove this folder > Add Folder > expand trunk/src and check src/bin, src/java, src/test & src/testresources.
没看懂啥意思?能上图吗?
比如:我们必须手动添加 plugin src/java and src/test folder,虽然这个户花费我们不少时间,但是这个是必须要做的。
在 Libraries tab, 点击 Add Class Folder 并添加 nutch2.1/conf 到 classpath.
还是在 Libraries tab add JARs > src/plugin/urlfilter-automaton/lib/automaton.jar & src/plugin/parse-swf/lib/javaswf.jar
这能贴些图吗?谢谢
比如:在 Libraries tab Add Library > IvyDE Managed Dependencies > browse to nutch2.1/ivy/ivy.xml
"Order and Export" tab 找到src/conf选中并点击top,移动到最顶端。
能上些图吗?谢谢。
发表评论
-
jetty 对请求头的限制
2014-02-13 14:30 5571当浏览器发起请求时 出现http code 413 问题 fu ... -
java 最基础的设置介绍
2013-04-15 23:05 1232用java不长不短快5年了,最近在看一些基础的书籍,也想起很久 ... -
Hessian 初体验
2013-03-27 17:36 1146Hessian 官网:http://hessian.cauch ... -
LDAP connection issue
2012-10-23 16:25 1690Problem1: Sometimes we can not ... -
restlet2.0学习——请求超时设置
2012-09-26 11:01 2292一般,我们在请求一个rest service的时候,总是希望可 ... -
[转载]checkStyle使用手册
2012-08-23 20:28 6813Checkstyle是SourceForge下的一个项目,如名 ... -
[转载]高性能JAVA开发之内存管理
2012-08-13 21:53 1305这几天在找一个程序的bug,主要是java虚拟机内存溢出的问题 ... -
[转载]How to write LDAP search filters
2012-08-10 10:57 1383This document outlines how to g ... -
restlet2.0学习(extend)-restlet日志信息写入log4j中
2012-08-07 15:32 4001使用过restlet的人都知道,restlet使用的是JDK的 ... -
log4j级别输出
2012-08-03 11:12 4266我们知道: log4j.logger.XX cover ==& ... -
log4j配置
2012-05-30 11:36 1392log4j.rootLogger 根路径下的所有logger输 ... -
Restlet2.0学习——简单WebApp多Application与表单提交
2012-05-23 23:16 3526之前我们提到过简单的WebApp实现,使用的是一个applic ... -
Restlet2.0学习——文件路径访问
2012-05-22 14:42 1194由于就是官方的实例照搬了一下,简单尝试没有问题。就先把代码贴出 ... -
Restlet2.0学习——文件路径访问+BASIC认证
2012-05-22 14:38 1718这篇主要是让我们学习对于一些静态页面如何更加简单有效的去访问他 ... -
对RAM做简单的池化实现
2012-05-22 13:59 1508首先由于项目的关系需要使用IBM的Rational Asser ... -
Restlet2.0学习——简单WebApp实现
2012-05-21 22:09 6483由于自己最近正在学习R ... -
HTMLPOST和GET编码问题(深入篇)
2011-07-07 02:12 11360浏览器 IE/FireFox -------——----> ...
相关推荐
nutch2.1导入Eclipse过程中,import org.restlet.×;错误,缺少的包。
nutch2.1导入Eclipse过程中,import org.restlet.×;错误,缺少的包。
nutch最新2.1资源打包,配置nutch最新svn后更新打包的全资源
eclipse配置nutch,eclipse配置nutch
nutch2.2.1安装步骤,需要自己下载以下软件: apache-ant-1.10.5-bin.tar.gz apache-nutch-2.2.1-src.tar.gz apache-tomcat-8.5.39.tar.gz jdk-8u201-linux-x64.tar.gz solr-4.10.3.zip
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。 本资源官网上下的源代码。 nutch-2.1 适用于windows系统
apache-nutch-2.1,一个非常棒的搜索引擎!希望大家喜欢
Eclipse 编译 Nutch-0.9
apache-nutch-2.2.1(Eclipse直接运行版)今天刚做的,发现有很多坑,分享给大家实验,JDK1.7 Win10。我分享的两个压缩卷一起下载才可以用,资源限制太小了 002地址:...
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己 的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
1.1 环境准备 1.1.1 本期引言 1.1.2 环境介绍 1.1.3 JDK 安装配置 1.1.4 ANT 安装配置 1.1.5 IvyDE 安装配置 1.1.5 Tomcat 安装配置 ...1.2 Eclipse 开发 1.2.1 Solr 部署 1.2.2 Nutch 导入 1.2.3 Solr 与Nutch 结合
Eclipse 中编译 Nutch-1.0 运行源代码
Windows下使用Eclipse配置Nutch2图文详解
nutch 在windows下环境搭配 已经如何在eclipse下配置,有配图,很详细
本文章修改了在eclipse中加入Nutch的详细过程!
Eclipse中编译Nutch-1.0。。。。。。。。。。。。
nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据
nutch-windows-脚本 在 Windows 上运行 Nutch 2.1 的简单脚本
里面描述了Nutch的基本流程,Nutch与eclipse的结合,Nutch与Solr的结合
2.1 JDK的安装与配置.3 2.2 nutch的安装与配置........5 2.3 tomcat的安装与配置......5 3. nutch初体验7 3.1 爬行企业内部网....7 3.1.1 配置nutch....7 3.1.2 配置tomcat..8 3.1.3 执行抓取命令......9 3.1.4 测试...