Hadoop上搭建Zookeeper、HBase

作者: 玄月府的小妖在debug | 来源:发表于2016-10-24 17:07 被阅读697次
    环境

    ubuntu 14.04
    hadoop 2.7.1 搭建过程,请参考我的上几篇文章
    master 192.168.31.131
    slave1 192.168.31.132
    slave2 192.168.31.133

    HBase依赖于zookeeper,故先搭建Zookeeper

    Zookeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以单机模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性。

    搭建Zookeeper

    1.在zookeeper.apache.org上下载zookeeper-3.4.8.tar.gz
    2.解压 tar -xzvf zookeeper-3.4.8.tar.gz
    3.修改权限 sudo chown -R cms(ubuntu用户名) zookeeper-3.4.8
    4.修改配置文件 /etc/profile,增加

    export ZOOKEEPER_HOME=$HOME/zookeeper-3.4.8
    export CLASSPATH=$ZOOKEEPER_HOME/lib
    export PATH=$ZOOKEEPER_HOME/bin
    

    5.对Zookeeper的配置文件的参数进行设置
    进入zookeeper-3.4.5/conf
    1)cp zoo_sample.cfg zoo.cfg

    一是是修改dataDir的文件目录位置

    2)在zookeeper下新建一个存放数据的目录
    mkdir zookerperdata
    3)vim zoo.cfg

    dataDir=/home/cms/zookeeper-3.4.8/zookerperdata
    

    二是配置id

       server.1=192.168.31.131:2888:3888  
       server.2=192.168.31.132:2888:3888  
       server.3=192.168.31.133:2888:3888 
    
    图示

    注意上图的配置中master,slave1分别为主机名
    在上面的配置文件中"server.id=host:port:port"中的第一个port是从机器(follower)连接到主机器(leader)的端口号,第二个port是进行leadership选举的端口号。

    4)创建myid
    接下来在dataDir所指定的目录下(zookeeper-3.4.8/zookerperdata/)创建一个文件名为myid的文件,文件中的内容只有一行,为本主机对应的id值,也就是上图中server.id中的id。例如:在服务器1中的myid的内容应该写入1。
    vim myid

    5)远程复制到slave1,slave2相同的目录下
    scp -r zookeeper-3.4.8 cms@slave1:/home/cms/
    scp -r zookeeper-3.4.8 cms@slave1:/home/cms/

    6)修改slave1,slave2机器上的myid的值分别为2和3

    启动ZooKeeper集群

    在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本,如下所示:

    cms@slave1:~/zookeeper-3.4.8$ bin/zkServer.sh start
    cms@slave2:~/zookeeper-3.4.8$ bin/zkServer.sh start```
    如下图所示:
    
    ![master](http:https://img.haomeiwen.com/i1908836/7a7a18d21e6a4ecf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    ![slave1](http:https://img.haomeiwen.com/i1908836/ba8f4b1b6c5c9f81.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    其中,QuorumPeerMain是zookeeper进程,启动正常。
    如上依次启动了所有机器上的Zookeeper之后可以通过ZooKeeper的脚本来查看启动状态,包括集群中各个结点的角色(或是Leader,或是Follower),如下所示,是在ZooKeeper集群中的每个结点上查询的结果:
    
    ![](http:https://img.haomeiwen.com/i1908836/b09d963015dd31d3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    ![](http:https://img.haomeiwen.com/i1908836/7d6521a6c2fa500c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    通过上面状态查询结果可见,slave1是集群的Leader,其余的两个结点是Follower。
    另外,可以通过客户端脚本,连接到ZooKeeper集群上。对于客户端来说,ZooKeeper是一个整体(ensemble),连接到ZooKeeper集群实际上感觉在独享整个集群的服务,所以,你可以在任何一个结点上建立到服务集群的连接,例如:
    ```zkCli.sh -server slave1:2181```
    
    ![](http:https://img.haomeiwen.com/i1908836/01e92ca35045f795.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    quit退出
    ######停止zookeeper进程:
    ```zkServer.sh stop```
    至此,Zookeeper集群安装大功告成!
    
    ######安装HBase
    1.下载以及解压hbase-1.0.3.tar.gz
    2.修改配置文件 /etc/profile,增加
    

    export HBASE_HOME=$HOME/hbase-1.0.3
    export CLASSPATH=$HBASE_HOME/lib
    export PATH=$HBASE_HOME/bin

    3.对Hbase的配置文件的参数进行设置
    进入Hbase/conf
    1)修改 hbase-env.sh
    

    export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
    export HBASE_MANAGES_ZK=false // 告诉hbase使用外部的zk

    2)修改hbase-site.xml
    

    <configuration>
    <property>
    <name>hbase.rootdir</name>
    <value>hdfs://master:9000/hbase</value>
    </property>
    <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    </property>
    <property>
    <name>hbase.zookeeper.quorum</name>
    <value>master,slave1,slave2</value>
    </property>
    <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/cms/zookeeper-3.4.8/zookerperdata</value>!-- 指定zk的数据文件夹 -->
    </property>
    </configuration>3)vim regionservers```
    添加内容

    slave1 
    slave2
    

    4)远程复制到slave1,slave2相同的目录下
    scp -r hbase-1.0.3 cms@slave1:/home/cms/
    scp -r hbase-1.0.3 cms@slave1:/home/cms/

    启动Hbase

    在启动hbase之前,要启动
    1)启动hadoop集群
    start-dfs.sh start-yarn.sh
    2)分别启动zk(注意每个节点的zk都要启动)
    zkServer.sh start
    3)启动hbase,在主节点上运行:

    start-hbase.sh```
    jps
    
    ![](http:https://img.haomeiwen.com/i1908836/63f89379701ddbfa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    ![](http:https://img.haomeiwen.com/i1908836/a3c0c21ebaf53ff7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    ####测试Hbase
    
    ![](http:https://img.haomeiwen.com/i1908836/6529db009e02c583.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    显示:
    
    ![](http:https://img.haomeiwen.com/i1908836/d47f836e2f7e4150.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    ![](http:https://img.haomeiwen.com/i1908836/5d71d532e4d6514b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    至此搭建成功
    ######参考文献
    [Zookeeper集群环境安装过程详解](http://blog.csdn.net/cruise_h/article/details/19046357)
    [hbase集群搭建](https://my.oschina.net/sucre/blog/700481)

    相关文章

      网友评论

        本文标题:Hadoop上搭建Zookeeper、HBase

        本文链接:https://www.haomeiwen.com/subject/vkyluttx.html