nutch 2.1 分布式hbase部署

本文详细介绍了如何在Hadoop和HBase环境下部署Nutch2.1爬虫系统,包括配置步骤、注意事项及异常处理等内容。
官方文档:http://wiki.apache.org/nutch/Nutch2Tutorial?action=show&redirect=GORA_HBase

现在网上针对nutch 2.0 以上版本的部署内容很残缺。经过两天奋战,终于把nutch 2.1在hbase上部署成功了!在此与网友分享。

准备两台机器:
cr5(master):192.168.8.185,cr8(slave):192.168.8.188
这两台机器必须保证相互的ssh是通的(具体可以问谷歌)
修改两台机器的/etc/hostname文件

cr5
或者
cr8

修改两台机器的/etc/hosts文件

192.168.8.185 cr5
192.168.8.188 cr8



我准备在cr5机上运行进程:

Hadoop: NameNode, SecondaryNameNode, JobTracker
Hbase: HMaster

在cr8机上运行进程:

Hadoop: DataNode, TaskTracker
Hbase: HQuorumPeer, HRegionServer

接下来我们开始部署hadoop和hbase
官网上有很多hadoop和hbase的版本,并不是所有的版本都可以被nutch 2.1支持的。

官方文档有这么一句话:
•Install and configure HBase. You can get it here (N.B. Gora 0.2 uses HBase 0.90.4, however the setup is known to work with more recent versions of the HBase 0.90.x branch)

保险起见还是采用推荐的 hbase 0.90.x 版本吧。

我选择的是 hadoop-1.0.4 和 hbase-0.90.6

那如果采用其他版本在运行nutch的时候会报以下异常

Exception in thread "main" java.lang.NoSuchMethodError:
org.apache.hadoop.hbase.HColumnDescriptor.setMaxVersions(I)V

我觉得是因为gora的原因,因为gora的版本已经很久没有更新。

[size=large][b]一、配置hadoop[/b][/size]
1. wget 命令下载对应的hadoop版本.tar.gz
2. tar zxvf hadoop版本.tar.gz 解压hadoop
3. cd conf 下修改配置文件
a. hadoop-env.sh
export JAVA_HOME=/opt/jdk1.6.0_21

b. 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://cr5:9000/</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/kfs/ww/data/hadoop_tmp</value>
<description>此处设置hadoop根目录</description>
</property>
</configuration>

c. 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>副本个数</description>
</property>
</configuration>

d. 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>cr5:9001</value>
<description>jobtracker 标识:端口号</description>
</property>
</configuration>

e. masters
cr5

f. slaves
cr8


配置完成后,将cr5的hadoop 复制到 cr8下面
在cr5 的hadoop/bin 下面运行
./hadoop -namenode format
./hadoop -datanode format

然后启动hadoop
./start-all.sh

检查启动成功与否
查看hadoop/logs下面的×.log日志确保没有异常
然后通过
http://localhost:50030
http://localhost:50070
来查看信息

[size=large][b]二、配置hbase[/b][/size]
1. wget 命令下载对应的hbase版本.tar.gz
2. tar zxvf hbase版本.tar.gz 解压hadoop
3. cd conf 下修改配置文件
a. hbase-site.xml

<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://cr5:9000/hbase</value>
</property>

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

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

<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/kfs/ww/data/zookeeper_data</value>
</property>

<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>

<property>
<name>hbase.tmp.dir</name>
<value>/home/kfs/ww/data/hbase_tmp</value>
</property>
</configuration>

[color=red]注意:这里的hdfs://cr5:9000/hbase和hadoop配置需对应[/color]

b. hadoop-env.sh

export JAVA_HOME=/opt/jdk1.6.0_21
export HBASE_CLASSPATH=~/ww/hbase-0.90.6/conf
export HBASE_MANAGES_ZK=true

c. regionservers
cr8


hbase 配置完成
当然还有后续的工作
1. 删除hbase中的hadoop-core-版本.jar,然后把hadoop中的hadoop-core-版本.jar和commons-collections-3.2.1.jar拷贝到hbase的lib中。
否则hbase 的HMaster无法启动!
2. 关闭防火墙

到hbase/bin 下 通过 ./start-hbase.sh 启动hbase
验证启动与否查看log是否有异常
或者 http://localhost:60010查看具体信息

[size=large][b]三、nutch 配置[/b][/size]
部署到eclipse中就不加累述了,主要是配置~
1. wget 命令下载对应的hadoop版本.tar.gz
2. tar zxvf hadoop版本.tar.gz 解压hadoop
3. cd conf 下修改配置文件
a. gora.properties
gora.datastore.default=org.apache.gora.hbase.store.HBaseStore

b. nutch-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>http.agent.name</name>
<value>test-nutch</value>
</property>

<property>
<name>http.robots.agents</name>
<value>test-nutch,*</value>
</property>

<property>
<name>http.agent.name.check</name>
<value>true</value>
</property>

<!-- property> <name>plugin.includes</name> <value>.*</value> <description>Enable
all plugins during unit testing.</description> </property -->

<property>
<name>distributed.search.test.port</name>
<value>60000</value>
<description>TCP port used during junit testing.</description>
</property>

<property>
<name>http.accept.language</name>
<value>ja-jp, en-us,en-gb,en;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.
It
is a useful setting for search engines build for certain national
group.
</description>
</property>

<property>
<name>parser.character.encoding.default</name>
<value>utf-8</value>
<description>The character encoding to fall back to when no other
information
is available
</description>
</property>

<property>
<name>storage.data.store.class</name>
<value>org.apache.gora.hbase.store.HBaseStore</value>
<description>The Gora DataStore class for storing and retrieving data.
Currently the following stores are available: ….
</description>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value>C:/data/hadoop_tmp</value>
<description>此处设置hadoop根目录</description>
</property>

</configuration>

c. nutch-site.xml

<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
as is. If relative, it is searched for on the classpath.</description>
</property>

d. hbase-site.xml

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

<configuration>

<property>
<name>hbase.master</name>
<value>cr5:60000</value>
</property>

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

<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>

</configuration>

e. ivy.xml

<dependency org="org.apache.gora" name="gora-hbase" rev="0.2.1" conf="*->default" />

f. 新建urls文件夹,然后再文件夹中创建seed.txt ,在seed.txt中写入需要抓取的链接
g. regex-urlfilter.txt 加入抓取条件正则

配置完成,后续工作
nutch中的hbase-版本.jar需和部署的hbase的版本统一

运行nutch
配置Arguments信息
1. Proguam arguments
urls -depth 3 topN 5
这里的urls就是nutch配置中生成的url种子文件夹


2. VM arguments
-Xms256m -Xmx512m -Dhadoop.log.dir=logs -Dhadoop.log.file=hadoop.log


大功告成~~~


[size=large][b]四、运行过程中异常处理[/b][/size]
1. point org.apache.nutch.net.URLNormalizer not found.请参见[url]http://youkimra.iteye.com/blog/1039903[/url]

2. ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.io.IOException: Failed to set permissions of path: \tmp\hadoop-admin\mapred\local\ttprivate to 0700
请参见:[url]http://download.youkuaiyun.com/detail/java2000_wl/4326323[/url]

3. nutch 中有一些plugin 的类缺少包,遇到问题补全包即可


转载请注明来自:[url]http://wangwei3.iteye.com/blog/1818599[/url]
【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究改进中。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值