zookeeper集群

Zookeeper简介

南楼画角 提交于 2019-12-19 00:27:20
什么是Zookeeper? Zookeeper是一个高效的分布式协调服务,它暴露了一些公用服务,比如命名/配置管理/同步控制/群组服务等。我们可以使用ZK来实现比如达成共识/集群管理/leader选举等。   Zookeeper是一个高可用的分布式管理与协调框架,基于ZAB算法(原子消费广播协议)的实现。该框架能够很好地保证分布式环境中数据的一致性。也正是基于这样的特性,使得Zookeeper成为了解决分布式一致性问题的利器。    顺序一致性:从一个客户端发起的事务请求,最终将会严格地按照其发起的顺序被应用到Zookeeper中去。   原子性:所有事务请求的处理结果在整个集群中所有机器上的应用情况是一致的,也就是说,要么整个集群所有的机器都成功应用了某一事务,要么有没有应用,一定不会出现部分机器应用了该事务,而另一部分没有应用的情况。   单一视图:无论客户端连接的是哪一个Zookeeper服务器,其看到的服务器端数据模型都是一致的。   可靠性:一旦服务器成功地应用了一个事务,并完成对客户端的响应,那么该事务所引起的服务端状态将会被一致保留下来,除非有另一个事务对其更改。   实时性:通常所说的实时性就是指一旦事务被成功应用,那么客户端就能立刻从服务器上获取变更后的新数据,Zookeeper仅仅能保证一段时间内,客户端最终一定能从服务器端读取最新的数据状态。

01.ZooKeeper安装和介绍

时光毁灭记忆、已成空白 提交于 2019-12-18 18:23:42
1.ZooKeeper安装和启动 1.下载解压ZooKeeper ZooKeeper官方地址: http://zookeeper.apache.org/ 下载当前稳定版本:zookeeper-3.4.6.tar.gz 解压如下: [lizhiwei@localhost ZooKeeper]$ tar -zxvf zookeeper-3.4.6......[lizhiwei@localhost ZooKeeper]$ lltotal 17292drwxr-xr-x. 10 lizhiwei lizhiwei 4096 Feb 20 2014 zookeeper-3.4.6-rwxrwxr-x. 1 lizhiwei lizhiwei 17699306 Sep 13 23:25 zookeeper-3.4.6.tar.gz[lizhiwei@localhost ZooKeeper]$ cd zookeeper-3.4.6[lizhiwei@localhost zookeeper-3.4.6]$ lltotal 1552drwxr-xr-x. 2 lizhiwei lizhiwei 4096 Oct 19 00:56 bin-rw-rw-r--. 1 lizhiwei lizhiwei 82446 Feb 20 2014 build.xml-rw-rw-r--. 1 lizhiwei

zookeeper知识点学习

蓝咒 提交于 2019-12-18 10:05:25
单机模式配置: Zookeeper 的启动脚本在 bin 目录下,Linux 下的启动脚本是 zkServer.sh 在你执行启动脚本之前,还有几个基本的配置项需要配置一 下,Zookeeper 的配置文件在 conf 目录下,这个目录下有 zoo_sample.cfg 和 log4j.properties,你需要做的就是将 zoo_sample.cfg 改名为 zoo.cfg,因为 Zookeeper 在启动时会找这个文件作为默认配置文件。 tickTime=2000 dataDir=D:/devtools/zookeeper-3.2.2/build clientPort=2181 tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。 dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。 clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。 当这些配置项配置好后,你现在就可以启动 Zookeeper 了,启动后要检查 Zookeeper 是否已经在服务,可以通过 netstat – ano

HBase主要运行机制

大兔子大兔子 提交于 2019-12-18 05:59:47
HBase 的物理存储 HBase 表中的所有行都是按照行键的字典序排列的。因为一张表中包含的行的数量非常多,有时候会高达几亿行,所以需要分布存储到多台服务器上。 因此,当一张表的行太多的时候,HBase 就会根据行键的值对表中的行进行分区,每个行区间构成一个“分区(Region)”,包含了位于某个值域区间内的所有数据,如图 1 所示。 图 1 HBase的Region存储模式图 Region 是按大小分割的,每个表一开始只有二个 Region,随着数据不断插入到表中,Region 不断增大,当增大到一个阈值的时候,Region 就会等分为两个新的 Region。当表中的行不断增多时,就会有越来越多的 Region,如图 2 所示。 图 2 HBase的Region分裂示意 Region 是 HBase 中数据分发和负载均衡的最小单元,默认大小是 100MB 到 200MB。不同的 Region 可以分布在不同的 Region Server 上,但一个 Region 不会拆分到多个 Region Server 上。每个 Region Server 负责管理一个 Region 集合。如图 3 所示。 图 3 HBase的Region分布模式 Region 是 HBase 在 Region Server 上数据分发的最小单元,但并不是存储的最小单元。事实上,每个 Region

Kafka基本原理(六)——Controller 控制器

不羁的心 提交于 2019-12-18 05:59:33
在Kafka集群中会有一个或者多个broker,其中有一个broker会被选举为控制器(Kafka Controller),它负责管理整个集群中所有分区和副本的状态。当某个分区的leader副本出现故障时,由控制器负责为该分区选举新的leader副本。当检测到某个分区的ISR集合发生变化时,由控制器负责通知所有broker更新其元数据信息。当使用kafka-topics.sh脚本为某个topic增加分区数量时,同样还是由控制器负责分区的重新分配。 Kafka中的控制器选举的工作依赖于Zookeeper,成功竞选为控制器的broker会在Zookeeper中创建/controller这个临时(EPHEMERAL)节点,此临时节点的内容参考如下: {"version":1,"brokerid":0,"timestamp":"1529210278988"} 其中version在目前版本中固定为1,brokerid表示称为控制器的broker的id编号,timestamp表示竞选称为控制器时的时间戳。 在任意时刻,集群中有且仅有一个控制器。每个broker启动的时候会去尝试去读取/controller节点的brokerid的值,如果读取到brokerid的值不为-1,则表示已经有其它broker节点成功竞选为控制器,所以当前broker就会放弃竞选;如果Zookeeper中不存在

zookeeper 介绍

我只是一个虾纸丫 提交于 2019-12-18 03:52:02
ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。 Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在 某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookeeper的目的就在于此。本文简单分析 zookeeper的工作原理,对于如何使用zookeeper不是本文讨论的重点。 1 Zookeeper的基本概念 1.1 角色 Zookeeper中的角色主要有以下三类,如下表所示: 系统模型如图所示: 1.2 设计目的 1.最终一致性:client不论连接到哪个Server,展示给它都是同一个视图,这是zookeeper最重要的性能。 2 .可靠性:具有简单、健壮、良好的性能,如果消息m被到一台服务器接受,那么它将被所有的服务器接受。 3 .实时性:Zookeeper保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。但由于网络延时等原因,Zookeeper不能保证两个客户端能同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口。 4 .等待无关(wait-free)

3台linux搭建Pulsar集群环境用于测试

谁说我不能喝 提交于 2019-12-18 01:23:30
搭建 Pulsar 集群需要 3 个组件:ZooKeeper 集群、BookKeeper 集群和 broker 集群 以下部署策略: 192.168.1.46 (部署BookKeeper,部署broker) 192.168.1.47 (部署BookKeeper,部署broker) 192.168.1.48 (部署单个ZK,部署BookKeeper,部署broker) 前期准备 1)jdk1.8 2)在各机器根下创建 data目录,下载apache-pulsar-2.4.2-bin.tar.gz拷到data目录下 chmod 777 apache-pulsar-2.4.2-bin.tar.gz tar xvfz apache-pulsar-2.4.2-bin.tar.gz 一 ZooKeeper 集群 为了简单一台机器上部署单个ZK使用. 1) 在data目录下创建 zookeeper和zookeeper/logs目录 2) 修改 zookeeper.conf 文件 dataDir=/data/zookeeper dataLogDir=/data/zookeeper/logs server.3=192.168.1.48:2888:3888 3) 执行命令 echo 3 > /data/zookeeper/zookeeper/myid 4) 启动zk /data/apache

kafka使用指南

≯℡__Kan透↙ 提交于 2019-12-17 21:42:34
快速开始 本教程假设您刚刚开始,并且没有现有的Kafka或ZooKeeper数据。由于Kafka控制台脚本对于基于Unix和Windows的平台是不同的,因此在Windows平台上使用bin\windows\而不是bin/将脚本扩展名更改为.bat。 第1步:下载代码 下载 2.0.0版本并解压缩它。 1 2 tar -xzf kafka_2.11-2.0.0.tgz cd kafka_2.11-2.0.0 第2步:启动服务器 Kafka使用ZooKeeper,因此如果您还没有ZooKeeper服务器,则需要先启动它。您可以使用与kafka一起打包的便捷脚本来获取快速且脏的单节点ZooKeeper实例。 1 2 3 bin/zookeeper-server-start.sh config/zookeeper.properties [2013-04-22 15:01:37,495] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig) ... 现在启动Kafka服务器: 1 2 3 4 bin/kafka-server-start.sh config/server.properties [2013-04-22

Zookeeper WINDOWS 安装配置

懵懂的女人 提交于 2019-12-17 11:42:43
下载:zookeeper:http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.6/ zookeeper-3.4.6.tar.gz 解压 zookeeper-3.4.6.tar.gz 一、单机配置 把zookeeper-3.4.6/conf/zoo_sample.cfg修改为zoo.cfg zoo.cfg内容: tickTime =2000 //Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔 initLimit =5 //zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower. initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s. syncLimit =2 //该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms. dataDir =D:\\tools\\zookeeper-3.4.6\\data //Zookeeper 保存数据的目录 clientPort =2181 //客户端连接

Zookeeper系列一:Zookeeper介绍、Zookeeper安装配置、ZK Shell的使用

☆樱花仙子☆ 提交于 2019-12-17 09:08:06
https://www.cnblogs.com/leeSmall/p/9563547.html 一、Zookeeper介绍 1. 介绍Zookeeper之前先来介绍一下分布式 1.1 分布式主要是下面两个方面: 1) 任务拆分   任务拆分指的是把传统的单节点服务拆分成多个节点服务部署到不同的机器上对外提供服务。比如一个传统服务有订单+支付+物流等3个模块,拆分成订单系统、支付系统、物流系统3个服务。 2) 节点分工   如上面的服务拆分后,订单系统、支付系统、物流系统各司其职 说明: 分布式解决高可用,高并发的。 集群解决的是高可用。 集群从物理上来定义,分布式一种工作方式。 例如:一个工作任务需要10个小时(单节点) 分布式:10台机器,任务只需要1个小时就能够完成 集群:10台机器,任务还是10个小时。 1.2 分布式协作中的难点: 如果让你设计一个分布式系统,你预见到什么问题? 1) 保证节点高可用(节点故障) 2) 数据的一致性 3) 通讯异常 4) 网络分区 ....... 2. Zookeeper简介 Zookeeper就是用来解决分布式协作中的难点的 zookeeper是google的chubby项目开源实现。最早是hadoop的子项目 Zookeeper的使用场景: 小米米聊、淘宝Taokeeper其实是类zookeeper。 Kafka使用zookeeper