zookeeper集群

linux下zookeeper安装

雨燕双飞 提交于 2020-03-23 17:17:09
更改测试集群版本,重新安装集群,就写了个文档记录一下。 1.关闭 Linux的防火墙 临时关闭防火墙:service iptables stop 永久关闭防火墙:chkconfig iptables off 2.安装JDK 配置环境:   vim /etc/profile 环境变量生效:     source /etc/profile 查看JDK是否配置成功: 集群之间使用scp -r 命令进行cp,使每一台机器都生效。 3.解压zookeeper, 进入 Zookeeper的安装目录下的子目录conf目录中:cd zookeeper-3.5.6-bin/conf 4.将 conf目录下的zoo_sample.cfg复制为zoo.cfg。Zookeeper在启动的时候会自动寻找zoo.cfg,根据其中的配置来启动存储数据:cp zoo_sample.cfg zoo.cfg 5.编辑 zoo.cfg文件:vim zoo.cfg 6.修改其中的属性 dataDir,指定数据的存储目录:dataDir=/home/zookeeper-3.5.6/tmp   在 zoo.cfg文件的末添加要构建集群的服务器地址   格式: server.编号=IP地址:原子广播端口:选举端口   例如:   server.1=ip地址:2888:3888   server.2=ip地址:2888:3888

深入了解Zookeeper

蓝咒 提交于 2020-03-23 03:56:11
一. 系统模型 数据模型 1. ZNode是Zookeeper中数据的最小单元,每个ZNode上可以保存数据,也可以挂载子节点,因此构成了一个层次化的命名空间,称之为树; 2. Zookeeper中事务是指能改变Zookeeper服务器状态的操作,一般包括数据节点创建于删除,数据节点内容更新和客户端会话创建于失效等; 对于每一个事务请求,都会分配一个全局唯一的事务ID,用ZXID来表示,通常是一个64位数字,从ZXID中可以间接的识别这些请求的全局顺序; 节点特性 1. 节点类型可以分为持久节点PERSISTENT,临时节点EPHEMERAL,顺序节点SEQUENTIAL; 2. 持久节点是指被创建后会一直保存在服务器上,直到有删除操作主动清除这个节点; 3. 临时节点的声明周期和客户端的会话绑定在一起,临时节点不能创建子节点; 4. 顺序节点指创建节点时,Zookeeper会自动为节点名加上一个数字后缀,后缀上线是整型的最大值; 5. 每个数据节点也存储了本身的一些状态信息Stat,包括事务ID,版本信息和子节点个数等; 版本 1. 每个数据节点都具有三种类型的版本信息:version,cversion,aversion; 2. 版本表示数据变更操作的次数,即使变更没有引起数据内容的变化; Watcher 1. 一次性:客户端和服务端注册的Watcher一旦被触发

zookeeper集群搭建

天涯浪子 提交于 2020-03-23 02:40:59
本例搭建的是伪集群模式,即一台机器上启动三个zookeeper实例组成集群,真正的集群模式无非就是实例IP地址不同,搭建方法没有区别 配置JAVA环境,检验环境: java -version echo ${JAVA_HOME} # 设置zookeeper集群 cd /usr/local/src wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz tar -zxvf apache-zookeeper-3.5.5-bin.tar.gz -C /usr/local cd /usr/local/apache-zookeeper-3.5.5-bin mkdir -p /zkdata/{zookeeper-1,zookeeper-2,zookeeper-3} cp conf/zoo_sample.cfg conf/zoo-1.cfg # vim conf/zoo-1.cfg dataDir=/zkdata/zookeeper-1 clientPort=2181 server.1=127.0.0.1:2888:3888 server.2=127.0.0.1:2889:3889 server.3=127.0.0.1:2890:3890 cp conf/zoo

分布式协调服务-Zookeeper

丶灬走出姿态 提交于 2020-03-23 01:08:45
什么是 zookeeper? Zookeeper 是google的chubby一个开源实现,是hadoop的分布式协调服务 它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。 在Hbase中会用到。 Zk(zookeeper简称)可以用来保证数据在zk集群之间的数据的事物性一致。 Zk默认数据2M以下。 zookeeper架构图 如何搭建Zookeeper服务器集群 zk服务器集群规模不小于3节点,要求服务器之间系统时间要保持一致。 将下载的zookeeper复制到/usr/local 里,解压: tar –zxvf zookeeper-3.4.5.tar.gz 重命名: mv zookeeper-3.4.5.tar.gz zk 在hadoop的/usr/local目录下,解压缩zk….tar.gz,设置环境变量 设置环境变量: 加入: export ZOOKEEPER_HOME=/usr/local/zk 在PATH 后面追加: :$ZOOKEEPER_HOME/bin 使环境变量生效: source /etc/profile 在conf目录下,修改文件 mv zoo_sample.cfg zoo.cfg [root@hadoop zk]# cd conf [root@hadoop conf]# ls configuration.xsl

构建高可用ZooKeeper集群

时光毁灭记忆、已成空白 提交于 2020-03-22 06:03:37
ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效、高可用的分布式协调服务,提供了诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知和分布式锁等分布式基 础服务。由于 ZooKeeper 便捷的使用方式、卓越的性能和良好的稳定性,被广泛地应用于诸如 Hadoop、HBase、Kafka 和 Dubbo 等大型分布式系统中。    本文的目标读者是对 ZooKeeper 有一定了解的技术人员,将从 ZooKeeper 运行模式、集群组成、容灾和水平扩容四方面逐步深入,最终构建出高可用的 ZooKeeper 集群。 运行模式   Zookeeper 有三种运行模式:单机模式、伪集群模式和集群模式。 单机模式   这种模式一般适用于开发测试环境,一方面我们没有那么多机器资源,另外就是平时的开发调试并不需要极好的稳定性。   在 Linux 环境下运行单机模式需要执行以下步骤:    1. 准备 Java 运行环境     安装 Java 1.6 或更高版本的 JDK,并配置好 Java 相关的环境变量 $JAVA_HOME 。    2. 下载 ZooKeeper 安装包     下载地址: http://zookeeper.apache.org/releases.html 。选择最新的 stable 版本并解压到指定目录,我们用 $ZK_HOME

centos8平台安装zookeeper3.6集群

孤街浪徒 提交于 2020-03-21 17:31:02
一,规划三台zk服务器构成集群 ip:172.18.1.1 机器名:zk1 对应myid: 1 ip:172.18.1.2 机器名:zk2 对应myid: 2 ip:172.18.1.3 机器名:zk3 对应myid: 3 说明:为什么zookeeper集群的数量需要是单数? 1,为了容错,增删改操作中需要半数以上服务器通过才算成功, 2,防脑裂,一个zookeeper集群中,必需有且只能有一台leader服务器 当leader服务器宕机时,剩下的服务器会通过半数以上投票选出一个新的leader服务器 集群总数共2台时,半数是1,半数以上最少是2,也就是一台也不能宕机 集群总数共3台时,半数是1.5,半数以上最少是2,也就是允许一台能宕机 集群总数共4台时,半数是2,半数以上最少是3,也就是允许一台能宕机 集群总数共5台时,半数是2.5,半数以上最少是3,也就是允许两台能宕机, 集群总数共6台时,半数是3,半数以上最少是4,也就是允许两台能宕机, 可见 允许两台能宕机:5台比6台成本更低 允许一台能宕机:3台比4台成本更低 说明:刘宏缔的架构森林是一个专注架构的博客,地址: https://www.cnblogs.com/architectforest 对应的源码可以访问这里获取: https://github.com/liuhongdi/ 说明:作者:刘宏缔 邮箱:

zookeeper java客户端使用

坚强是说给别人听的谎言 提交于 2020-03-21 14:51:51
3 月,跳不动了?>>> ZooKeeper是一个优秀的分布式协同工具,很多分布式项目都基于它进行架构设计,不过要想要对其有一个深入的理解(如果你想阅读其源代码),对其客户端API的熟悉必不可少。下面就简要记录一下ZooKeeper中各个API的简单用法。 这篇文章不打算对ZooKeeper的基本概念及安装进行讲解,想要了解这部分内容可以参考:http://zookeeper.apache.org/doc/r3.4.3/zookeeperOver.html , 或者可以参考:http://zookeeper.apache.org/doc/r3.4.3/zookeeperProgrammers.html 均是官方文档,这也是想要学习某个开源工具必须的先行步骤,并且官网上的文档也应该算是最权威的,不过ZooKeeper在这方面的文档不怎么多,但作为入门了解,还是非常有用的。 下面将从基本用法,Watchert的用法,异步调用以及ACL四个方面对ZooKeeper客户端编程作简要介绍。 当完成这四个方面的理解以后,就可以使用ZK完成一些更加高级的任务,如分布式锁、Master选举、一致性服务保障、配置管理等。官方文档对此也有简要介绍, 参考:http://zookeeper.apache.org/doc/r3.4.3/recipes.html 基本数据结构 class Stat {

CentOS 7 中使用 Docker 方式搭建 ZooKeeper 集群

ⅰ亾dé卋堺 提交于 2020-03-20 15:45:32
3 月,跳不动了?>>> 1. 首先 CentOS 7 中应该安装好 Docker, Docker 安装参考 2. 拉取 ZooKeeper 的 docker 镜像, 可以去 https://hub.docker.com/ 上搜索相关的 ZooKeeper 镜像 docker pull zookeeper:3.4.14 3. 在宿主机上建立三个文件夹, 分别对应三个容器 /root/zookeeper01/conf /root/zookeeper01/data /root/zookeeper01/datalog /root/zookeeper02/conf /root/zookeeper02/data /root/zookeeper02/datalog /root/zookeeper03/conf /root/zookeeper03/data /root/zookeeper03/datalog 4. 创建并运行三个ZooKeeper容器 docker run -d --name zookeeper-1 \ -v /root/zookeeper01/conf:/conf \ #映射文件夹到宿主机对应文件夹 -v /root/zookeeper01/data:/data \ #映射文件夹到宿主机对应文件夹 -v /root/zookeeper01/datalog:/datalog \

kafka 知识点

℡╲_俬逩灬. 提交于 2020-03-19 04:54:05
kafka 相关术语: 术语 含义 producer,产生消息 消息生产者,发布消息到 kafka 集群的终端或服务。 consumer,消费消息 从 kafka 集群中消费消息的终端或服务。 topic,主题,在主题里分布消息 每条发布到 kafka 集群的消息属于的类别,即 kafka 是面向 topic 的。 broker,服务器 kafka 集群中包含的服务器。 Consumer group high-level consumer API 中,每个 consumer 都属于一个 consumer group,每条消息只能被 consumer group 中的一个 Consumer 消费,但可以被多个 consumer group 消费。 partition partition 是物理上的概念,每个 topic 包含一个或多个 partition。kafka 分配的单位是 partition。 replica partition 的副本,保障 partition 的高可用。 leader replica 中的一个角色, producer 和 consumer 只跟 leader 交互。 follower replica 中的一个角色,从 leader 中复制数据。 controller kafka 集群中的其中一个服务器,用来进行 leader election 以及 各种

[zz]Twitter Storm源代码分析之ZooKeeper中的目录结构

天大地大妈咪最大 提交于 2020-03-19 00:51:41
作者: xumingming | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 转自网址: http://xumingming.sinaapp.com/466/twitter-storm-code-analysis-zookeeper-dirs/ 我们知道Twitter Storm的所有的状态信息都是保存在Zookeeper里面,nimbus通过在zookeeper上面写状态信息来分配任 务,supervisor,task(两个实体)通过从zookeeper中读状态来领取任务,同时supervisor, task也会定义发送心跳信息到zookeeper, 使得nimbus可以监控整个storm集群的状态, 从而可以重启一些挂掉的task。ZooKeeper 使得整个storm集群十分的健壮 — 任何一台工作机器挂掉都没有关系,只要重启然后从zookeeper上面重新获取状态信息就可以了。本文主要介绍Twitter Storm在ZooKeeper中保存的数据目录结构,源代码主要是: backtype.storm.cluster , 废话不多说,直接看下面的结构图: 一个要注意的地方是,作者在代码里面很多地方用到的 storm-id , 其实就是 topology-id 的意思。我在邮件列表里面问了他一下, 他说以前他把topology叫做storm,