Zookeeper安装

Zookeeper简介

zookeeper:动物园管理员

■  曾经是Hadoop子项目,现为顶级项目

■  zookeeper是协同服务

■  zookeeper为分布式应用提供服务

■ zookeeper支持Java和C语言

zookeeper服务基于内存,服务器之间相互感知,数据同步

v zookeeper为分布式应用提供的服务

■ 配置维护

■ 名字服务

■ 分布式同步

■ 组服务等

角色:

leader-领导  集群中只能有一个

follower-追随者   集群中可以有多个

v Zookeeper数据模型与层次命名空间

■ 树状结构

■ 通过/分隔开路径名

■ `每个路径代表一个节点Znode(zookeeper node)

zookeeper集群节点储存在内存中数据结构完全相同

在内存中的结构:/根文件夹,类似Linux的文件系统

v zookeeper节点专用名词:ZNode

■ 每个znode有自身信息、数据、长度、创建时间、修改时间

■ znode维护数据、ACL访问控制列表、时间戳等交换版本号数据结构,它通过对这些数据的管理来让缓存生效并且命名协调更新。每当znode中的数据更新后版本号将增加。

v  znode读写操作

■ 读写数据原子性,读就读取所有数据,写入时完全覆盖。要么成功,要么失败,不存在一般成功一半失败的情况,znode的ACL存储用户操作权限。

■ 临时节点,和session相关,session结束,节点删除

zk中的选举机制叫 election  当leader宕机之后,集群节点会选出新的leader

Zookeeper安装

1. 下载安装JDK6+

参考我的另一篇笔记:CentOS6.4 64位系统安装JDK

2. 下载并解压zookeeper

首先我们需要在/data下面创建个zookeeper文件夹,把刚才下载下来的zookeeper-3.4.6.tar.gz软件包放到这里。用tar -zxvf来解压zookeeper的安装包。

[[email protected] ~]# cd /data/zookeeper/

[[email protected] zookeeper]# ls

zookeeper-3.4.6.tar.gz

[[email protected] zookeeper]# tar zxf zookeeper-3.4.6.tar.gz 

[[email protected] zookeeper]# ls

zookeeper-3.4.6  zookeeper-3.4.6.tar.gz

 

解压完成之后我们进入到刚才解压出来的文件夹下面,内容如下所示:

[[email protected] zookeeper]# cd zookeeper-3.4.6

[[email protected] zookeeper-3.4.6]# ls

bin        CHANGES.txt  contrib     docs             ivy.xml  LICENSE.txt  README_packaging.txt  recipes  zookeeper-3.4.6.jar      zookeeper-3.4.6.jar.md5

build.xml  conf         dist-maven  ivysettings.xml  lib      NOTICE.txt   README.txt            src      zookeeper-3.4.6.jar.asc  zookeeper-3.4.6.jar.sha1

进入到conf文件夹下面,将zoo_sample.cfg这个文件复制为zoo.cfg(必须是这个文件):

[[email protected] zookeeper-3.4.6]# cd conf/

[[email protected] conf]# cp zoo_sample.cfg zoo.cfg

[[email protected] conf]# vim zoo.cfg

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/data/zookeeper     <==zookeeper数据存放目录,需手动创建

dataLogDir=/data/logs/zookeeper    <==zookeeper日志存放目录,需手动创建

clientPort=2181

server.1=192.168.50.10:2888:3888    <==集群1的服务器ip

server.2=192.168.50.20:2888:3888    <==集群2的服务器ip

server.3=192.168.50.30:2888:3888    <==集群3的服务器ip

[[email protected] bin]# mkdir -p /data/zookeeper

[[email protected] bin]# mkdir -p /data/logs/zookeeper

3. 配置环境变量

上面的操作都完事之后,我们需要配置一下环境变量,配置环境变量的命令如下:

[[email protected] conf]# cd /data/zookeeper/zookeeper-3.4.6/bin/

[[email protected] bin]# export ZOOKEEPER_INSTALL=/data/zookeeper/zookeeper-3.4.6

[[email protected] bin]# export PATH=$PATH:$ZOOKEEPER_INSTALL/bin

4. 启动Zookeeper

进入到Zookeeper的bin目录下面运行zkServer.sh脚步启动zookeeper

[[email protected] bin]# ./zkServer.sh start

JMX enabled by default

Using config: /data/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

通过 ./zkServer.sh status命令查看Zookeeper的运行状态:

[[email protected] bin]# ./zkServer.sh status

JMX enabled by default

Using config: /data/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg

Mode: standalone

也可以用 ps -ef | grep zookeeper来查看Zookeeper的运行状态:

[[email protected] bin]# ps -ef | grep zookeeper

root       4057      1  0 05:47 pts/0    00:00:00 /usr/java/jdk1.7.0_79/bin/java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /data/zookeeper/zookeeper-3.4.6/bin/../build/classes:/data/zookeeper/zookeeper-3.4.6/bin/../build/lib/*.jar:/data/zookeeper/zookeeper-3.4.6/bin/../lib/slf4j-log4j12-1.6.1.jar:/data/zookeeper/zookeeper-3.4.6/bin/../lib/slf4j-api-1.6.1.jar:/data/zookeeper/zookeeper-3.4.6/bin/../lib/netty-3.7.0.Final.jar:/data/zookeeper/zookeeper-3.4.6/bin/../lib/log4j-1.2.16.jar:/data/zookeeper/zookeeper-3.4.6/bin/../lib/jline-0.9.94.jar:/data/zookeeper/zookeeper-3.4.6/bin/../zookeeper-3.4.6.jar:/data/zookeeper/zookeeper-3.4.6/bin/../src/java/lib/*.jar:/data/zookeeper/zookeeper-3.4.6/bin/../conf:.:/usr/java/jdk1.7.0_79/lib/dt.jar:/usr/java/jdk1.7.0_79/lib/tools.jar:/usr/java/jdk1.7.0_79/jre/lib -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /data/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg

root       4103   3626  0 05:48 pts/0    00:00:00 grep zookeeper

注意:如果发现Zookeeper不是在运行状态的话,可以通过cat zookeeper.out来查看启动过程中的出错日志。

[[email protected] bin]# cat zookeeper.out

zookeeper的服务端起来之后我们需要启动Zookeeper的客户端,启动命令如下:./zkCli.sh。启动结果如下所示:

[[email protected] bin]# ./zkCli.sh 

Connecting to localhost:2181

2016-11-04 05:52:00,446 [myid:] - INFO  [main:[email protected]] - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT

2016-11-04 05:52:00,461 [myid:] - INFO  [main:[email protected]] - Client environment:host.name=CentOS1

2016-11-04 05:52:00,461 [myid:] - INFO  [main:[email protected]] - Client environment:java.version=1.7.0_79

2016-11-04 05:52:00,463 [myid:] - INFO  [main:[email protected]] - Client environment:java.vendor=Oracle Corporation

2016-11-04 05:52:00,463 [myid:] - INFO  [main:[email protected]] - Client environment:java.home=/usr/java/jdk1.7.0_79/jre

2016-11-04 05:52:00,463 [myid:] - INFO  [main:[email protected]] - Client environment:java.class.path=/data/zookeeper/zookeeper-3.4.6/bin/../build/classes:/data/zookeeper/zookeeper-3.4.6/bin/../build/lib/*.jar:/data/zookeeper/zookeeper-3.4.6/bin/../lib/slf4j-log4j12-1.6.1.jar:/data/zookeeper/zookeeper-3.4.6/bin/../lib/slf4j-api-1.6.1.jar:/data/zookeeper/zookeeper-3.4.6/bin/../lib/netty-3.7.0.Final.jar:/data/zookeeper/zookeeper-3.4.6/bin/../lib/log4j-1.2.16.jar:/data/zookeeper/zookeeper-3.4.6/bin/../lib/jline-0.9.94.jar:/data/zookeeper/zookeeper-3.4.6/bin/../zookeeper-3.4.6.jar:/data/zookeeper/zookeeper-3.4.6/bin/../src/java/lib/*.jar:/data/zookeeper/zookeeper-3.4.6/bin/../conf:.:/usr/java/jdk1.7.0_79/lib/dt.jar:/usr/java/jdk1.7.0_79/lib/tools.jar:/usr/java/jdk1.7.0_79/jre/lib

2016-11-04 05:52:00,463 [myid:] - INFO  [main:[email protected]] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

2016-11-04 05:52:00,463 [myid:] - INFO  [main:[email protected]] - Client environment:java.io.tmpdir=/tmp

2016-11-04 05:52:00,463 [myid:] - INFO  [main:[email protected]] - Client environment:java.compiler=<NA>

2016-11-04 05:52:00,463 [myid:] - INFO  [main:[email protected]] - Client environment:os.name=Linux

2016-11-04 05:52:00,464 [myid:] - INFO  [main:[email protected]] - Client environment:os.arch=amd64

2016-11-04 05:52:00,464 [myid:] - INFO  [main:[email protected]] - Client environment:os.version=2.6.32-431.el6.x86_64

2016-11-04 05:52:00,464 [myid:] - INFO  [main:[email protected]] - Client environment:user.name=root

2016-11-04 05:52:00,468 [myid:] - INFO  [main:[email protected]] - Client environment:user.home=/root

2016-11-04 05:52:00,469 [myid:] - INFO  [main:[email protected]] - Client environment:user.dir=/data/zookeeper/zookeeper-3.4.6/bin

2016-11-04 05:52:00,478 [myid:] - INFO  [main:[email protected]] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@2765c17

Welcome to ZooKeeper!

2016-11-04 05:52:00,563 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@975] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)

2016-11-04 05:52:00,590 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@852] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session

JLine support is enabled

2016-11-04 05:52:00,676 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x1582c299ebe0000, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null

[zk: localhost:2181(CONNECTED) 0] 

时间: 2024-12-26 12:53:54

Zookeeper安装的相关文章

Zookeeper安装部署

Zookeeper安装部署 Zookeeper部署(单机模式)   下载ZooKeeper ü  http://zookeeper.apache.org/   解压 ü  tar -zxvf zookeeper-3.4.5.tar.gz   配置.在conf目录下创建一个配置文件zoo.cfg: tickTime=2000 dataDir=/home/hadoop/bigdata/zookeeper/datadataLogDir=/home/hadoop/bigdata/zookeeper/da

01.ZooKeeper安装和介绍

1.ZooKeeper安装和启动 1.下载解压ZooKeeper ZooKeeper官方地址:http://zookeeper.apache.org/ 下载当前稳定版本:zookeeper-3.4.6.tar.gz 解压如下: [[email protected] ZooKeeper]$ tar -zxvf zookeeper-3.4.6 ...... [[email protected] ZooKeeper]$ ll total 17292 drwxr-xr-x. 10 lizhiwei li

ZooKeeper学习第二期--ZooKeeper安装配置

一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式. ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境:■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例:■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个"集合体"(ensemble) Zookeeper通过复制来实现高可用性,只要集合体中半数以上的机器处于可用状态,它就能够保证服务继续.为什么一定要超过半数呢?这

ZooKeeper安装配置

一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式. ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境:■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例:■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现高可用性,只要集合体中半数以上的机器处于可用状态,它就能够保证服务继续.为什么一定要超过半数呢?这跟Zook

ZooKeeper安装配置(转载)

转载自:http://www.cnblogs.com/sunddenly/p/4018459.html 一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式. ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境:■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例:■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个"集合体"(ensemble) Zookeeper通过复制

zookeeper安装及部署

阅读目录 一. 单机安装.配置 二. 集群安装.配置 安装及部署 回到顶部 一. 单机安装.配置 1.下载zookeeper二进制安装包 下载 curl -L -O http://apache.fayea.com/zookeeper/stable/zookeeper-3.4.6.tar.gz 解压 tar zxvf zookeeper-3.4.6.tar.gz 2.设置环境变量 ZOOKEEPER_HOME关键字为添加的配置项 # /etc/profile # System wide envir

windows下zookeeper安装+dubbo-admin安装注意点

一:zookeeper安装 下载地址:http://www.apache.org/dyn/closer.cgi/zookeeper 复制修改conf下的zoo_sample.cfg为zoo.cfg 打开将 dataDir=/tmp/zookeeper  修改为:dataDir=E:\\Sotfware\\dubbo\\tmp 其中: tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳. dat

【ZooKeeper】ZooKeeper安装及简单操作

ZooKeeper介绍 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式同步.组服务等. ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效.功能稳定的系统提供给用户. ZooKeeper包含一个简单的原语集, [1] 提供Java和C的接口. 官网:https://zookeep

zookeeper安装以及遇到的一些坑

最近项目中用到了storm,然后storm中用到了zookeeper,然后今天抽空整理一下zookeeper的安装使用,原来后期再慢慢学习. 本篇文档,操作部分是摘自其他博客,里边的问题分析是自己在实践过程中遇到然后特别记录的! ----------------------------- 开始: 一.Zookeeper原理简介 ZooKeeper是一个开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等. Zookeeper设计目的