记录下zookeeper伪分布式搭建的过程,假设系统已经配置好了JAVA环境。

1.准备环境

  linux服务器一台,下载某个版本的zookeeper压缩包,下载链接:http://apache.claz.org/zookeeper/zookeeper-3.5.3-beta/zookeeper-3.5.3-beta.tar.gz

2.生成多个节点

  因为是伪分布式环境,所以是在一台机器上搭建多个节点。在/data/zk/目录下生成三个文件夹,分别为:zk0,zk1,zk2,将上面下载的压缩包拷贝进各个文件夹并解压,解压时注意,最好不要带z参数,不然可能会报错。

3.修改配置文件

  先由模板生成配置文件:

  cp /data/zk/zk0/zookeeper-3.5.3-beta/conf/zoo_sample.cfg /data/zk/zk0/zookeeper-3.5.3-beta/conf/zoo.cfg

  cp /data/zk/zk1/zookeeper-3.5.3-beta/conf/zoo_sample.cfg /data/zk/zk1/zookeeper-3.5.3-beta/conf/zoo.cfg

  cp /data/zk/zk2/zookeeper-3.5.3-beta/conf/zoo_sample.cfg /data/zk/zk2/zookeeper-3.5.3-beta/conf/zoo.cfg

  修改配置文件,增加以下部分

  dataDir=/data/zk/zk0/zookeeper-3.5.3-beta/data(注意每个配置文件中zk*的路径不同)

  clientPort=2181(zk0是2181,zk1是2182,zk2是2183,端口不能重复否则启动时会出现端口已被占用错误。)

  4lw.commands.whitelist=*(此配置是支持四字节命令的,线上环境慎重添加,可能会带来安全问题,不开次配置不能使用下面的telnet命令)

  server.0=127.0.0.1:2880:3880

  server.1=127.0.0.1:2881:3881
  server.2=127.0.0.1:2882:3882

  server.A=B:C:D     其中 A 是一个数字,就是myid里的那个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址,C和D是两个端口,C、D两个端口相互也不能重复(仅限伪分布式模式下)。

4.生成myid文件,伪分布式模式下通过此文件id来区分每个节点,所以值不能重复

  mkdir /data/zk/zk0/zookeeper-3.5.3-beta/data

  echo 0 > /data/zk/zk0/zookeeper-3.5.3-beta/data/myid

  mkdir /data/zk/zk1/zookeeper-3.5.3-beta/data

  echo 1 > /data/zk/zk1/zookeeper-3.5.3-beta/data/myid

  mkdir /data/zk/zk2/zookeeper-3.5.3-beta/data

  echo 2 > /data/zk/zk2/zookeeper-3.5.3-beta/data/myid

5.启动

  /data/zk/zk0/zookeeper-3.5.3-beta/bin/zkServer.sh start /data/zk/zk0/zookeeper-3.5.3-beta/conf/zoo.cfg
  /data/zk/zk1/zookeeper-3.5.3-beta/bin/zkServer.sh start /data/zk/zk1/zookeeper-3.5.3-beta/conf/zoo.cfg
  /data/zk/zk2/zookeeper-3.5.3-beta/bin/zkServer.sh start /data/zk/zk2/zookeeper-3.5.3-beta/conf/zoo.cfg

  正常情况会输出:Starting zookeeper ... STARTED

  最好是将节点全启动起来之后在进行连接等操作。

6.检查各个节点的状态

  /data/zk/zk0/zookeeper-3.5.3-beta/bin/zkServer.sh status
  /data/zk/zk1/zookeeper-3.5.3-beta/bin/zkServer.sh status
  /data/zk/zk2/zookeeper-3.5.3-beta/bin/zkServer.sh status

  正常会输出:

    ZooKeeper JMX enabled by default
    Using config: /data/zk/zk0/zookeeper-3.5.3-beta/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Mode: follower(follower表示角色)

7.查看节点状态、关闭节点

  /data/zk/zk0/zookeeper-3.5.3-beta/bin/zkServer.sh status
  /data/zk/zk1/zookeeper-3.5.3-beta/bin/zkServer.sh status
  /data/zk/zk2/zookeeper-3.5.3-beta/bin/zkServer.sh status

  /data/zk/zk0/zookeeper-3.5.3-beta/bin/zkServer.sh stop
  /data/zk/zk1/zookeeper-3.5.3-beta/bin/zkServer.sh stop
  /data/zk/zk2/zookeeper-3.5.3-beta/bin/zkServer.sh stop

8.client连接测试

  /data/zk/zk1/zookeeper-3.5.3-beta/bin/zkCli.sh -server 127.0.0.1:2181

  正常会输出:Welcome to ZooKeeper!

  然后可以输入正常的client命令来操作zookeeper。

9.除了可以用client连接操作,zookeeper还支持用telnet使用特殊命令来操作,这个称为四字节命令,具体详见:https://zookeeper.apache.org/doc/r3.5.3-beta/zookeeperAdmin.html#sc_clusterOptions

  • 1. 可以通过命令:echo stat|nc 127.0.0.1 2181 来查看哪个节点被选择作为follower或者leader
  • 2. 使用echo ruok|nc 127.0.0.1 2181 测试是否启动了该Server,若回复imok表示已经启动。
  • 3. echo dump| nc 127.0.0.1 2181 ,列出未经处理的会话和临时节点。
  • 4. echo kill | nc 127.0.0.1 2181 ,关掉server
  • 5. echo conf | nc 127.0.0.1 2181 ,输出相关服务配置的详细信息。
  • 6. echo cons | nc 127.0.0.1 2181 ,列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。
  • 7. echo envi |nc 127.0.0.1 2181 ,输出关于服务环境的详细信息(区别于 conf 命令)。
  • 8. echo reqs | nc 127.0.0.1 2181 ,列出未经处理的请求。
  • 9. echo wchs | nc 127.0.0.1 2181 ,列出服务器 watch 的详细信息。
  • 10. echo wchc | nc 127.0.0.1 2181 ,通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。
  • 11. echo wchp | nc 127.0.0.1 2181 ,通过路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径。

zookeeper伪集群安装的更多相关文章

  1. (原) 1.2 Zookeeper伪集群安装

    本文为原创文章,转载请注明出处,谢谢 Zookeeper伪集群安装 zookeeper单机安装配置可以查看 1.1 zookeeper单机安装 1.复制三份zookeeper,分别为zookeeper ...

  2. 【分布式】Zookeeper伪集群安装部署

    zookeeper:伪集群安装部署 只有一台linux主机,但却想要模拟搭建一套zookeeper集群的环境.可以使用伪集群模式来搭建.伪集群模式本质上就是在一个linux操作系统里面启动多个zook ...

  3. zookeeper 伪集群安装和 zkui管理UI配置

    #=======================[VM机器,二进制安装] # 安装环境# OS System = Linux CNT7XZKPD02 4.4.190-1.el7.elrepo.x86_ ...

  4. 03_zookeeper伪集群安装

    一句话说明白:在1台机器上模拟多台机器,对外提供服务 在理解zookeeper集群安装方法的基础上,本文描述如何将1个机器模拟为3个节点的zookeeper集群,建议先参考阅读本文的前一期 zooke ...

  5. zookeeper+kafka集群安装之二

    zookeeper+kafka集群安装之二 此为上一篇文章的续篇, kafka安装需要依赖zookeeper, 本文与上一篇文章都是真正分布式安装配置, 可以直接用于生产环境. zookeeper安装 ...

  6. zookeeper+kafka集群安装之一

    zookeeper+kafka集群安装之一 准备3台虚拟机, 系统是RHEL64服务版. 1) 每台机器配置如下: $ cat /etc/hosts ... # zookeeper hostnames ...

  7. zookeeper+kafka集群安装之中的一个

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/cheungmine/article/details/26678877 zookeeper+kafka ...

  8. win10环境下搭建zookeeper伪集群

    一.下载zookeeper https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 这里笔者下载的是zookeeper-3.3.6 二.配置zoo ...

  9. Zookeeper的集群安装

    Zookeeper的集群安装 关闭防火墙 安装jdk 下载Zookeeper的安装包 解压Zookeeper的安装包 进入Zookeeper的安装目录中conf目录 将zoo_sample.cfg复制 ...

随机推荐

  1. Java软件开发者,如何学习大数据?

    正常来讲学习大数据之前都要做到以下几点 1.学习基础的编程语言(java,python) 2.掌握入门编程基础(linux操作,数据库操作.git操作) 3.学习大数据里面的各种框架(hadoop.h ...

  2. gp与 pg 查询进程

    select now()-query_start as cost_time,* from pg_stat_activity where current_query not in ( '<IDLE ...

  3. spring源码-BeanPostProcessor-3.3

    一.BeanPostProcessor这个是spring容器的拓展之一,是用于获取bean的时候处理对应的对象: 二.常用场景,在获取bean的时候,重新初始化bean的属性等. 三.实现方式(加入容 ...

  4. JS学习 函数的理解

    ECMAScript 的函数实际上是功能完整的对象. 函数的理解 用 Function 类直接创建函数,格式如下.可理解为Function构造器. var function_name = new Fu ...

  5. MyBatis-MBG(MyBatis Generator)

    1.添加jar包 <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>m ...

  6. VMWare虚拟机下 centos network is unreachable 问题的解决

    vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.1.255 HW ...

  7. 代码混淆防止APP被反编译指南

    本文来自网易云社区 安卓App安全包含很多内容,包括混淆代码.整体Dex加固.拆分 Dex 加固.虚拟机加固等方面.事实上,这些内容也是国内近几年Android App安全保护的一种主要趋势. 混淆代 ...

  8. 【cookie接口】- jmeter - (请求提示no cookie)

    1.虽然 请求成功 响应码 200  ,但是  返回code 1  ,表示接口不成功 2.加入 空的cookie 管理器就可以了  返回 code 0 注意:状态码 200 只是表示请求是成功的 , ...

  9. 爬虫1.6-selenium+HeadlessChrome

    目录 爬虫-selenium+HeadlessChrome 1. 浏览器处理步骤 2. headless-chrome初体验 3. 实战爬取淘宝镇.街道信息 爬虫-selenium+HeadlessC ...

  10. win7下本地运行spark以及spark.sql.warehouse.dir设置

    SparkSession spark = SparkSession .builder() .master("local[*]") .enableHiveSupport() .con ...