zoukankan      html  css  js  c++  java
  • (1)Zookeeper在linux环境中搭建集群

    1.简介

    ZooKeeper是Apache软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。
    ZooKeeper的架构通过冗余服务实现高可用性。
    Zookeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。
    一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。

    2.zookeeper数据结构

    zookkeeper提供的名称空间非常类似于标准文件系统,key-value的形式存储。名称key由斜线/分割的一系列路径元素,zookeeper名称空间中的每个节点都是由一个路径标识。

    2. 部署ZooKeeper集群

    上面简单介绍了ZooKeeper相关概念,下面我们来部署下ZooKeeper集群。

    2.1三台linux虚拟机

    服务名称

    IP/域名

    端口

    zookeeper(slave)

    192.168.142.129

    2181

    zookeeper(master)

    192.168.142.130

    2181

    zookeeper(slave)

    192.168.142.131

    2181

    Java版本:java version "1.8.0_311"

    2.2下载源码包并解压

    官网下载地址(这里有坑,官网给了两个安装包,其中“apache-zookeeper-3.7.0.tar.gz ”是源码,我们要下载“apache-zookeeper-3.7.0-bin.tar.gz”这个编译后安装包才对):

    可以通过wget命令下载或者手动下载,安装包存储到linux服务器上/home/deng/packages目录,再通过以下命令解压安装包:

    cd /home/deng/packages
    mkdir /home/deng/zookeeper
    tar zxvf apache-zookeeper-3.7.0.tar.gz -C /home/deng/zookeeper

    2.3修改环境变量

    vi /etc/profile文件,在文件末尾添加以下环境变量配置:

    # ZooKeeper环境变量
    export ZOOKEEPER_HOME=/home/deng/zookeeper/apache-zookeeper-3.7.0-bin/
    export PATH=$PATH:$ZOOKEEPER_HOME/bin

    再运行以下命令使环境变量生效:

    source /etc/profile

    2.4重命名配置文件

    初次使用ZooKeeper时,需要将$ZOOKEEPER_HOME/conf目录下的zoo_sample.cfg重命名为zoo.cfg,zoo.cfg:

    mv $ZOOKEEPER_HOME/conf/zoo_sample.cfg $ZOOKEEPER_HOME/conf/zoo.cfg

    2.5修改配置文件(指定数据和日志存放目录)

    先创建数据跟日志文件夹:

    mkdir $ZOOKEEPER_HOME/data
    mkdir $ZOOKEEPER_HOME/logs

    编辑zoo.cfg配置文件:

    vi $ZOOKEEPER_HOME/conf/zoo.cfg

    修改如下:

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/home/deng/zookeeper/apache-zookeeper-3.7.0-bin/data
    dataLogDir=/home/deng/zookeeper/apache-zookeeper-3.7.0-bin/logs
    clientPort=2181

    因为我们部署是集群,所以多节点需要在配置文件中尾部增加如下内容:

    # 集群配置
    server.1=192.168.142.129:2888:3888
    server.2=192.168.142.130:2888:3888
    server.3=192.168.142.131:2888:3888

    如图所示:

    2.6生成myid文件,用作标明当前机器

    在zookeeper数据所在的目录下(/home/deng/zookeeper/apache-zookeeper-3.7.0-bin/data)生成一个文件叫myid,其中写上一个数字表明当前机器是哪一个编号的机器:

    #192.168.142.129(slave)
    vi $ZOOKEEPER_HOME/data/myid
    1
    #192.168.142.130(master)
    vi $ZOOKEEPER_HOME/data/myid
    2
    #192.168.142.131(slave)
    vi $ZOOKEEPER_HOME/data/myid
    3

    2.7开启防火墙端口访问

    zookeeper服务默认的端口号为2888和3888,所以需要在防火墙开启允许访问:

    firewall-cmd --permanent --zone=public --add-port=2888/tcp
    firewall-cmd --permanent --zone=public --add-port=3888/tcp
    firewall-cmd --reload

    2.8启动Zookeeper

    #切换目录
    cd /home/deng/zookeeper/apache-zookeeper-3.7.0-bin
    #启动ZK服务
    bin/zkServer.sh start
    #停止ZK服务
    bin/zkServer.sh stop
    #重启ZK服务
    bin/zkServer.sh restart
    #查看ZK服务状态
    bin/zkServer.sh status

    可以通过命令查看ZK服务状态:


    参考文献:
    Zookeeper-QuickStart

  • 相关阅读:
    python学习笔记(一):基本概念
    selenuim webDriver API 16种定位方式
    css属性之display行内标签 块级标签 隐藏显示
    python------面向对象编程
    网络编程---发送http请求
    python----tcp/ip http
    python基础_md5加密与加盐
    python-----环境变量
    低代码工具-page-pipepline
    模块化的构建工具
  • 原文地址:https://www.cnblogs.com/wzk153/p/15504179.html
Copyright © 2011-2022 走看看