Wilco的Windows7环境下MyEclipse+Nutch2.2.1+Mysql搭建
2017-08-16 22:59
393 查看
下面的教程主要来源于Wilco的Windows7环境下MyEclipse+Nutch2.2.1+Mysql搭建
但是教程中有些地方不对,下面是更正后的,另外加了如何配置爬取数据到Solr的部分。
一、环境准备
首先肯定是配置开发环境,这里暂时不作详细描述。
需要的环境有jdk1.7,MyEclipse,SVN,ant,以及MyEclipse下的三个插件subclipse
、IvyDe和m2e,下载地址http://subclipse.tigris.org/update_1.8.x和http://www.apache.org/dist/ant/ivyde/updatesite以及http://download.eclipse.org/technology/m2e/releases。
PS: MyEclipse 10 已经自带了Ant,IvyDe和M2e,不需要另外安装。
MyEclipse 10 企业版连接不上Congratulation Center,因此无法在线安装插件。
两个可选方案是:
1. 直接解压插件的features文件夹和plugins文件夹到MyEclipse的安装目录MyEclipse\MyEclipse
10\dropins下;
2. 或者将插件解压到任意目录,然后再MyEclipse的安装目录MyEclipse\MyEclipse
10\dropins下新建svn.lnk文件,输入path=上述解压路径,然后保存。
Ant插件需要另外下载Ant后需要到Windows\Prefrences\Ant\Runtime中配置Ant Home:
Nutch <wbr>2.x在MyEclipse中爬取数据到MySQL和Solr
配置MySQL:
主要是配置编码,将MySQL安装目录下的my.ini中的编码改为utf8:
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
二、从svn检出项目,地址https://svn.apache.org/repos/asf/nutch/tags/release-2.2.1
Finish完成导入。
三、
修改ivy目录下的ivysetting.xml地址http://mirrors.ibiblio.org/maven2/(只有这个地址访问是正常的,其余的地址我尝试访问不了)
四、 修改ivy目录下的ivy.xml(增加mysql访问依赖java包)
修改gora-core版本为0.2.1,并解除注释gora-sql和mysql-connector-java
五、 Cd
到目录执行Ant eclipse(直接在Eclipse下ant build貌似有问题)
六、
回到Eclipse工程,刷新项目,会发现目录结构已经发生变化
七、
看到还有一个错误,是编码的问题,工程右键Properties -> Resource
->utf-8
八、
工程右键Build Path->Config Build Path->Order
and Export下选中Conf 文件夹置顶
九、
修改Conf文件夹下gora.properties配置mysql
#Default MySQL properties #
###############################
gora.datastore.default=org.apache.gora.sql.store.SqlStore
gora.datastore.autocreateschema=true
gora.sqlstore.jdbc.driver=com.mysql.jdbc.Driver
gora.sqlstore.jdbc.url=jdbc:mysql://localhost:3306/nutch?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull
gora.sqlstore.jdbc.user=root
gora.sqlstore.jdbc.password=123456
十、工程目录下新建文件夹urls,urls目录下新建一个文件url,里面输入要爬取的root_url,比如http://www.qq.com
十一、配置conf目录下nutch-site.xml
<property>
<name>http.agent.name</name>
<value>YourNutchSpider</value>
</property>
<property>
<name>http.accept.language</name>
<value>ja-jp, en-us,en-gb,en,zh-cn,zh-tw;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.
Itis a useful setting for search engines build for certain nationalgroup.</description>
</property>
<property>
<name>parser.character.encoding.default</name>
<value>utf-8</value>
<description>The character encoding to fall back to when no otherinformation
isavailable</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
asis. If relative, it is searched for on the classpath.</description>
</property>
<property>
<span> </span><name>generate.batch.id</name>
<span> </span><value>*</value>
</property>
<property>
<name>storage.data.store.class</name>
<value>org.apache.gora.sql.store.SqlStore</value>
<description>The Gora DataStore class for storing and retrievingdata.
Currently the following stores are available: ….</description>
</property>
十二、 配置完上述步骤后配置命令运行Run
Configuration选择org.apache.nutch.crawl.Crawler,参数设置urls -depth 3
-topN 5和-Dhadoop.log.dir=logs
-Dhadoop.log.file=hadoop.log
这时运行会遇到错误Exception inthread "main" java.io.IOException: Failed to
set permissions of path:
\tmp\hadoop-Administrator\mapred\staging\Administrator606301699\.staging
to 0700
十三、上述错误一般只是windows下才会遇到的,所以我们一般的做法是找到Hadoop-core-1.2.0源码中的org.apache.hadoop.fs下的FileUtil.java修改其中的CheckReturnValue方法,注释掉其中的内容
private static void checkReturnValue(boolean rv, File p, FsPermissionpermission) throws IOException {
// if (!rv) {
// throw new IOException("Failed to set permissions of path: " +p +
// " to " +
// String.format("o", permission.toShort()));
// }
}
然后编译成java包替换我们工程build/lib下的hadoop-core-1.2.0.jar。
另外一种方法是找到FileUtil.java编译过后的class文件,替换掉jar包中相应的class文件FileUtil.clas和FileUtil$CygPathCommand.clas(用压缩软件打开就行)
附上已修改编译的Hadoop-core-1.2.0.jar文件,包含单独的FileUtil.class文件,链接http://download.csdn.net/detail/cvj1991/7727299(1个积分,有钱的捧个钱场)和直接下载链接http://files.cnblogs.com/e-life/hadoop-core-1.2.0.rar
十四、接下来再运行就没有问题
这里注意,你会发现mysql数据库中很多记录除了id,status这几个基本字段有数据外其他值都是null,这是正常情况,请注意status字段,
status
记录抓取状态
1 unfetched (links not yet fetched due to limits set inregex-urlfilter.txt, -TopN crawl parameters, etc.)
2 fetched (page was successfully fetched)
3 gone (that page no longer exists)
4 redir_temp (temporary redirection — see reprUrl below for more details)
5 redir_perm (permanent redirection — see reprUrl below for moredetails)
34 retry
38 not modified
这是因为我们的topN设置太小,所以很多url被限制抓取了(当然还有可能是url被regex-urllfilter过滤了),自己注意一下就好了。
Nutch爬取数据到Solr
1、将nutch的schema替换原solr自带的schema。
2、首先在solr里面新建一个nutch的core。首先复制一份collection1为nutch-core,删掉nutch-core里面的core.properties,然后到solr管理界面去Add Core,名字要和nutch-core文字一致
3、将nutch的schema替换原solr自带的schema
4、备份原来的索引schema,用nutch的schema替代
修改schema,在中间加上
</pre><pre name="code"class="html"><field name="_version_"type="string" stored="true" indexed="true"/>
5、启动solr,抓取数据。在Run configuration中配置:
crawl urls -dir towns -depth 10 -threads 10-topN 10 -solr
http://192.168.125.129:8080/solr/nutch-core
配置完毕。
如果发生异常,可以查看./logs/hadoop.log文件。
但是教程中有些地方不对,下面是更正后的,另外加了如何配置爬取数据到Solr的部分。
一、环境准备
首先肯定是配置开发环境,这里暂时不作详细描述。
需要的环境有jdk1.7,MyEclipse,SVN,ant,以及MyEclipse下的三个插件subclipse
、IvyDe和m2e,下载地址http://subclipse.tigris.org/update_1.8.x和http://www.apache.org/dist/ant/ivyde/updatesite以及http://download.eclipse.org/technology/m2e/releases。
PS: MyEclipse 10 已经自带了Ant,IvyDe和M2e,不需要另外安装。
MyEclipse 10 企业版连接不上Congratulation Center,因此无法在线安装插件。
两个可选方案是:
1. 直接解压插件的features文件夹和plugins文件夹到MyEclipse的安装目录MyEclipse\MyEclipse
10\dropins下;
2. 或者将插件解压到任意目录,然后再MyEclipse的安装目录MyEclipse\MyEclipse
10\dropins下新建svn.lnk文件,输入path=上述解压路径,然后保存。
Ant插件需要另外下载Ant后需要到Windows\Prefrences\Ant\Runtime中配置Ant Home:
Nutch <wbr>2.x在MyEclipse中爬取数据到MySQL和Solr
配置MySQL:
主要是配置编码,将MySQL安装目录下的my.ini中的编码改为utf8:
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
二、从svn检出项目,地址https://svn.apache.org/repos/asf/nutch/tags/release-2.2.1
Finish完成导入。
三、
修改ivy目录下的ivysetting.xml地址http://mirrors.ibiblio.org/maven2/(只有这个地址访问是正常的,其余的地址我尝试访问不了)
四、 修改ivy目录下的ivy.xml(增加mysql访问依赖java包)
修改gora-core版本为0.2.1,并解除注释gora-sql和mysql-connector-java
五、 Cd
到目录执行Ant eclipse(直接在Eclipse下ant build貌似有问题)
六、
回到Eclipse工程,刷新项目,会发现目录结构已经发生变化
七、
看到还有一个错误,是编码的问题,工程右键Properties -> Resource
->utf-8
八、
工程右键Build Path->Config Build Path->Order
and Export下选中Conf 文件夹置顶
九、
修改Conf文件夹下gora.properties配置mysql
#Default MySQL properties #
###############################
gora.datastore.default=org.apache.gora.sql.store.SqlStore
gora.datastore.autocreateschema=true
gora.sqlstore.jdbc.driver=com.mysql.jdbc.Driver
gora.sqlstore.jdbc.url=jdbc:mysql://localhost:3306/nutch?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull
gora.sqlstore.jdbc.user=root
gora.sqlstore.jdbc.password=123456
十、工程目录下新建文件夹urls,urls目录下新建一个文件url,里面输入要爬取的root_url,比如http://www.qq.com
十一、配置conf目录下nutch-site.xml
<property>
<name>http.agent.name</name>
<value>YourNutchSpider</value>
</property>
<property>
<name>http.accept.language</name>
<value>ja-jp, en-us,en-gb,en,zh-cn,zh-tw;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.
Itis a useful setting for search engines build for certain nationalgroup.</description>
</property>
<property>
<name>parser.character.encoding.default</name>
<value>utf-8</value>
<description>The character encoding to fall back to when no otherinformation
isavailable</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
asis. If relative, it is searched for on the classpath.</description>
</property>
<property>
<span> </span><name>generate.batch.id</name>
<span> </span><value>*</value>
</property>
<property>
<name>storage.data.store.class</name>
<value>org.apache.gora.sql.store.SqlStore</value>
<description>The Gora DataStore class for storing and retrievingdata.
Currently the following stores are available: ….</description>
</property>
十二、 配置完上述步骤后配置命令运行Run
Configuration选择org.apache.nutch.crawl.Crawler,参数设置urls -depth 3
-topN 5和-Dhadoop.log.dir=logs
-Dhadoop.log.file=hadoop.log
这时运行会遇到错误Exception inthread "main" java.io.IOException: Failed to
set permissions of path:
\tmp\hadoop-Administrator\mapred\staging\Administrator606301699\.staging
to 0700
十三、上述错误一般只是windows下才会遇到的,所以我们一般的做法是找到Hadoop-core-1.2.0源码中的org.apache.hadoop.fs下的FileUtil.java修改其中的CheckReturnValue方法,注释掉其中的内容
private static void checkReturnValue(boolean rv, File p, FsPermissionpermission) throws IOException {
// if (!rv) {
// throw new IOException("Failed to set permissions of path: " +p +
// " to " +
// String.format("o", permission.toShort()));
// }
}
然后编译成java包替换我们工程build/lib下的hadoop-core-1.2.0.jar。
另外一种方法是找到FileUtil.java编译过后的class文件,替换掉jar包中相应的class文件FileUtil.clas和FileUtil$CygPathCommand.clas(用压缩软件打开就行)
附上已修改编译的Hadoop-core-1.2.0.jar文件,包含单独的FileUtil.class文件,链接http://download.csdn.net/detail/cvj1991/7727299(1个积分,有钱的捧个钱场)和直接下载链接http://files.cnblogs.com/e-life/hadoop-core-1.2.0.rar
十四、接下来再运行就没有问题
这里注意,你会发现mysql数据库中很多记录除了id,status这几个基本字段有数据外其他值都是null,这是正常情况,请注意status字段,
status
记录抓取状态
1 unfetched (links not yet fetched due to limits set inregex-urlfilter.txt, -TopN crawl parameters, etc.)
2 fetched (page was successfully fetched)
3 gone (that page no longer exists)
4 redir_temp (temporary redirection — see reprUrl below for more details)
5 redir_perm (permanent redirection — see reprUrl below for moredetails)
34 retry
38 not modified
这是因为我们的topN设置太小,所以很多url被限制抓取了(当然还有可能是url被regex-urllfilter过滤了),自己注意一下就好了。
Nutch爬取数据到Solr
1、将nutch的schema替换原solr自带的schema。
2、首先在solr里面新建一个nutch的core。首先复制一份collection1为nutch-core,删掉nutch-core里面的core.properties,然后到solr管理界面去Add Core,名字要和nutch-core文字一致
3、将nutch的schema替换原solr自带的schema
4、备份原来的索引schema,用nutch的schema替代
修改schema,在中间加上
</pre><pre name="code"class="html"><field name="_version_"type="string" stored="true" indexed="true"/>
5、启动solr,抓取数据。在Run configuration中配置:
crawl urls -dir towns -depth 10 -threads 10-topN 10 -solr
http://192.168.125.129:8080/solr/nutch-core
配置完毕。
如果发生异常,可以查看./logs/hadoop.log文件。
相关文章推荐
- Windows7环境下MyEclipse+Nutch2.2.1+Mysql搭建
- Windows7环境下MyEclipse+Nutch2.2.1+Mysql搭建
- Windows环境下MyEclipse+Nutch2.2.1+Mysql搭建
- windows7下的PHP+apache+mysql+eclipse for php 开发环境搭建
- 【转】Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境
- Nutch2.2.1 开发环境搭建
- 搜索引擎环境搭建nutch2.2.1+solr4.2+mysql5.7(附PHP solr拓展安装)
- 搭建eclipse环境下 Nutch+Mysql 二次开发环境
- windows7下的PHP+apache+mysql+eclipse for php 开发环境搭建
- apache+php+mysql搭建环境
- php开发环境搭建 win 7 + apache + mysql
- Win7下JavaEE开发环境的搭建与配置---全套环境(JDK+Tomcat+Maven+MySQL+Navicat+TortoiseSVN+Eclipse的SVN插件+Eclipse+power)
- Bugzilla windows7 Apache2.2环境搭建
- windows7平台搭建Python3开发环境(本学习过程全部基于Python3.x)
- Windows下Nginx+Mysql+Php(wnmp)环境搭建
- cocos2dx2.2.1的windows下android环境搭建
- php-5.3.28 + apache2.4.12 + mysql5.6.10环境搭建【新手详细教程】
- CentOS 5.5安装Nginx、PHP(FastCGI)、MySQL --搭建LNMP环境安装Wordpress、Discuz
- Mac OSX 10.9搭建nginx+mysql+php-fpm环境
- SpringBoot + MyBatis + MySQL + Maven在Intellij IDEA下开发环境的搭建