Zookeeper,Hbase 伪分布,集群搭建

工作中一般使用的都是zookeeper和Hbase的分布式集群.

    more /etc/profile
    cd /usr/local
    zookeeper-3.4.5.tar.gz

zookeeper在安装部署的时候,节点数量必须是不少于三个的奇数个.

 

 ===================================

伪分布式搭建(3个节点):

    伪分布式集群,就是在一台pc中,启动多个zookeeper的实例,完全分布式是指每台pc,启动一个zookeeper实例.

  1.1 解压缩zookeeper-3.4.5.tar.gz

    tar -zxvf zookeeper-3.4.5.tar.gz
    mv zookeeper-3.4.5 zookeeper
    cd zookeeper
    rm -rf docs/
    rm -rf src/
    cd conf/

  1.2 执行命令:

    cp zoo_sample.cfg zoo1.cfg
    more zoo1.cfg    
    tickTime=2000:集群中,各个节点通信的单位叫tick,通信时间是2000毫秒.
    initLimit=10:10个tick,初始化同步时需要的时间.
    syncLimit=5:同步使用的时间.
    dataDir=/tmp/zookeeper:存储数据使用的一些目录.
    clientPort=2181:    客户端与zookeeper通信所使用的端口.

  1.3 修改文件conf/zoo1.cfg,修改内容如下:

    vi zoo1.cfg
    dataDir=/usr/local/zookeeper/zoo1/data/
    clientPort=2181
    #描述zookeeper三个节点之间的关系,
    #4:每个节点的标示. hadoop4:标示zookeeper所在的机器.
    server.1=hadoop4:2888:3888
    server.2=hadoop4:2889:3889
    server.3=hadoop4:2890:3890

  1.4 执行命令:

    cp zoo1.cfg zoo2.cfg

  1.5 修改文件conf/zoo2.cfg,修改内容如下:

    vi zoo2.cfg
    dataDir=/usr/local/zookeeper/zoo2/data/
    clientPort=2182//客户端访问需要使用2182端口,三个不同放入节点,不能都是用同一个端口2181
    server.1=hadoop4:2888:3888
    server.2=hadoop4:2889:3889
    server.3=hadoop4:2890:3890

1.6 修改文件conf/zoo2.cfg,修改内容如下:

    vi zoo2.cfg
    dataDir=/usr/local/zookeeper/zoo2/data/
    clientPort=2182//客户端访问需要使用2182端口,三个不同放入节点,不能都是用同一个端口2181
    server.1=hadoop0:2888:3888
    server.2=hadoop0:2889:3889
    server.3=hadoop0:2890:3890
    
    cp zoo1 .cfg zoo3.cfg
    vi zoo3.cfg
    dataDir=/usr/local/zookeeper/zoo3/data/
    clientPort=2183//客户端访问需要使用2182端口,三个不同放入节点,不能都是用同一个端口2181
    server.1=hadoop4:2888:3888
    server.2=hadoop4:2889:3889
    server.3=hadoop4:2890:3890

  1.7 执行命令,产生存储数据的目录:

    clear
    mkdir -p /usr/local/zookeeper/zoo1/data/
    mkdir -p /usr/local/zookeeper/zoo2/data/
    mkdir -p /usr/local/zookeeper/zoo3/data/

  1.8 产生标记文件:

    //myid 标注在这个节点下的数据是输入哪一个节点的.
    cd ..
    echo '1' > zoo1/data/myid
    echo '2' > zoo2/data/myid
    echo '3' > zoo3/data/myid

  1.9 分别启动节点:

    cd zookeeper
    bin/zkServer.sh start conf/zoo1.cfg
    bin/zkServer.sh start conf/zoo2.cfg
    bin/zkServer.sh start conf/zoo3.cfg

    jps 查看节点,多出一个zookeeper进程:QuorumPeerMain
    在一个节点上启动三个zookeeper进程,组成的节点就是zookeeper的伪分布.

  zookeeper的操作:

    bin/zkCli.sh
    //连接某一个节点
    connect hadoop4:2182
    //ls 显示zookeeper的目录结构
    ls /
    ls /zookeeper/quota
    //create 创建节点
    create /crxy hadoop
    //get 读取节点的值
    get /crxy
    //set 修改节点的值
    set /crxy 44444
    zookeeper就是一个读写数据的,管理这些数据的时候,就是一个树状结构.
    zookeeper最大的特点:保证数据的同步.

 

  ip修改和主机名绑定:

    修改主机名:
    vi /etc/sysconfig/network
    修改ip:
    vi /etc/sysconfig/network-scripts/ifcfg-Auto-eth1
    删除硬件地址:HWADDR,UUID
    修改ip地址:IPADDR
    重启网络:
    service netwotk restart 
    查看ip地址:
    ifconfig
    添加ip地址和主机名绑定:
    vi /etc/hosts

 

 ===================================

Hbase伪分布式搭建(只有一个节点,使用自己的zookeeper实例):

  2.1 解压缩:

    tar -zxvf hbase-0.94.13-security.tar.gz
    mv hbase-0.94.13-security.tar.gz hbase
    rm -rf *.gz
    cd hbase 
    rm -rf docs/
    rm -rf src/

  2.2 编辑文件conf/hbase-env.sh,修改内容:

    vi conf/hbase-env.sh
    export JAVA_HOME=/usr/local/jdk
    //告诉HBASE是否应该自己管理自己的zookeeper实例,true 表示zookeeper是hbase自己搭建的,与外部的没有关系.
    export HBASE_MANAGES_ZK=true

  2.3 编辑文件conf/hbase-site.xml 修改内容:

    vi conf/hbase-site.xml

    <configuration>
        <!-- 存放数据的目录-->
        <property>
            <name>rootDir</name>
            <value>hdfs://hadoop4:9000/hbase</value>
        </property>
        <!--是否是分布式 -->
        <property>
            <name>hbase.cluster.distributed</name>
            <value>true</value>
        </property>
        <!-- zookeeper存放的机器-->
        <property>
            <name>hbase.zookeeper.quorum</name>
            <value>hadoop4</value>
        </property>
    </configuration>

  2.4 启动hbase之前,需要检查hadoop的hdfs是否正常运行的.

    启动hbase
    cd hbase 
    bin/start-hbase.sh

  2.5 检查,执行jps命令,看到三个新的java进程,分别是:

    HQuorumPeer,HMaster,HRegionServer
    查看hdfs://hadoop4:60010

 ===================================

zookeeper集群部署:

  1.在hadoop4上解压缩zookeeper-3.4.5.tar.gz

  2.执行命令cp conf/zoo_sample.cfg conf/zoo.cfg

  3.修改文件conf/zoo.cfg

    dataDir=/usr/local/zookeeper/data
    clientPort=2181

    server.1=hadoop4:2888:3888
    server.2=hadoop5:2889:3889
    server.3=hadoop6:2890:3890

  4.执行命令,产生存储数据的目录

    mkdir -p /usr/local/zookeeper/data

  5.产生标记文件

    echo '0' > /usr/local/zookeeper/data/myid

  6.把hadoop4上的zookeeper复制到其他节点

    scp -rq zookeeper hadoop5:/usr/local
    scp -rq zookeeper hadoop6:/usr/local

  7.在hadoop5,hadoop6上产生标记文件:

    在hadoop5上执行 echo '1' > /usr/local/zookeeper/data/myid

    在hadoop6上执行 echo '2' > /usr/local/zookeeper/data/myid

  8.在三个节点分别执行bin/zkServer.sh start

  9.检查(1)执行jps查看 (2)执行bin/zkServer.sh status

    hbase关闭:
    hbase/bin/stop-hbase.sh 
    查看zookeeper的状态:
    bin/zkServer.sh ststus

 

 ===================================

搭建Hbase集群(hadoop4作为主节点,hadoop5和hadoop6作为从节点):

  1.在hadoop4上 解压缩,

  2.编辑文件conf/hbase-env.sh

    export JAVA_HOME=/usr/local/jdk
    export HBASE_MANAGES_ZK=false

 

  3.编辑文件conf/hbase-site.xml

    <configuration>
        <!-- 存放数据的目录-->
        <property>
            <name>rootDir</name>
            <value>hdfs://hadoop4:9000/hbase</value>
        </property>
        <!--是否是分布式 -->
        <property>
            <name>hbase.cluster.distributed</name>
            <value>true</value>
        </property>
        <!-- zookeeper存放的机器-->
        <property>
            <name>hbase.zookeeper.quorum</name>
            <value>hadoop4,hadoop5,hadoop6</value>
        </property>
    </configuration>

  4.编辑文件conf/regionservers修改内容

    hadoop5
    hadoop6

  5.复制hbase到其他节点,hadoop5,hadoop6

    cd ..
    scp hbase hadoop5:/usr/local
    scp hbase hadoop6:/usr/local

  6. 启动hbase之前,要检查hadoop的hdfs,zookeeper,集群是否正常运行.

    hadoop4上执行bin/start-hbase.sh

  7.检查.执行jps命令,在hadoop0看到看到一个新的进程,HMaster

    查看http://hadoop4:60010

posted @ 2015-12-09 23:47  小丁子  阅读(745)  评论(0编辑  收藏  举报