zoukankan      html  css  js  c++  java
  • 生产环境zookeeper集群部署

    zookeeper简介:

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
    ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
    ZooKeeper包含一个简单的原语集,提供Java和C的接口。
    ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在$zookeeper_homesrc ecipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本
    ZooKeeper的基本运转流程:
    1、选举Leader。
    2、同步数据。
    3、选举Leader过程中算法有很多,但要达到的选举标准是一致的。
    4、Leader要具有最高的执行ID,类似root权限。
    5、集群中大多数的机器得到响应并接受选出的Leader。

    一、安装zookeeper前需要安装软件依赖:jdk1.8(先部署jdk)

    1、安装前的清理工作

    rpm -qa | grep jdk

    rpm -qa | grep gcj
    yum -y remove java-xxx-xxx
    2、在线下载JDK
    cd /usr/local/src
    [root@k8s-master src]# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm
    查看当前文件夹下是否有JDK安装包:

    [root@k8s-master src]# ls
    jdk-8u131-linux-x64.rpm

    添加执行权限:

    命令:chmod +x jdk-8u131-linux-x64.rpm

    执行rpm进行安装

    命令:rpm -ivh jdk-8u131-linux-x64.rpm

    查看JDK是否安装成功

    命令:java -version

    查看JDK的安装路径,(一般默认的路径:/usr/java/jdk1.8.0_131)

    配置JDK环境变量

     
    vim /etc/profile #在最后面加入以下内容
    export JAVA_HOME=/usr/java/jdk1.8.0_131
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
    export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
    export PATH=$PATH:${JAVA_PATH}
    让profile立即生效:
    source /etc/profile
    二、部署zookeeper 集群 
    1.下载apache-zookeeper-3.5.5-bin.tar.gz二进制包:
    wget http://apache.01link.hk/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz
    2、解压apache-zookeeper-3.5.5-bin.tar.gz:
    tar -zxf  apache-zookeeper-3.5.5-bin.tar.gz  -C /usr/local/src
    3、将apache-zookeeper-3.5.5-bin改名为zookeeper:
    cd /usr/local/src  &&   mv apache-zookeeper-3.5.5-bin zookeeper
    4、拷贝相关配置文件:
    cd zookeeper/conf    && cp zoo_sample.cfg  zoo.cfg
    注意:检查系统防火墙是否开启;如果开启建议将防火墙关闭;
    5、修改zoo.cfg 配置文件相关内容

    在vim /usr/local/src/zookeeper/zoo.cfg  

              dataDir=/usr/local/src/zookeeper/dtata #用于配置内存数据库保存的模糊快照的目录

              dataLogDir=/usr/local/src/zookeeper/log #日志文件存放路径

              server.A=B:C:D   #中的A是一个数字,表示这个是第几号服务器,B是这个服务器的IP地址,C第一个端口用来集群成员的信息交换,表示这个服务器与集群中的leader服务器交换信息的端口,D是在leader挂掉时专门用来进行选举leader所用的端口

              server.1=172.16.8.235:801:802

              server.2=172.16.8.236:801:802

              server.3=172.16.8.237:801:802

    6、配置环境变量:

    vim /etc/profile

         #设置软连接的路径

        ${ZOOKEEPER_HOME}/bin #用于在任何文件目录都可以启动

        ${ZOOKEEPER_HOME}/conf #用于稍后配置的自启动

        export ZOOKEEPER_HOME=/usr/local/src/zookeeper

        PATH=$PATH:${ZOOKEEPER_HOME}/bin:${ZOOKEEPER_HOME}/conf

       保存退出后:source /etc/profile命令使修改生效

    7、配置myid文件:

    先创建data和logs文件夹 :mkdir -p /usr/local/src/zookeeper/{data,logs}

         创建myid文件:echo "1" > /usr/local/src/zookeeper/data/myid #在zoo.cfg文件中配置的dataDir路径中创建myid文件,使用下面的命令,将数字“1”写入myid文件,这个文件里面有一个数据就是A的值(该A就是zoo.cfg文件中server.A=B:C:D中的A)

    8、配置从服务器:

    复制主服务器的zookeeper到从服务器 :scp -r /usr/local/src/apache-zookeeper-3.5.5-bin root@ip地址:/usr/local/src

         创建软链接:ln -s zookeeper-apache-zookeeper-3.5.5-bin zookeeper

         配置myid文件:先mkdir -p /usr/local/src/zookeeper/{data,logs} 在:echo "2" > /usr/local/src/zookeeper/data/myid

    复制主服务器的zookeeper到从服务器 :scp -r /usr/local/src/apache-zookeeper-3.5.5-bin root@ip地址:/usr/local/src

         创建软链接:ln -s zookeeper-apache-zookeeper-3.5.5-bin zookeeper

         配置myid文件:先mkdir -p /usr/local/src/zookeeper/{data,logs} 在:echo "3 > /usr/local/src/zookeeper/data/myid

    9、启动每一个服务器上的zookeeper节点:

    cd zookeeper 执行 bin/zkServer.sh start

         启动后查看每个节点的状态 :/usr/local/src/zookeeper/bin/zkServer.sh status

    10、zookeeper集群测试:

           /usr/local/src/zookeeper/bin/zkCli.sh -server  从服务器IP地址 

    11、添加服务启动脚本:vim /etc/init.d/zookeeper (每个几点上面都要操作)

    #!/bin/bash
    export JAVA_HOME=/usr/java/jdk1.8.0_131
    zoo=/usr/local/src/zookeeper/bin/zkServer.sh
    case "$1" in
    start)
    $zoo start /usr/local/src/zookeeper/conf/zoo.cfg
    ;;
    stop)
    $zoo stop /usr/local/src/zookeeper/conf/zoo.cfg
    ;;
    status)
    $zoo status /usr/local/src/zookeeper/conf/zoo.cfg
    ;;
    restart)
    $zoo restart /usr/local/src/zookeeper/conf/zoo.cfg
    ;;
    esac
    

    12、给zookeeper启动脚本文件添加执行权限:

           chmod +x /etc/init.d/zookeeper

    13、部署zkweb(这里使用的docker部署zkweb)

    创建dockeryum源
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    yum -y install docker-ce

    docker启动
    systemctl enable docker && systemctl start docker

    zkweb页面docker安装

    docker run -d -p8099:8099 --name zkweb peterpoker/zkweb:v1.2.1

  • 相关阅读:
    Integer值判断是否相等问题
    Java连接Redis
    oracle 10G 没有 PIVOT 函数怎么办,自己写一个不久有了
    前端修炼(第三天)函数
    前端 JS 修炼(第一天)包装对象、作用域、创建对象
    linux oracle 启动全过程
    「android」webview中文乱码
    「dos」bat单条命令跨多行
    「股票」东方财富网公式-缩量
    「android」as javadoc乱码
  • 原文地址:https://www.cnblogs.com/abner123/p/13150156.html
Copyright © 2011-2022 走看看