zookeeper集群(linux)和单机(windows)搭建

摘要:
Zookeeper集群构建环境要求:jdk环境必须可用。本讲座使用jdk1.83.1结构。三个节点集群中的服务器数量通常为2n+1。服务器之间的系统时间要求一致。)DataLogDir:用于单独设置事务日志的目录。事务日志的分离可以避免与普通日志和快照的竞争。syncLimit:在多少个节拍内,允许跟随者进行同步。如果跟随者落后太多,它将被丢弃。
Zookeeper集群(linxu)搭建

环境要求:必须要有jdk环境,本次讲课使用jdk1.8

3.1结构

一共节点
集群的服务器数量一般为2n+1个,(zk服务器集群规模不小于3个节点),要求服务器之间系统时间保持一致。

3.2上传zk并且解压
进行解压: tar -zxvf zookeeper-3.4.6.tar.gz
重命名: mv zookeeper-3.4.6 zookeeper

3.3 修改zookeeper环境变量

vi /etc/profile

export JAVA_HOME=/opt/jdk1.8.0_71       //jdk安装目录

export ZOOKEEPER_HOME=/usr/local/zookeeper    //zookeeper安装目录

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH

source /etc/profile   //使修改的配置生效

3.4 修改zoo_sample.cfg文件

//将zoo_sample.cfg的名称更改为zoo.cfg

cd /usr/local/zookeeper/conf

mv zoo_sample.cfg  zoo.cfg


修改conf: vi zoo.cfg 修改两处
1) dataDir=/usr/local/zookeeper/data(注意同时在zookeeper创建data目录
2)最后面添加
server.0=第一台服务器的的ip或者映射名称:2888:3888
server.1=第一台服务器的的ip或者映射名称:2888:3888
server.2=第一台服务器的的ip或者映射名称:2888:3888

3.5 创建服务器标识

服务器标识配置:
创建文件夹: mkdir data
创建文件myid并填写内容为0: vi
myid (内容为服务器标识 : 0)

此值为zoo.cfg文件中server.之后的数,数值对应ip

3.6 克隆虚拟机或者将刚才的配置的东西复制到其他两台服务器上

需要修改对应的ip和myid文件中的值

3.7 启动zookeeper
启动zookeeper:
路径: /usr/local/zookeeper/bin
执行: zkServer.sh start  //或者./zkServer.sh start
(注意这里3台机器都要进行启动)
状态: zkServer.sh
status(在三个节点上检验zk的mode,一个leader和俩个follower)

3.8 启动客户端

./zkCli.sh 命令启动客户端

zookeeper集群(linux)和单机(windows)搭建第1张

zoo.cfg文件属性值介绍

tickTime:心跳时间,为了确保连接存在的,以毫秒为单位,最小超时时间为两个心跳时间

initLimit:多少个心跳时间内,允许其他server连接并初始化数据,如果ZooKeeper管理的数据较大,则应相应增大这个值

clientPort:服务的监听端口

dataDir:用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里(注意:一个配置文件只能包含一个dataDir字样,即使它被注释掉了。)

dataLogDir:用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争

syncLimit:多少个tickTime内,允许follower同步,如果follower落后太多,则会被丢弃。

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

zookeeper(windows)单机安装

解压  zookeeper-3.4.6.tar.gz  文件

1.在文件的第一级目录下创建data文件夹

zookeeper集群(linux)和单机(windows)搭建第2张

2.将conf目录下的zoo_sample.cfg的名称更改为zoo.cfg

zookeeper集群(linux)和单机(windows)搭建第3张

3.修改zoo.cfg中dataDir的路径,更改为第一步创建的data的路径

zookeeper集群(linux)和单机(windows)搭建第4张

 4.先启动bin目录下的zkServer.cmd(服务端),打开后保持窗口不关闭, 接下来打开zkCil.cmd 启动客户端 

zookeeper集群(linux)和单机(windows)搭建第5张

命令行工具的一些简单操作如下:
  • 1. 显示根目录下、文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容
  • 2. 显示根目录下、文件: ls2 / 查看当前节点数据并能看到更新次数等数据
  • 3. 创建文件,并设置初始内容: create /zk "test" 创建一个新的 znode节点“ zk ”以及与它关联的字符串
  • 4. 获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串
  • 5. 修改文件内容: set /zk "zkbak" 对 zk 所关联的字符串进行设置
  • 6. 删除文件: delete /zk 将刚才创建的 znode 删除
  • 7. 退出客户端: quit
  • 8. 帮助命令: help
Java连接zookeeper

导入依赖

<dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.6</version>
        </dependency>
public class ZookeeperDemo {
    /**
     * 集群连接地址
     */
    private static final String CONNECT_ADDR = "192.168.110.138:2181,192.168.110.147:2181,192.168.110.148:2181";
    /**
     * session超时时间
     */
    private static final int SESSION_OUTTIME = 2000;
    /**
     * 信号量,阻塞程序执行,用户等待zookeeper连接成功,发送成功信号,
     */
    private static final CountDownLatch countDownLatch = new CountDownLatch(1);

    public static void main(String[] args) throws IOException, InterruptedException, KeeperException {
        ZooKeeper zk = new ZooKeeper(CONNECT_ADDR, SESSION_OUTTIME, new Watcher() {

            public void process(WatchedEvent event) {
                // 获取时间的状态
                KeeperState keeperState = event.getState();
                EventType tventType = event.getType();
                // 如果是建立连接
                if (KeeperState.SyncConnected == keeperState) {
                    if (EventType.None == tventType) {
                        // 如果建立连接成功,则发送信号量,让后阻塞程序向下执行
                        countDownLatch.countDown();
                        System.out.println("zk 建立连接");
                    }
                }
            }

        });
        // 进行阻塞
        countDownLatch.await();
        //创建父节点
//        String result = zk.create("/testRott", "12245465".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
//        System.out.println("result:" + result);
        //创建子节点
        String result = zk.create("/testRott/children", "children 12245465".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        System.out.println("result:"+result);
        zk.close();
    }

}

免责声明:文章转载自《zookeeper集群(linux)和单机(windows)搭建》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇noodjs(koa)+mysql搭建服务器环境及基本的增删改查操作U3D组件------CharacterController(角色控制器)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java -cp 命令行引用多个jar包的简单写法(Windows、Linux

1、Windows下用法 在Windows上,可以使用 用法:java your-jar-lib-folder/* your-main-class your-jar-lib-folder为存放一堆jar文件的路径。 your-main-class为要运行的具有main方法的主类。 JDK 1.7及以上版本支持该写法。 2、Linux下用法 在Linux上...

集群部署

ZooKeeper和Kafka集群部署 ZooKeeper集群部署 准备三台机器搭建集群,所有命令都在三台机器上运行 基础环境配置 主机名配置 # hostnamectl set-hostname zookeeper1 # hostnamectl set-hostname zookeeper2 # hostnamectl set-hostname zook...

Linux安全加固手册

1 身份鉴别 1.1 密码安全策略 操作系统和数据库系统管理用户身份鉴别信息应具有不易被冒用的特点,口令应有复杂度要求并定期更换。 设置有效的密码策略,防止攻击者破解出密码 1)查看空口令帐号并为弱/空口令帐号设置强密码 # awk -F: '($2 == ""){print $1}' /etc/shadow 可用离线破解、暴力字典破解或者密码网站查询出...

CentOS7安装weblogic集群思路梳理

以前经常用weblogic集群,但是却没有仔细想过要实现它。这不,前两天成功安装了weblogic集群,现在将其思路整理下。防止日后自己忘掉了。 一、安装weblogic10.3.6 1. 在官网下载需要的weblogic版本; 2. 安装(按照引导程序提示操作):   ---->中间件主目录;   ---->注册安全更新;   ---->...

Linux下安装mysql-5.7.30详细步骤

前言下面记录了我在Linux环境下安装Mysql的完整过程,实操记录,只为让更多人少踩坑,本次安装版本为:mysql-5.7.30,64位操作系统官网下载地址:mysql-5.7.30-el7-x86_64.tar.gz百度网盘地址:百度网盘地址 提取码:lyqh 1、安装前准备检测系统是否自带mysql [root@localhost /]# rpm -...

【转】Linux 内核开发 Eclipse内核开发环境搭建

【转】Linux 内核开发 - Eclipse内核开发环境搭建 转自:http://blog.chinaunix.net/uid-24512513-id-3183457.html 翻译这篇文章的时候,我也想过可能会有高手说,内核开发用vi就足够了,还用什么eclipse,当然对于内核中函数特别了解的人确实如此,但是对于新 手,每使用一个函数,就要去查找一下...