`
haohouhou
  • 浏览: 15628 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

Hadoop,Hbase,Zookeeper在虚拟机单节点中的整合

阅读更多
    近日整合Hadoop,Hbase,Zookeeper时遇到不少问题,经过一番苦战后终于整合成功,现将整合中遇到的一些问题整理一下。

前置说明:
版本:
JDK: 1.6.*
Hadoop: 0.20.2
Hbase: 0.90.4
Zookkeeper: 3.4.3
centOS: CentOS release 5.3

节点数: 1 (虚拟机)

安装配置:
一、安装JDK

二、配置host
     修改配置 /etc/hosts 如下:
         192.168.0.23   hadoopName
     此hostname为hadoop、Hbase、Zookeeper配置文件中共同使用。这一步非常重要。也会涉及到windows中eclipse runonhadoop插件的运行。

二、安装Hadoop
      Hadoop安装比较容易,请参考《hadoop权威指南》、陆嘉恒版《hadoop实战》。

三、安装Zookeeper
      运行模式为:集群伪分布模式
      1、解压Zookeeper,将$ZK_INSTALL/bin加入环境变量。
      2、拷贝$ZK_INSTALL/conf下的zoo.example.cfg,分别复制为zoo1.cfg、zoo2.cfg、zoo3.cfg
      3、配置zoo*.cfg:
      zoo1.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/usr/local/zookeeper-3.4.3/snapshot/d_1
# the port at which the clients will connect
clientPort=2181
#the location of the log file
dataLogDir=/usr/local/zookeeper-3.4.3/logs
server.[color=red]1[/color]=hadoopName:2887:3887
server.[color=red]2[/color]=hadoopName:2888:3888
server.[color=red]3[/color]=hadoopName:2889:3889


      zoo2.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/usr/local/zookeeper-3.4.3/snapshot/d_2
# the port at which the clients will connect
clientPort=2182
#the location of the log file
dataLogDir=/usr/local/zookeeper-3.4.3/logs
server.[color=red]1[/color]=hadoopName:2887:3887
server.[color=red]2[/color]=hadoopName:2888:3888
server.[color=red]3[/color]=hadoopName:2889:3889


      zoo3.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/usr/local/zookeeper-3.4.3/snapshot/d_3
# the port at which the clients will connect
clientPort=2183
#the location of the log file
dataLogDir=/usr/local/zookeeper-3.4.3/logs
server.[color=red]1[/color]=hadoopName:2887:3887
server.[color=red]2[/color]=hadoopName:2888:3888
server.[color=red]3[/color]=hadoopName:2889:3889


      4、在zoo*.cfg中的dataDir指定的目录下,新建myid文件
     例如:$ZK_INSTALL/snapshot/d_1下,新建myid。在myid文件中输入1。表示为server.1。
           如果为snapshot/d_2,则myid文件中的内容为 2,依此类推。

      5、如果在zoo*.cfg中配置了
     
 
       #the location of the log file
       dataLogDir=/usr/local/zookeeper-3.4.3/[color=red]logs[/color]
       

       如果$ZK_INSTALL下不存在logs目录,也会报错。所以需要手动创建logs文件夹。
       报错异常信息如下:
      
2012-02-26 00:06:47,364 [myid:] - INFO  [main:QuorumPeerConfig@101] - Reading configuration from: ../conf/zoo3.cfg
2012-02-26 00:06:47,372 [myid:] - ERROR [main:QuorumPeerMain@85] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing ../conf/zoo3.cfg
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:121)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:101)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
Caused by: [color=red]java.lang.IllegalArgumentException: dataLogDir /usr/local/zookeeper-3.4.3/logs is missing.[/color]
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:247)
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:117)
        ... 2 more
Invalid config, exiting abnormally
       

   
       6、现在就可以启动zookeeper了:
       zkServer.sh start zoo1.cfg
       zkServer.sh start zoo2.cfg
       zkServer.sh start zoo3.cfg
       然后输入jps,查看进程:
       [root@hadoopname snapshot]# jps
4208 SecondaryNameNode
4587 QuorumPeerMain
4498 QuorumPeerMain
4273 JobTracker
4014 NameNode
4106 DataNode
4617 Jps
4547 QuorumPeerMain
4424 TaskTracker
 
     有3个QuorumPeerMain进程启动了,zookeeper启动成功。还可以使用zookeeper自带的四字命令进行启动成功的测试:
     [root@hadoopname snapshot]# echo ruok | nc hadoopName 2181
      imok
     返回了imok,证明启动成功。如果什么都没有返回,证明启动失败。

四、安装Hbase
      1、解压Hbase后,将$HBASE_INSTALL/bin加入环境变量。
      2、配置$HBASE_INSTALL/conf/hbase-env.sh:
         export JAVA_HOME=$YOUR_JAVA_HOME
         # Tell HBase whether it should manage it's own instance of Zookeeper or not.
         export HBASE_MANAGES_ZK=false    <==默认为true,我们不使用hbase自带的zookeeper实例。

      3、配置hbase-site.xml
<configuration>
<property>
        <name>hbase.rootdir</name>
        <value>hdfs://[color=red]hadoopName[/color]:9000/hbase</value>
</property>
<property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
</property>
<property>
        <name>dfs.replication</name>
        <value>1</value>
</property>
<property>
        <name>hbase.zookeeper.quorum</name>
        <value>[color=red]hadoopName[/color]</value>
</property>
<property>
        <name>zookeeper.session.timeout</name>
        <value>60000</value>
</property>

      5、将$HBASE_INSTALL/lib下的hadoop-core-0.20-append-r1056497.jar删除,替换为$HADOOP_INSTALL/hadoop-0.20.2-core.jar
      如果不替换,则在调用start-hbase.sh时HMaster无法启动。
      报错异常如下:
     
      12/02/26 00:35:02 INFO zookeeper.ClientCnxn: Session establishment complete on server hadoopname/192.168.0.23:2181, sessionid = 0x135b544b002000f, negotiated timeout = 40000
12/02/26 00:35:02 INFO client.HConnectionManager$HConnectionImplementation: ZooKeeper available but no active master location found
12/02/26 00:35:02 INFO client.HConnectionManager$HConnectionImplementation: getMaster attempt 0 of 1 failed; no more retrying.
org.apache.hadoop.hbase.MasterNotRunningException
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:357)
        at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:94)
        at org.apache.hadoop.hbase.master.HMasterCommandLine.stopMaster(HMasterCommandLine.java:163)
        at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:104)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
        at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:76)
        at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:1078)
12/02/26 00:35:02 ERROR master.HMasterCommandLine: Master not running
      


      ps:在hbase官方说明中有另外一种方法,小生暂时未试验过。http://hbase.apache.org/book.html#hadoop

      6、这时我们再启动start-hbase.sh,就会成功啦!
[root@hadoopname conf]# start-hbase.sh
starting master, logging to /usr/local/hbase-0.90.4/logs/hbase-root-master-hadoopname.out
hadoopName: starting regionserver, logging to /usr/local/hbase-0.90.4/logs/hbase-root-regionserver-hadoopname.out
[root@hadoopname conf]# jps
5004 HMaster
5101 HRegionServer
4208 SecondaryNameNode
5181 Jps
4587 QuorumPeerMain
4498 QuorumPeerMain
4273 JobTracker
4014 NameNode
4106 DataNode
4547 QuorumPeerMain
4424 TaskTracker

     至此,hadoop、hbase、zookeeper在虚拟机下的整合就完毕了。

总结:
     从整合的过程中可以感受到,hadoop的问题较少,而hbase和zk问题较多。比如zk的zoo.cfg配置参数中,dataDir指定的目录如果未创建,则zk会自动创建;但是dataLogDir参数指定的路径却不会自动创建。
     最后,如果本文中有什么遗漏或不正确的地方,还请各位朋友斧正。在下感激不尽!
1
1
分享到:
评论
2 楼 小才纸 2016-03-08  
mark
1 楼 di1984HIT 2013-02-18  
嗯,记录一下。

相关推荐

    Hadoop+Zookeeper+Hbase+Hive部署.doc

    大数据平台搭建之 Hadoop+Zookeeper+Hbase+Hive 部署指南 大数据平台搭建是指通过集成多种大数据处理技术,构建一个功能强大、可靠、高效的数据处理平台。本文档主要介绍如何部署 Hadoop、Zookeeper、Hbase、Hive ...

    hbase配置内置的zookeeper

    在 HBase 的部署环境中,ZooKeeper 起着非常重要的作用,它主要用于协调集群中的各个节点,并且管理 HBase 的元数据。通常情况下,HBase 可以与独立的 ZooKeeper 服务进行集成,但为了简化部署过程,特别是对于小型...

    hadoop及hbase部署与应用

    它将大任务拆分为小任务(map阶段),然后在集群节点上并行执行,最后通过reduce阶段整合结果。 2. **Hadoop部署**: - 部署Hadoop有三种模式:本地单机模式、伪分布式模式和完全分布式模式。本地模式只用于开发和...

    Hadoop+Spark+Hive+HBase+Oozie+Kafka+Flume+Flink+ES+Redash等详细安装部署

    在大数据领域,构建一个完整的生态系统是至关重要的,其中包括多个组件,如Hadoop、Spark、Hive、HBase、Oozie、Kafka、Flume、Flink、Elasticsearch和Redash。这些组件协同工作,提供了数据存储、处理、调度、流...

    Linux下Hbase和zookeeper的安装和部署

    在Linux虚拟机中,选择任一节点解压Zookeeper的压缩文件: ```bash tar -zxvf zookeeper-3.4.9.tar.gz ``` ##### 步骤二:配置环境变量 接下来,配置环境变量以便于后续操作: ```bash # 设置Zookeeper的安装路径 ...

    Hadoop与HBase部署文档

    - **主机**:部署Hadoop和HBase需要多台服务器或虚拟机,每台机器需要有足够的硬件资源,如内存、CPU和磁盘空间。 - **IP选择**:为每台机器分配静态IP地址,并确保网络通信正常。在集群环境中,节点间通信至关...

    大数据综合实验环境搭建(3个集群、Zookeeper、Hive、HBase)

    在本资源中,我们将 Zookeeper 安装到实验环境中,并对其进行配置,以便在后续的实验中使用。 四、 Hive 和 HBase 的安装 Hive 和 HBase 是 Apache Hadoop 生态系统中的两个重要组件。Hive 是一个基于 Hadoop 的...

    基于虚拟机集hbase1.2.1配置文件

    在IT领域,HBase是一个分布式、面向列的开源数据库,它是构建在Apache Hadoop文件系统(HDFS)之上的,特别适合处理大规模数据。这里提到的"基于虚拟机集hbase1.2.1配置文件"是针对一个由一个Master节点和三个Slave...

    虚拟机搭建Hadoop伪分布式及Hbase.docx

    【虚拟机搭建Hadoop伪分布式及Hbase】的文档主要涉及了如何在虚拟机环境下配置Hadoop和Hbase。下面将详细阐述整个过程的关键步骤和相关知识点。 首先,我们需要准备必要的软件,包括虚拟机软件VMware 16.0、Ubuntu ...

    zookeeper+hbase集群搭建

    在本文中,我们将深入探讨如何搭建一个Zookeeper和HBase集群,以及在过程中可能遇到的常见问题和解决方案。Zookeeper和HBase都是大数据处理领域的关键组件,Zookeeper作为一个分布式协调服务,而HBase是一个基于...

    hadoop-0.20.205.0和hbase-0.90.5,集群和单机 安装配置

    本文将详细介绍如何在三台虚拟机上安装配置Hadoop-0.20.205.0和HBase-0.90.5,包括单机模式和集群模式的安装配置流程。 #### 二、环境准备 首先,我们需要准备三台虚拟机,并安装CentOS-5.7操作系统。这三台虚拟机...

    2.1 hadoop+hbase部署和测试1

    在本教程中,我们将详细介绍如何在 Vsphere 虚拟机上部署 Hadoop 和 HBase,以及进行相关测试。以下是部署和配置的关键步骤: 1. **规划与环境设置** - 使用 CentOS 6.6 x64 操作系统的Vsphere虚拟机作为基础,每...

    使用Java API连接虚拟机HBase并进行数据库操作,Java源代码

    在本文中,我们将深入探讨如何使用Java API连接到运行在虚拟机上的HBase数据库,并进行相关的数据操作。HBase是一个分布式的、版本化的、基于列族的NoSQL数据库,它构建于Hadoop之上,适用于处理大规模的数据存储和...

    hadoop2.7+hbase1.0+hive1.2+zookeeper3.4.6

    在探讨Hadoop2.7.1、HBase1.0、Hive1.2以及ZooKeeper3.4.6的安装和配置时,我们首先需要了解这些组件的基本功能以及它们在整个大数据处理框架中所扮演的角色。以下对这些知识点进行详细说明: ### Hadoop2.7.1 ...

    ubuntu分布式部署zookeeper和hbase

    - **hbase-site.xml**: 配置HBase与Hadoop的集成以及Zookeeper集群。 ```xml &lt;name&gt;hbase.tmp.dir &lt;value&gt;/opt/data &lt;name&gt;hbase.rootdir &lt;value&gt;hdfs://master:9000/hbase &lt;name&gt;hbase.cluster....

    ZooInspector_虚拟机_

    总结而言,ZooInspector是ZooKeeper管理和故障排查的强大工具,尤其在虚拟机环境中,它能帮助我们更好地理解Hadoop生态系统的运行状况,特别是对HBase的管理。通过熟练掌握ZooInspector的使用,可以提升我们在大数据...

    Hbase集群部署.pdf

    文档中对于HBase集群的部署进行了详细说明,包括了HBase集群与Hadoop集群的配置关系,HBase的配置文件设置,以及如何配置虚拟机环境来支持HBase集群的正常运行。每个步骤都有详细的描述和操作指令,确保读者可以依照...

    hbase-1.1.3-bin.tar.gz

    描述中提到"在Vmware中创建3台虚拟机master、slave、slave1,部署hadoop集群",这意味着我们将进行一个典型的Hadoop分布式环境的搭建,其中包含一个主节点(Master)和两个工作节点(Slaves)。Hadoop集群的架构包括...

    Hadoop部署大报告-期末大作业.docx

    本报告主要讲述了如何在虚拟机上安装和部署Hadoop及其相关的组件,如JDK、Zookeeper和Hbase,以实现一个完整的分布式大数据处理环境。 一. Hadoop生态框架 1. 总概要:Hadoop是一个由Apache基金会开发的开源项目...

Global site tag (gtag.js) - Google Analytics