`
wangwei3
  • 浏览: 121532 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

nutch 2.1 分布式hbase部署

阅读更多
官方文档: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的版本已经很久没有更新。

一、配置hadoop
   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
来查看信息

二、配置hbase
   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>
     

     注意:这里的hdfs://cr5:9000/hbase和hadoop配置需对应

     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查看具体信息

三、nutch 配置
部署到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


大功告成~~~


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

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
请参见:http://download.csdn.net/detail/java2000_wl/4326323

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


转载请注明来自:http://wangwei3.iteye.com/blog/1818599
分享到:
评论

相关推荐

    nutch2.1最新svn打包

    这个“nutch2.1最新svn打包”资源包含的是Nutch 2.1的最新源代码版本,通过Subversion (SVN) 版本控制系统获取并打包的完整资源。 Nutch的核心功能包括: 1. **网络爬虫**:Nutch使用了一种基于链接分析的爬行策略...

    nutch2.1缺少包org.restlet-2.0.5.jar

    nutch2.1导入Eclipse过程中,import org.restlet.×;错误,缺少的包。

    nutch2.1缺少包org.restlet.ext.jackson.jar

    nutch2.1导入Eclipse过程中,import org.restlet.×;错误,缺少的包。

    nutch分布式搜索索引热替换程序

    单机分布式搜索索引热替换程序可能是一个针对较小规模部署的简化版本,它允许在一台机器上模拟分布式环境,进行索引热替换的实践和测试。这对于理解和验证热替换过程,以及在上线前调试和优化算法是非常有用的。 总...

    nutch2.3+hbase0.94.14+hadoop1.2.1安装文档.

    nutch2.3+hbase0.94.14+hadoop1.2.1安装文档.txt )

    apache-nutch-2.1

    Nutch 2.1 版本是其发展过程中的一个重要里程碑,提供了许多改进和优化,使其在大数据处理和分布式计算方面表现出色。 1. **Nutch 架构**: Nutch 采用模块化设计,主要包括以下几个核心部分: - **Fetcher**:...

    Linux下Nutch分布式配置和使用

    Linux下Nutch分布式配置 使用:分布式爬虫、索引、Nutch搜索本地数据、Nutch搜索HDFS数据。

    nutch2.2.1安装步骤.docx

    Apache Nutch 是一个开源的网络爬虫框架,用于抓取互联网上的网页并建立索引,以便进行全文搜索。Nutch 2.2.1 是一个稳定版本,它依赖于其他几个组件来完成其功能,包括 Apache Ant、Apache Tomcat、Java 开发工具包...

    nutch-2.1源代码

    7. **分布式计算**:Nutch-2.1虽然适用于Windows系统,但它是设计为在大规模分布式环境中运行的。它可以利用Hadoop框架进行分布式索引和搜索,处理海量数据。 在研究和使用Nutch-2.1源代码时,你可以深入了解搜索...

    apahce-nutch-2.1

    Nutch的版本2.1是一个成熟的版本,包含了多个改进和优化,使其在处理大规模网页抓取和索引时表现卓越。 Nutch的主要组件包括: 1. **Web爬虫**:Nutch的爬虫负责自动遍历互联网上的网页。它通过跟踪HTML中的链接...

    Nutch-1.0分布式安装手册.rar

    Nutch-1.0分布式安装手册是一份详细指导如何在多台计算机上部署和配置Apache Nutch的文档。Apache Nutch是一款开源的网络爬虫软件,用于抓取互联网上的网页并进行索引,是大数据领域中搜索引擎构建的重要工具。这份...

    Linux下Nutch分布式配置和使用.rar

    这是本人在完全分布式环境下在Cent-OS中配置Nutch-1.1时的总结文档,但该文档适合所有Linux系统和目前各版本的nutch。 目 录 介绍 ............................................................... 2 0 集群...

    分布式搜索引擎nutch开发

    实际应用中,Nutch通常与其他大数据组件一起使用,如HBase存储索引数据,Solr或Elasticsearch提供检索服务。此外,Nutch也可以作为数据挖掘、文本分析等项目的前期数据获取工具。 6. **Nutch社区与资源** Nutch有...

    nutch1.3在myclipse部署工程源码

    本教程将详细介绍如何在MyEclipse中部署Nutch1.3的工程源码。 首先,我们需要确保具备以下环境: 1. 安装了Java Development Kit (JDK):因为Nutch和MyEclipse都是基于Java的,所以确保系统已安装JDK且版本与Nutch...

    基于Nutch和Hadoop的分布式搜索引擎探究.pdf

    本文对Nutch和Hadoop的分布式搜索引擎进行了系统的探究,从理论架构到实际部署都有所涉及。通过分析Nutch和Hadoop的系统结构和功能,文章提出了利用这两种技术设计高效、可靠、可扩展的分布式搜索引擎的方法,并指出...

    Nutch在Tomcat下的部署.doc

    Nutch 是一个开源的网络爬虫项目,用于抓取互联网上的网页并建立索引,而Tomcat是一款流行的Java应用服务器,常用来部署Web应用程序。在本文中,我们将深入探讨如何在Tomcat环境下部署Nutch以及解决相关问题。 首先...

Global site tag (gtag.js) - Google Analytics