0 maven中使用zk 3.4.6的依赖信息如下:
http://www.mvnrepository.com/artifact/org.apache.zookeeper/zookeeper/3.4.6
1 应用场景:
hbase分布式部署 和 Hadoop2的自动切换
2 一些地址:
官网地址:http://zookeeper.apache.org/
下载地址: http://www.apache.org/dyn/closer.cgi/zookeeper/
官网文档学习地址: http://zookeeper.apache.org/doc/trunk/
3 概念简介:
Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务
它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等
zk是一个基本命令的集合。
a) 为何使用:
大部分分布式应用需要一个主控、协调器或控制器来管理物理分布的子进程(如资源、任务分配等)
目前,大部分应用需要开发私有的协调程序,缺乏一个通用的机制
协调程序的反复编写浪费,且难以形成通用、伸缩性好的协调器
ZooKeeper:提供通用的分布式锁服务,用以协调分布式应用
a.1) 特点 (zk如何从中抽取到一套机制来满足各个不同主从分布式系统(hadoop hbase)的需要)
简单
高可用
松耦合的交互
是一个资源库
b) zookeeper的角色:
领导者(leader),负责进行投票的发起和决议,更新系统状态
学习者(learner),包括跟随者(follower)和观察者(observer),follower用于接受客户端请求并想客户端返回结果,在选主过程中参与投票
Observer可以接受客户端连接,将写请求转发给leader,但observer不参加投票过程,只同步leader的状态,observer的目的是为了扩展系统,提高读取速度
客户端(client),请求发起方,类比mysql的sqlyog工具
c) zk集群为奇数原因: 能够快速实现投票选举leader
d) zk目的是同步,借助于集群的存储数据是手段, zk之间是通过网络端口http传输的。
zk客户端连接到zk集群后,并在zk集群中创建节点后,然后zk客户端可以在创建好的节点上存放数据,当客户端在zk1节点上写上数据后,那么zk集群的各个服务器上数据将会被同步,即使在客户端在上传数据到zk1时网络中断,如果zk1对应节点上能看到数据,那么zk集群也会有相同节点并存放相同数据。
e) zk监视器: 监控节点以及节点上的数据变化。
比如 某个节点坏掉 就会触发zk监视器, 或者某个节点数据变化了,也会触发zk监视器。
客户端用到那个znode节点,就会在当前节点上启动监视器。
f) zk也是一个文件系统。
4 搭建:
// 0 解压和重命名 [root@master local]# tar -zxvf zookeeper-3.4.5.tar.gz [root@master local]# mv zookeeper-3.4.5 zk // 1 设置环境变量 增加zk部分 [root@master zk]# vi /etc/profile export JAVA_HOME=/usr/local/jdk export HADOOP_HOME=/usr/local/hadoop export HIVE_HOME=/usr/local/hive export ZK_HOME=/usr/local/zk export PATH=.:$ZK_HOME/bin:$HIVE_HOME/bin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH [root@master zk]# source /etc/profile // 2 给zk增加Java环境变量: [root@master conf]# ls configuration.xsl log4j.properties zoo_sample.cfg [root@master conf]# mv zoo_sample.cfg zoo.cfg [root@master conf]# ls configuration.xsl log4j.properties zoo.cfg [root@master conf]# // 3 修改 zoo.cfg的信息, 如下,此目录存放myid+zk的节点数据信息+zookeeper.out dataDir=/usr/local/zk/data server.0=master:2888:3888 server.1=sliver103:2888:3888 server.2=sliver104:2888:3888 // 4 创建data目录,并创建myid文件添加内容: [root@master zk]# mkdir data [root@master data]# more myid //0是zk server标识,对应zoo.cfg下的server.0(server.是zk固定写法) 0 // 5 拷贝zk到sliver103, sliver104上 [root@master zk]# scp -r /usr/local/zk sliver103:/usr/local/ [root@master zk]# scp -r /usr/local/zk sliver104:/usr/local/ // 6 修改sliver103, sliver104的 zk/data/myid, 分别修改为1,2 修改操作通过vi myid即可 // 7 拷贝master的/etc/profile到sliver103, sliver104上 [root@master zk]# scp /etc/profile sliver103:/etc/ [root@master zk]# scp /etc/profile sliver104:/etc/ 并分别在sliver103,104上执行 # source /ect/profile // 8 在三个节点上分别执行命令zkServer.sh start [root@master bin]# zkServer.sh start JMX enabled by default Using config: /usr/local/zk/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@master bin]# ls [root@sliver103 bin]# zkServer.sh start JMX enabled by default Using config: /usr/local/zk/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@sliver104 bin]# zkServer.sh start JMX enabled by default Using config: /usr/local/zk/bin/../conf/zoo.cfg Starting zookeeper ... STARTED // 9 检验,在三个节点上分别执行命令zkServer.sh status, 可以看到此三个节点通过选举在sliver103上产生了leader [root@master bin]# zkServer.sh status JMX enabled by default Using config: /usr/local/zk/bin/../conf/zoo.cfg Mode: follower [root@sliver103 bin]# zkServer.sh status JMX enabled by default Using config: /usr/local/zk/bin/../conf/zoo.cfg Mode: leader [root@sliver104 bin]# zkServer.sh status JMX enabled by default Using config: /usr/local/zk/bin/../conf/zoo.cfg Mode: follower
注: 如果安装的是单节点zk,那么 zkServer.sh status后的结果为 Mode: standalone
sh zkCli.sh后会看到 welcome to Zookeeper! ininiating session session setablishment complete on server localhost/127.0.0.1:2181,initiating session. 这样基于session可以知道这种客户端连接下是能够监控到状态的。
2181是客户端连接服务端的通讯端口。
5 使用简介:
4.1) 进入master机器客户端界面,创建并赋值一个变量 [root@sliver103 bin]# zkCli.sh Welcome to ZooKeeper! ..... WatchedEvent state:SyncConnected type:None path:null [zk: localhost:2181(CONNECTED) 0] [zk: localhost:2181(CONNECTED) 0] dfddfdfdffdf //随便敲击命令,zk会输出如下命令提示信息: ZooKeeper -server host:port cmd args connect host:port get path [watch] // 获取数值 ls path [watch] // 查看子集 set path data [version] // 设置数值 rmr path delquota [-n|-b] path quit printwatches on|off create [-s] [-e] path data acl // 创建路径 stat path [watch] close ls2 path [watch] history listquota path setAcl path acl getAcl path sync path redo cmdno addauth scheme auth delete path [version] // 删除路径 setquota -n|-b val path [zk: localhost:2181(CONNECTED) 5] create /myzk myzookeeperdata // 在zk根目录下创建目录myzk 内容为myzookeeperdata Created /myzk [zk: localhost:2181(CONNECTED) 6] ls / [myzk, zookeeper] [zk: localhost:2181(CONNECTED) 8] get /myzk // 获取数据 下面更多的是版本时间信息 myzookeeperdata cZxid = 0x100000002 ctime = Sat Dec 20 20:54:04 PST 2014 mZxid = 0x100000002 mtime = Sat Dec 20 20:54:04 PST 2014 pZxid = 0x100000002 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 15 numChildren = 0 [zk: localhost:2181(CONNECTED) 9] delete /myzk 删除节点 [zk: localhost:2181(CONNECTED) 10] get /myzk Node does not exists: /test 10.2) 进入sliver103主机,获取get /myzk: zk保证了数值的一致性 [root@sliver103 ~]# cd /usr/local/zk/bin [root@sliver103 bin]# zkCli.sh [zk: localhost:2181(CONNECTED) 0] get /myzk myzookeeperdata cZxid = 0x100000002 ctime = Sat Dec 20 20:54:04 PST 2014 mZxid = 0x100000002 mtime = Sat Dec 20 20:54:04 PST 2014 pZxid = 0x100000002 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 15
相关推荐
zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; ...
Zookeeper集群搭建是一个重要的任务,尤其在分布式系统中,它作为协调服务,为高可用性和数据一致性提供了基础。Zookeeper是Apache的一个开源项目,用于处理分布式应用中的命名服务、配置管理、集群同步、选举等功能...
本教程将详细讲解如何搭建一个基于Dubbo和Zookeeper的环境,以实现微服务架构中的服务治理。 首先,我们要理解Dubbo的核心概念。Dubbo是由阿里巴巴开发的一款高性能、轻量级的Java RPC框架,它提供了服务发现、服务...
**环境搭建步骤** 为了在全新环境中部署 dubbo+zookeeper,我们需要按照以下步骤操作: 1. **创建虚拟机账号和设置权限** 创建一个名为 admin 的用户,并赋予必要的权限,例如密码为 root,IP 地址为 192.168.1.xx...
### Zookeeper环境搭建与应用场景详解 #### 一、Zookeeper简介及重要性 **Zookeeper**作为Hadoop生态系统中的一个重要组成部分,主要负责管理和协调分布式应用程序中的各种组件和服务。它的核心功能在于提供一种...
Zookeeper 搭建和原理学习 Zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现。它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理...
zookeeper Linux 集群搭建流程 ZooKeeper 是一个广泛使用的分布式协调服务,主要用于管理和协调分布式系统中的各个节点。Linux 集群搭建是 ZooKeeper 的一种常见应用场景,本文将详细介绍 ZooKeeper Linux 集群搭建...
zookeeper之分布式环境搭建:深入解析ZooKeeper分布式环境搭建+编程知识+技术开发; zookeeper之分布式环境搭建:深入解析ZooKeeper分布式环境搭建+编程知识+技术开发; zookeeper之分布式环境搭建:深入解析...
linux下zookeeper集群环境搭建详细图文教程,简单易使用
实现zookeeper搭建单机集群,分机器搭建也可以。只要更改这个配置文件就可以了 start(){ sh /Users/mac/linuxsoft/zk-cluster/zookeeper-3.4.6/bin/zkServer.sh start /Users/mac/linuxsoft/zk-cluster/zookeeper...
【Zookeeper集群搭建详解】 Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、...
zookeeper环境搭建.md
此附件是快速搭建zookeeper集群的脚本,方便灵活,减少了自己一大堆复杂的操作,像运行服务一样执行几条start,stop等命令即可轻松完成集群搭建。
在本文中,我们将详细介绍如何在单台机器上搭建 Zookeeper 的伪分布式集群。伪分布式集群意味着在同一台机器上运行多个 Zookeeper 实例,它们各自独立并模拟分布式环境的行为。 首先,确保你的服务器已经安装了 JDK...
在这个主题中,我们将深入探讨如何搭建Kafka和Zookeeper集群,以及这两个组件在实际应用中的作用。 首先,让我们了解一下Zookeeper。Zookeeper是Apache Hadoop项目的一个子项目,它为分布式应用程序提供一致性服务...
详细介绍了Zookerper注册中心集群搭建的准备工作以及搭建的详细步骤,并且模拟了集群的一些常见异常,可以使学习Zookeeper的同志们通过阅读本篇文档,能够快速上手对Zookeeper的搭建使用
"zookeeper集群搭建" ZooKeeper是一种广泛使用的分布式协调服务,能够提供高性能、可靠性强的分布式应用程序协调服务。本文将从 ZooKeeper 的安装、配置、启动、停止和使用等方面,对 ZooKeeper 的基本知识进行...
#### 一、Zookeeper简介及下载安装 **1.1 Zookeeper概述** Zookeeper 是一个开源的分布式协调服务框架,主要用于解决分布式系统中复杂的应用一致性问题。它通过提供一系列的基本功能和服务来帮助开发者构建高性能...