单机模式:

1)  首先下载zookeeper压缩包, 这里采用zookeeper3.4.8....

wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz

  

2)   解压缩

首先创建文件夹,这里放到/user/zookeeper/文件夹下

mkdir zookeeper1

  

mkdir zookeeper2

  

mkdir zookeeper3

创建三个文件夹用于存放三个实例,下面解压到目标文件夹,找到压缩包存放路径,执行下面命令

  

 tar -zxvf zookeeper-3.4.8.tar.gz -C /usr/zookeeper/zookeeper1

  

 tar -zxvf zookeeper-3.4.8.tar.gz -C /usr/zookeeper/zookeeper2

  

 tar -zxvf zookeeper-3.4.8.tar.gz -C /usr/zookeeper/zookeeper3

3)运行单价环境

先来整下zookeeper1这个实例,首先

  

cd zookeeper1/

  利用ll命令, 显示所有文件详情,

drwxr-xr-x. 2 1000 1000 4096 Mar 17 17:27 bin
-rw-rw-r--. 1 1000 1000 83235 Feb 6 11:46 build.xml
-rw-rw-r--. 1 1000 1000 88625 Feb 6 11:46 CHANGES.txt
drwxr-xr-x. 2 1000 1000 4096 Mar 17 17:21 conf
drwxr-xr-x. 10 1000 1000 4096 Feb 6 11:46 contrib
drwxr-xr-x. 2 1000 1000 4096 Feb 6 11:50 dist-maven
drwxr-xr-x. 6 1000 1000 4096 Feb 6 11:49 docs
-rw-rw-r--. 1 1000 1000 1953 Feb 6 11:46 ivysettings.xml
-rw-rw-r--. 1 1000 1000 3498 Feb 6 11:46 ivy.xml
drwxr-xr-x. 4 1000 1000 4096 Feb 6 11:49 lib
-rw-rw-r--. 1 1000 1000 11938 Feb 6 11:46 LICENSE.txt
-rw-rw-r--. 1 1000 1000 171 Feb 6 11:46 NOTICE.txt
-rw-rw-r--. 1 1000 1000 1770 Feb 6 11:46 README_packaging.txt
-rw-rw-r--. 1 1000 1000 1585 Feb 6 11:46 README.txt
drwxr-xr-x. 5 1000 1000 4096 Feb 6 11:46 recipes
drwxr-xr-x. 8 1000 1000 4096 Feb 6 11:49 src
-rw-rw-r--. 1 1000 1000 1360961 Feb 6 11:46 zookeeper-3.4.8.jar
-rw-rw-r--. 1 1000 1000 819 Feb 6 11:50 zookeeper-3.4.8.jar.asc
-rw-rw-r--. 1 1000 1000 33 Feb 6 11:46 zookeeper-3.4.8.jar.md5
-rw-rw-r--. 1 1000 1000 41 Feb 6 11:46 zookeeper-3.4.8.jar.sha1

 cp下配置文件,

mv conf/zoo_sample.cfg conf/zoo.cfg

  启动zk,

 ./bin/zdServer.sh start

4) 使用java 客户端连接ZooKeeper

 ./bin/zkCli.sh -server 127.0.0.1:2181

  然后就可以使用各种命令了,跟文件操作命令很类似,输入help可以看到所有命令。

5)  关闭

./bin/zdServer.sh stop

  

分布式模式(Replicated mode)

ZooKeeper集群一般被称为ZooKeeper ensemble,或者 quorum.

因为我们这里只有一台机器,通过不同端口号,做成伪集群的方式,如果你机器比较多,可以在每个机器上安装一个zk,配置方式是类似。

所谓 “伪分布式集群” 就是在,在一台PC中,启动多个ZooKeeper的实例。“完全分布式集群” 是每台PC,启动一个ZooKeeper实例。

ZooKeeper不存在明显的master/slave关系,各个节点都是服务器,leader挂了,会立马从follower中选举一个出来作为leader.

由于没有主从关系,也不用配置SSH无密码登录了,各个zk服务器是自己启动的,互相之间通过TCP端口来交换数据

将zookeeper2,zookeeper3的配置文件改下,因为zookeeper1在我们做单机时候,已经修改过,在zookeeper2,zookeeper3 conf文件夹下,执行

mv zoo_sample.cfg zoo.cfg

  

创建环境目录

切换到var/zookeeper路径下,新建三个文件夹zookeeper1,zookeeper2,zookeeper3....用于存放pid

mkdir /var/zookeeper/zookeeper1
mkdir /var/zookeeper/zookeeper2
mkdir /var/zookeeper/zookeeper3

分别在   zookeeper1,zookeeper2,zookeeper3 ,新建三个文件 myid

~ echo "1" > /var/zookeeper/zookeeper1/myid
~ echo "2" > /var/zookeeper/zookeeper2/myid
~ echo "3" > /var/zookeeper/zookeeper3/myid

  注意myid只能为数字,因为我试验了下,包含英文的话zk启动不起来,抛出异常

分别修改配置文件
修改:dataDir,clientPort
增加:集群的实例,server.X,”X”表示每个目录中的myid的值

 vi /usr/zookeeper/zookeeper1/conf/zoo.cfg

    

 

# The number of milliseconds of each tick
tickTime=
# The number of ticks that the initial
# synchronization phase can take
initLimit=
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/var/zookeeper/zookeeper1
# the port at which the clients will connect
clientPort=
server.=127.0.0.1::
server.=127.0.0.1::
server.=127.0.0.1::
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=
# Purge task interval in hours
# Set to "" to disable auto purge feature
#autopurge.purgeInterval=

 

以下只贴出不同部分,其他和zk1相同

 vi /usr/zookeeper/zookeeper2/conf/zoo.cfg

 

dataDir=/var/zookeeper/zookeeper2

 

clientPort=2182
 vi /user/zookeeper/zookeeper3/conf/zoo.cfg

  

dataDir=/var/zookeeper/zookeeper3

 

clientPort=2182


启动每台机器
/usr/zookeeper/zookeeper1/bin/zkServer.sh start
/usr/zookeeper/zookeeper2/bin/zkServer.sh start
/usr/zookeeper/zookeeper3/bin/zkServer.sh start

  

查看启动状态

 

centos下zookeeper集群搭建的更多相关文章

  1. Linux下zookeeper集群搭建

    Linux下zookeeper集群搭建 部署前准备 下载zookeeper的安装包 http://zookeeper.apache.org/releases.html 我下载的版本是zookeeper ...

  2. Linux环境下ZooKeeper集群环境搭建关键步骤

    ZooKeeper版本:zookeeper-3.4.9 ZooKeeper节点:3个节点 以下为Linux环境下ZooKeeper集群环境搭建关键步骤: 前提条件:已完成在Linux环境中安装JDK并 ...

  3. Centos6下zookeeper集群部署记录

    ZooKeeper是一个开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等. Zookeeper设计目的 最终一致性:client不论 ...

  4. java 学习笔记(三)ZooKeeper集群搭建实例,以及集成dubbo时的配置 (转)

    ZooKeeper集群搭建实例,以及集成dubbo时的配置 zookeeper是什么: Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式 ...

  5. 分布式架构中一致性解决方案——Zookeeper集群搭建

    当我们的项目在不知不觉中做大了之后,各种问题就出来了,真jb头疼,比如性能,业务系统的并行计算的一致性协调问题,比如分布式架构的事务问题, 我们需要多台机器共同commit事务,经典的案例当然是银行转 ...

  6. kafka学习(二)-zookeeper集群搭建

    zookeeper概念 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名 服务等.Zookeeper是h ...

  7. 分布式协调服务Zookeeper集群搭建

    分布式协调服务Zookeeper集群搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装jdk环境 1>.操作环境 [root@node101.yinzhengjie ...

  8. Zookeeper 集群搭建--单机伪分布式集群

    一. zk集群,主从节点,心跳机制(选举模式) 二.Zookeeper集群搭建注意点 1.配置数据文件 myid 1/2/3 对应 server.1/2/3 2.通过./zkCli.sh -serve ...

  9. Zookeeper集群搭建以及python操作zk

    一.Zookeeper原理简介 ZooKeeper是一个开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等. Zookeeper设计目 ...

随机推荐

  1. JavaScript 字符串实用常用操作

    字符串截取1. substring()xString.substring(start,end)substring()是最常用到的字符串截取方法,它可以接收两个参数(参数不能为负值),分别是要截取的开始 ...

  2. Oracle中使用透明网关链接到Sqlserver[Z]

    Oracle中使用透明网关链接到Sqlserver 在最近项目中需要从Oracle中访问SQL Server数据库, 自然想到了透明网关. 因为Oracle数据库是Linux上的, 而Linux上的O ...

  3. Block使用要点

    Block简介 Block其实包含两个部分内容 Block执行的代码,这是在编译的时候已经生成好的: 一个包含Block执行时需要的所有外部变量值的数据结构. Block将使用到的.作用域附近到的变量 ...

  4. QF——OC字符串

    OC中的字符串: C中没有字符串类型,用字符数组和指针代替. OC中引入了字符串类型,它包括NSString 和 NSMutableString两种 NSString是不可变的,已经初始化便不能更改: ...

  5. JQuery使用on绑定动态生成元素时碰到的问题

    今天在写界面时,希望对一些由JS代码动态添加的html标签进行事件绑定,使用了jquery 1.6+才提供的on函数.我的JQ版本是1.9.2. 以下这段代码是动态生成的. <div class ...

  6. Python的编码规范(PEP 8 & Google Python guide)

    PEP 8 Python 代码规范整理 click here Goole Python 风格指南 中文版 click here 大家有取舍的看吧. 因为文章不是原创的,所以只贴地址,给大家造成麻烦了, ...

  7. ACM大数模板(支持正负整数)

    之前就保留过简陋的几个用外部数组变量实现的简单大数模板,也没有怎么用过,今天就想着整合封装一下,封装成C++的类,以后需要调用的时候也方便得多. 实现了基本的加减乘除和取模运算的操作符重载,大数除以大 ...

  8. delphi 关于命名

    请告别 TMyXXX 的命名方法吧... 程序名: Demo.exe 窗体:TFrmDemo ,窗体文件 uFrmDemo.Pas DataModule: TDMDemo, 窗体文件 uDMDemo. ...

  9. shell脚本中常见的一些特殊符号和作用详解

    这篇文章主要介绍了shell脚本中常见的一些特殊符号和它的作用详解,总结的很简洁,容易看懂,需要的朋友可以参考下   在编写Shell脚本时,我们需要会用到各种各样的特殊符号,通过这些特殊符号可以使我 ...

  10. NOI2014 Day2

    NOI2014 Day2 动物园 题目描述:给出一个字符串(长度为\(Len\)),设\(num[i]\)为字符串的前\(i\)个字符构成的子串(\(A\))中,满足\(A\)的前\(L\)个字符既是 ...