nutch2.0完全分布式部署配置

nutch2.0的分布式环境依赖hadoop-0.20.2和hbase-0.90.*。

测试做在两台机器上,A(master):192.168.20.215,B(slave):192.168.20.214

 

目的是在A机上运行进程:

Hadoop: NameNode, SecondaryNameNode, JobTracker

Hbase: HMaster

在B机上运行进程:

Hadoop: DataNode, TaskTracker

Hbase: HQuorumPeer, HRegionServer

 

然后可以在此环境下运行nutch,OK,步骤如下:

 

1。配置hosts文件

A机和B机的/etc/hosts内容都如下:

127.0.0.1   localhost.localdomain   localhost
192.168.20.215  SYE
192.168.20.214  UBT

 

2。配置hadoop

A机的配置:

1》hadoop-env.sh

export JAVA_HOME=/opt/jdk1.6.0_21

2》core-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

   <property>
       <name>fs.default.name</name>
       <value>hdfs://SYE:8020</value>
   </property>

   <property>
       <name>hadoop.tmp.dir</name>  
   
       <value>/home/sychen/nutch/hadoop-0.20.2/hdfs_root</value>  
       <description>A base for other temporary directories.

       此处设为你自己想要的Hadoop根目录</description>  
   </property>
</configuration>


 

3》hdfs-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
   <property>
       <name>dfs.replication</name>
       <value>1</value>
       <description>副本个数,不配置默认是 3,应小于 datanode 机器数量</description>
   </property>

</configuration>



4》mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

   <property>
       <name>mapred.job.tracker</name>
       <value>SYE:8000</value>
       <description>jobtracker 标识:端口号,不是 URI</description>
   </property>


</configuration>


 

5》masters

SYE

6》slaves

UBT

 

配置完毕后将这些配置文件复制到B机的相应目录中。或者如果B机中还没有Hadoop,可以将整个Hadoop复制过去。

 

3。配置Hbase

A机的配置:

1》hbase-env.sh

export JAVA_HOME=/opt/jdk1.6.0_21

export HBASE_CLASSPATH=/home/sychen/nutch/hadoop-0.20.2/conf

export HBASE_MANAGES_ZK=true


 

2》hbase-site.xml

<configuration>

   <property>
       <name>hbase.rootdir</name>
       <value>hdfs://SYE/hbase_root</value>
   </property>

   <property>
       <name>hbase.cluster.distributed</name>
       <value>true</value>
   </property>

   <property>
       <name>hbase.zookeeper.quorum</name>
       <value>UBT</value>
   </property>

   <property>
       <name>hbase.zookeeper.property.dataDir</name>
       <value>/home/sychen/nutch/hbase-0.90.5/zookeeper_data</value>
   </property>


</configuration>



3》regionservers

UBT

 

配置完毕,将A机hbase的配置文件复制到B机的相应目录下。

OK,已经完成了大部分工作,现在可以启动Hadoop和hbase了。

在A机的hadoop/bin目录下执行:

./hadoop namenode -format

此时会依据配置文件生成hadoop的根目录

启动hadoop:

./start-all.sh

 

此时可以在浏览器中看到web界面。

在A机用jps查看:

sychen@SYE:~/nutch/hadoop-0.20.2/bin$ jps
3407 SecondaryNameNode
3605 Jps
3278 NameNode
3486 JobTracker

在B机用jps查看:

sychen@UBT:~/nutch/hadoop-0.20.2$ jps
3268 DataNode
3588 Jps
3411 TaskTracker

然后再启动hbase:

在A机的hbase/bin下执行:

./start-hbase.sh

用jps查看:

sychen@SYE:~/nutch/hbase-0.90.5/bin$ jps
3871 Jps
3407 SecondaryNameNode
3278 NameNode
3486 JobTracker
3755 HMaster

在B机下jps:

sychen@UBT:~/nutch/hadoop-0.20.2$ jps
3268 DataNode
3775 HQuorumPeer
3411 TaskTracker
4062 Jps
3911 HRegionServer

说明hbase已经正常启动。也可以通过web界面查看:http://192.168.20.215:60010

下面开始配置nutch

4。配置nutch

其实在nutch端没有什么需要配置的,只需要轻轻的将hbase/conf下的hbase-site.xml复制到hadoop/conf下即可,别问为什么,因为我也不知道,只是尝试了N多方式都不成功而最后发现这个办法可行而已。

 

复制完成之后,即可测试,在A机的nutch/runtime/deploy/bin下先put一个urls文件到hdfs上,之后执行:./nutch inject urls

如果能正常执行,则万事大吉,你会在hbase中发现一个叫做'webpage'的表,所有nutch抓取的数据都会在该表中存放。


5。solrindex

来补充一下索引:

1》先下载apache-solr-3.6.1,解压

2》在apache-solr-3.6.1/example目录下有一个start.jar文件,该文件可以启动solr服务:java -jar start.jar,但先别忙启动,因为还没有配置呢,配置在apache-solr-3.6.1/example/solr/conf/下

将该目录下的solrconfig.xml备份为solrconfig.xml.bak再对该文件操作,将其中的<str name="df">text</str>全部换为<str name="df">content</str>。再从nutch-2.0/conf/下面拷贝schema.xml到apache-solr-3.6.1/example/solr/conf/下面,覆盖原来的文件。

3》现在可以启动solr了:java -jar start.jar

4》在nutch-2.0/runtime/deploy/bin/下面执行nutch的全部抓取过程:inject>generate>fetch>parse>updatedb之后,可以执行solrindex的操作,用法如下:

Usage: SolrIndexerJob <solr url> (<batchId> | -all | -reindex) [-crawlId <id>]


其中<solr url>指代启动solr服务的ip:8983/solr,也就是说该参数可以这么写:http://ip:8983/solr/,下面这个较为关键:

跟着的参数是:(<batchId> | -all | -reindex),经过测试,需要执行两步才能成功建立索引文件:

a>./nutch solrindex http://192.168.20.215:8983/solr/ -all 或者 ./nutch solrindex http://192.168.20.215:8983/solr/ <batchId>

这里的batchId指每次generate的时候生成的batchId,可以在hbase中的webpage中查到,也会在执行generate步骤的时候在终端显示


b>./nutch solrindex http://192.168.20.215:8983/solr/ -reindex

这一步才能够生成索引文件(根据测试,具体原因不明),索引的文件在apache-solr-3.6.1/example/solr/data/index/下面,如下所示:

_0.fdt  _0.fnm  _0.nrm  _0.tii  segments_2
_0.fdx  _0.frq  _0.prx  _0.tis  segments.gen


5》现在可以在浏览器中测试了:http://192.168.20.215:8983/solr/

输入*,可以搜索出索引的全部内容,这个在索引的网页数量较少时可以测试是否索引成功。


over

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值