分享

nutch2.2.1安装及遇到问题解决办法

Alkaloid0515 发表于 2015-8-10 18:09:20 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 9966

问题导读

1.nutch安装需要做哪些准备?
2.nutch安装包含哪些步骤?
3.安装过程中不兼容问题,是如何解决的?







安装软件准备
安装环境:centos 6.5
nutch:v2.2.1
hbase:v0.94.18
本篇重点讲述nutch的安装和nutch与hbase的集成,hbase的安装请参考其他资料;


安装步骤:

1.安装ant:因编译nutch源码,需要ant工具,下载apache-ant 设置 系统变量
[mw_shl_code=bash,true][hadoop@master nutch]$ vim /etc/profile[/mw_shl_code]


添加:ANT_HOME=/usr/local/ant 变量,并将AN_HOMT添加到PATH

2.下载nutch安装包:http://nutch.apache.org/downloads.html,下载目前最新的apache-nutch-2.2.1-src.tar.gz

[mw_shl_code=bash,true][hadoop@master nutch]$ wget -P /usr/local/ http://www.apache.org/dyn/closer ... ch-2.2.1-src.tar.gz[/mw_shl_code]

下载压缩包到/usr/local/目录下,软后解压赋予权限
[mw_shl_code=bash,true][hadoop@master local]$ chmod 777 apache-nutch-2.2.1-src.tar.gz
[hadoop@master local]$ tar zxvf apache-nutch-2.2.1-src.tar.gz
[hadoop@master local]$ mv apache-nutch-2.2.1 nutch
[hadoop@master local]$ cd nutch/[/mw_shl_code]


3.修改nutch的conf/nutch-site.xml文件,添加如下代码:
[mw_shl_code=bash,true]<property>
<name>storage.data.store.class</name>
<value>org.apache.gora.hbase.store.HBaseStore</value>
<description>Default class for storing data</description>
</property>
<property>
<name>http.agent.name</name>
<value>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36</value>
</property>[/mw_shl_code]

4.修改ivy/ivy.xml文件,找到:

[mw_shl_code=bash,true]<dependency org="org.apache.gora" name="gora-hbase" rev="0.3"
conf="*->default" />[/mw_shl_code]
并把原有的注释去掉

5.修改conf/gola.properies:
[mw_shl_code=bash,true]gora.datastore.default=org.apache.gora.hbase.store.HBaseStore[/mw_shl_code]

并注释掉默认的数据库存储配置:
[mw_shl_code=bash,true]#gora.sqlstore.jdbc.driver=org.hsqldb.jdbc.JDBCDriver
#gora.sqlstore.jdbc.url=jdbc:hsqldb:hsql://localhost/nutchtest
#gora.sqlstore.jdbc.user=sa
#gora.sqlstore.jdbc.password=[/mw_shl_code]


6.ant编译nutch:切换到nutch目录:
[mw_shl_code=bash,true][hadoop@master local]$ cd nutch
[hadoop@master nutch]$ ant[/mw_shl_code]


7.修改nutch配置文件:在编译nutch源文件前,为了支持hbase存储,需要修改相应的配置:
[mw_shl_code=bash,true]#拷贝hbase的配置文件到nutch
cp /usr/local/hbase/conf/hbase-site.xml /usr/local/nutch/conf/[/mw_shl_code]

复制hbase的jar包到nutch,本人安装的hbase是hbase0.94.18,nutch自带的gora0.3是只能支持到最高hbase0.92,默认是hbase0.90,而默认的0.90jar包去操作0.94的hbase,导致一个异常:
[mw_shl_code=bash,true]java.lang.IllegalArgumentException: Not a host:port pair  [/mw_shl_code]

应该是低版本hbase client操作高版本hbase server的常见错误,但也不能直接用0.94的hbase jar包去替换,不然又会导致另一个错误:
[mw_shl_code=bash,true]java.lang.NoSuchMethodError:org.apache.hadoop.hbase.HColumnDescriptor.setMaxVersions(I)V[/mw_shl_code]

解决办法:我们选择hbase 0.92 到 0.93之间的版本,首先尝试0.92版本,可以从maven中心库下载:
[mw_shl_code=bash,true]http://central.maven.org/maven2/org/apache/hbase/hbase/0.92.2/hbase-0.92.2.jar[/mw_shl_code]


然后将hbase-0.92.2.jar包替换nutch

8.设置抓取网址: 编译后切换到目录:

[mw_shl_code=bash,true][hadoop@master nutch]$ cd runtime/local/
[hadoop@master local]$ mkdir -p urls
[hadoop@master local]$ vim urls/seed.txt [/mw_shl_code]

填写seed.txt内容:  http://www.apache.org/  每一行为一个目标地址;并将urls目录放到hdfs文件系统上:
[mw_shl_code=bash,true]hadoop fs -copyFromLocal urls /home/hadoop/urls[/mw_shl_code]

9.运行nutch测试:执行nutch inject将网页种子放到hbase中
[mw_shl_code=bash,true][hadoop@master local]$ bin/nutch inject /home/hadoop/urls  [/mw_shl_code]


查看hbase中表:
[mw_shl_code=bash,true]hbase shell

进入到hbaseshell后查看表
>list[/mw_shl_code]

看到有表“webpage”则表示成功;

10.然后一次执行


[mw_shl_code=bash,true][hadoop@master local]$ bin/nutch  generate -topN 3
[hadoop@master local]$ bin/nutch fetch -all

[hadoop@master local]$ bin/nutch parse -all

[hadoop@master local]$ bin/nutch updatedb
[/mw_shl_code]


11.切换到hbase shell或使用hbase client查看数据




没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条