zookeeper概述
什么是zookeeper?为什么zookeeper在大数据领域如此重要?下面我们从最基础的开始了解。
zookeeper是一个分布式协调服务的开源框架。其主要作用是用来解决分布式集群中的数据一致性问题。zookeeper本质上是一个小文件系统。其数据结构类似于文件系统的目录树,zookeeper可以对这些节点进行有效的管理。通过节点管理,来达到监控和维护节点数据的目标。通过监控数据的变化,来达到管理集群的目的。常见的应用如:配置管理、名称服务、分布式消息队列、分布式锁、分布式协调服务等。
zookeeper特性
数据一致性:在zookeeper集群中,每个server都保存着一份相同的数据副本,client无论连接到哪一个server,展示的数据都是一致的,这是zookeeper一个非常重要的特性,也是其在大数据领域广泛应用的基础。
可靠性:如果客户端请求被任意一个server接受,那么该请求就会被整个集群接受。
顺序性:有全局有序和偏序两种。全局有序是指如果在一台server上,消息a在消息b先发布,那么在所有server上,消息a都在消息b先发布。而偏序是指消息a在消息b前被同一个server发布,那么消息a必定在消息b的前面。
数据更新的原子性:一次数据更新要么成功,要么失败,不存在中间状态。
实时性:zookeeper保证客户端在一定的时间间隔内获得服务器的响应,无论是成功还是失败。
zookeeper角色
leader:是集群正常工作的核心。事务性(写操作)请求的唯一处理者和调度者。集群内部的管理者和调度者。
follower:处理非事务性请求,参与集群leader选举,转发事务性请求给leader.
observer:处理非事务性请求,不参与leader选举,转发事务性请求给leader。如果集群的读请求很多,可以添加observer角色,提高集群的非事务处理能力。
zookeeper安装
zookeeper的安装分为单机版和集群版,单机版主要用来调试。下面我们演示在虚拟机中安装集群版。zookeeper集群通常由奇数个节点组成,这是为了保证集群leader的选举(基于paxos算法,此篇文章不做介绍)。本次演示使用3台机器如何安装zookeeper集群。
1.安装jdk,三台机器都要安装
- 下载地址https://www.oracle.com/technetwork/java/javase/downloads
- /index.htmljdk-8u211-linux-x64.rpm#安装rpm -ivh jdk-8u211-linux-
- x64.rpm#切换javaalternatives --config java
2.下载zookeeper安装包
- 下载地址:https://archive.apache.org/dist/zookeeper/安装包版本:zookeeper-3.4.5.tar.gz
3.配置主机名映射
- vim /etc/hosts192.168.80.10 node1192.168.80.11 node2192.168.80.12 node3
4.修改zookeeper配置文件
- tar -zxvf zookeeper-3.4.5.tar.gz -C /servers/cd /serversln -s
- zookeeper-3.4.5/ zookeepercd /servers/zookeeper/confcp zoo_sample.cfg
- zoo.cfgvim zoo.cfg#在zoo.cfg中添加如下配置信息
- tickTime=2000dataDir=/servers/zookeeper
- /dataclientPort=2181server.1=node1:2888:3888server.2=node2:2888:3888s
- erver.3=node3:2888:3888
5.设置myid文件
myid文件只包含一个数字,数值范围在1-255,myid文件的位置在数据目录下,由dataDir参数指定
- cd /servers/zookeeper/dataecho 1 > myid注意myid中的值必须是唯一的,在
- 这里我们三台机器分别设置为1,2,3
6.启动zookeeper
- ./zkServer.sh start
7.查看角色状态
- /servers/zookeeper/bin/zkServer.sh status
zookeeper集群环境已经搭建好了,下一篇文章我们看看如何使用zookeeper,zookeeper又有哪些有趣的特性。
在Python语言中有如下3种方法: 成员方法 类方法(classmethod) 静态方法(staticm...
前提条件 请您在购买前确保已完成注册和充值。详细操作请参见 如何注册公有云管...
从 10.0.0 版开始,异步迭代器就出现在 Node 中了,在本文中,我们将讨论异步迭...
摘要 元旦期间 订单业务线 告知 推送系统 无法正常收发消息,作为推送系统维护者...
信息化2.0时代提出开展智慧教育创新发展行动。2019年2月,中共中央、国务院印发...
建站 什么 虚拟主机 够用?这要看搭建的是什么类型的网站。比如个人博客类型的网...
Docker生成新镜像版本的两种方式 There are two ways Docker can generate new m...
2021年3月24日,主题为《数据的世界,世界的数据》的星环科技2021春季新品发布会...
本文整理自直播《Hologres 数据导入/导出实践-王华峰(继儒)》 视频链接: https:/...
【51CTO.com快译】 数据可视化工具不断发展,提供更强大的功能,同时改善可访问...