当前位置: 代码迷 >> 综合 >> nutch + hbase 安装部署
  详细解决方案

nutch + hbase 安装部署

热度:34   发布时间:2024-01-19 00:50:35.0
nutch安装
安装软件准备
安装环境:centos 6.5
nutch:v2.2.1
hbase:v0.94.18
本篇重点讲述nutch的安装和nutch与hbase的集成,hbase的安装请参考其他资料;
安装步骤:
  1. 安装ant:因编译nutch源码,需要ant工具,下载apache-ant 设置 系统变量
    写道
    [hadoop@master nutch]$ vim /etc/profile
     添加:ANT_HOME=/usr/local/ant 变量,并将AN_HOMT添加到PATH
  2. 下载nutch安装包:http://nutch.apache.org/downloads.html,下载目前最新的apache-nutch-2.2.1-src.tar.gz 
    Java代码 
    1. [hadoop@master nutch]$ wget -P /usr/local/ http://www.apache.org/dyn/closer.cgi/nutch/2.2.1/apache-nutch-2.2.1-src.tar.gz  
     下载压缩包到/usr/local/目录下,软后解压赋予权限
    Java代码 
    1. [hadoop@master local]$ chmod 777 apache-nutch-2.2.1-src.tar.gz   
    2. [hadoop@master local]$ tar zxvf apache-nutch-2.2.1-src.tar.gz   
    3. [hadoop@master local]$ mv apache-nutch-2.2.1 nutch  
    4. [hadoop@master local]$ cd nutch/  
     
  3. 修改nutch的conf/nutch-site.xml文件,添加如下代码:
    Java代码 
    1. <property>  
    2. <name>storage.data.store.class</name>  
    3. <value>org.apache.gora.hbase.store.HBaseStore</value>  
    4. <description>Default class for storing data</description>  
    5. </property>  
    6. <property>  
    7. <name>http.agent.name</name>  
    8. <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>  
    9. </property>  
     
  4. 修改ivy/ivy.xml文件,找到:
    Java代码 
    1. <dependency org="org.apache.gora" name="gora-hbase" rev="0.3"  
    2. conf="*->default" />  
     并把原有的注释去掉 
  5. 修改conf/gola.properies:
    Java代码 
    1. gora.datastore.default=org.apache.gora.hbase.store.HBaseStore  
     
  6. ant编译nutch:切换到nutch目录:
    Java代码 
    1. [hadoop@master local]$ cd nutch  
    2. [hadoop@master nutch]$ ant  
     编译过程会等待一段时间。
  7. 修改nutch配置文件:在编译nutch源文件前,为了支持hbase存储,需要修改相应的配置:
    Java代码 
    1. #拷贝hbase的配置文件到nutch   
    2. cp /usr/local/hbase/conf/hbase-site.xml /usr/local/nutch/conf/  
     复制hbase的jar包到nutch,本人安装的hbase是hbase0.94.18,nutch自带的gora0.3是只能支持到最高hbase0.92,默认是hbase0.90,而默认的0.90jar包去操作0.94的hbase,导致一个异常:
    Java代码 
    1. java.lang.IllegalArgumentException: Not a host:port pair  
     应该是低版本hbase client操作高版本hbase server的常见错误,但也不能直接用0.94的hbase jar包去替换,不然又会导致另一个错误:
    Java代码 
    1. java.lang.NoSuchMethodError:org.apache.hadoop.hbase.HColumnDescriptor.setMaxVersions(I)V  
     解决办法:我们选择hbase 0.92 到 0.93之间的版本,首先尝试0.92版本,可以从maven中心库下载:
    Java代码 
    1. http://central.maven.org/maven2/org/apache/hbase/hbase/0.92.2/hbase-0.92.2.jar  
     然后将hbase-0.92.2.jar包替换nutch
  8. 设置抓取网址: 编译后切换到目录:
    Java代码 
    1. [hadoop@master nutch]$ cd runtime/local/  
    2. [hadoop@master local]$ mkdir -p urls  
    3. [hadoop@master local]$ vim urls/seed.txt   
     填写seed.txt内容:  http://www.apache.org/  每一行为一个目标地址;并将urls目录放到hdfs文件系统上:
    Java代码 
    1. hadoop fs -copyFromLocal urls /home/hadoop/urls  
     
  9. 运行nutch测试:执行nutch inject将网页种子放到hbase中
    Java代码 
    1. [hadoop@master local]$ bin/nutch inject /home/hadoop/urls  
     查看hbase中表:
    Java代码 
    1. hbase shell  
    2.   
    3. 进入到hbaseshell后查看表  
    4. >list  
     看到有表“webpage”则表示成功;
  10. 然后一次执行
    Java代码 
    1. [hadoop@master local]$ bin/nutch  generate -topN 3  
    2. [hadoop@master local]$ bin/nutch fetch -all  
    3.   
    4. [hadoop@master local]$ bin/nutch parse -all  
    5.   
    6. [hadoop@master local]$ bin/nutch updatedb  
     
  11. 切换到hbase shell或使用hbase client查看数据