知识点
相关文章
更多最近更新
更多nutch2.0完全分布式部署配置
2019-03-27 01:13|来源: 网路
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/
输入*,可以搜索出索引的全部内容,这个在索引的网页数量较少时可以测试是否索引成功。
转自:http://www.cnblogs.com/chenying99/articles/3139612
相关问答
更多-
redis如何分布式部署[2024-03-22]
redis 的持久化: 快照(snapshot):特定时间、特定命令、特定条件来触发,把某一时刻在内存中的数据全部写出到硬盘当中去。 快照的时间不是实时的,可能会有数据的丢失。 在宕机之后,会把全部dump文件中的数据读入到内存中,会I/O密集。 AOF(append only file):每一次更新都会记录日志。日志文件是在快照的基础上来写的。 (在AOF这里的“快照”跟上面的“快照”不是一个东西。) redis的 rdb 和 aof 持久化的区别: 参考:http://ptc.35.com/?p=275 ... -
redis如何分布式部署[2022-03-29]
redis 的持久化: 快照(snapshot):特定时间、特定命令、特定条件来触发,把某一时刻在内存中的数据全部写出到硬盘当中去。 快照的时间不是实时的,可能会有数据的丢失。 在宕机之后,会把全部dump文件中的数据读入到内存中,会I/O密集。 AOF(append only file):每一次更新都会记录日志。日志文件是在快照的基础上来写的。 (在AOF这里的“快照”跟上面的“快照”不是一个东西。) redis的 rdb 和 aof 持久化的区别: 参考:http://ptc.35.com/?p=275 ... -
分布式web应用集群,应用部署是怎么全部部署的[2023-08-17]
1)比方说我先在有5台服务器,想做一个集群,是不是意味着我要把应用程序在5台服务器上分别部署?如果这样的话,session能使先共享吗? 根据中间件不同部署方式也不同。tomcat下面就要分别部署了,weblogic支持分别部署,也支持统一部署(两种方式各有优缺点,推荐分别部署)。 中间件基本上都支持session共享复制,不过实现方式可能有点区别(有的是基于容器,有的是基于memcache等等)。可参考之前的问题(关于jboss的): -
在 /usr/local/hadoop/ 下面启动,找到是/opt/Hadoop/下面的hadoop安装包,是不是HADOOP_HOME环境变量配置的有问题。 可以到海牛部落交流,那里有好多学习hadoop的朋友
-
什么是服务器分布式部署?[2022-10-12]
1、什么是数据中心分布式部署 数据中心分布式部署,边缘数据中心是基础,是CDN的更下一层,服务对象是IDC及CDN需求的客户。对于流量大的客户,可多点分布,就近部署。 2、分布式部署的好处 A:在全国没有任何一个数据中心可以覆盖全国的每个角落,数据中心集中在一个点不能更好的服务全国各区域。分布式部署相当于在欧洲很多个国家之间的互联网关系。二三线城市就近布点,三级城市网络品质提升。针对网游、网络视频、网络下载等全国分布节点需求较高的客户,选择分布式节点托管在降低成本的同时还更好的保障了二、三级城市业务的网络运 ... -
软件开发中经常提到一个分布式这个词,请问什么是分布式开发[2023-11-11]
现在的软件开发都讲究个"层"的意思. 分布式开发将一个系统分为三个层次:客户端应用程序,应用程序服务器,后台数据库。客户端提出请求,应用服务器接受请求并处理然后返回数据给客户端,后台数据库当然是提供数据。多半是用于WEB开发.这样的分层开发有很多 好处..我就不多说了... -
分布式到底是什么意思[2023-07-24]
这个比较复杂,这个属于架构方面的,大概是指客户端和服务器端的关系。以前的程序的服务端比较集中在一块,分布式的服务器端可能分布在不同的地方,如云端等等。。。 -
什么是分布式系统?[2022-11-11]
一、DFS为何物? DFS 即微软分布式文件系统的简称,系统管理员可以利用它来有效的整合网络资源,并把这些资源以单一的层次结构呈现给网络用户。管理员利用它可以把资源发布成一 个树形结构,这样大大简化了为用户进行资源配置和对资源管理的工作量。我们可以在不同的机器上调整和移动文件,这不会影响到用户的访问。 二、为什么要使用DES? 1、DFS使用了现有网络中的Share权限,管理员不必进行新的配置 2、通过一个DFS树形结构用户就可以访问多个网络资源,而不用再把远程驱动器映射到本地共享资源中。 3、DFS可以配 ... -
什么是分布式系统?[2024-03-23]
分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无复本、数据存于哪个站点以及事务在哪个站点上执行等。 故名思义,分布式 ... -
尽管在将来的发行版中有计划添加此功能,但在当前版本上无法在已创建的分布式对象上即时更改配置。 一旦创建,地图配置将停留在节点级别而不是集群级别。 只要你从配置中创建新的分布式映射,使用它并销毁它,你的方法应该没有任何问题。 Changing the configuration on the fly on an already created Distributed object is not possible with the current version though there is a plan t ...