zookeeper集群

Zookeeper概览

一曲冷凌霜 提交于 2019-12-16 04:07:32
Zookeeper 是一个典型的 分布式数据一致性 的解决方案,是谷歌 Chubby 的开源实现,在分布式系统中有非常广泛的应用。 分布式应用程序可以基于它来实现 数据发布/订阅、分布式协调/通知、集群管理、Master 选举、命名服务、分布式锁和分布式队列 等功能。 在诸如 HDFS、Yarn、HBase、Kafka、Flink 等著名分布式系统中都使用 Zookeeper 来实现各自的 分布式协调机制 。 在大数据系统中, Zookeeper 是必不可少的组件 ,所有大数据平台上必定运行着一组 Zookeeper 服务器集群。 对于大部分业务开发人员来说,Zookeeper 是属于幕后默默干活奉献的角色,在开发过程中接触的往往都是基于 Zookeeper 的上层系统,这使得很多开发人员对 Zookeeper 处于一种 知道它很重要,但是对它缺不熟悉 的状态。 虽然在大部分工作中,开发人员并不需要完全了解 Zookeeper 是如何实现的,但是保持对这个重要组件的了解与探索能够在一定程度上 提升对现有分布式系统实现的理解 。 本文将会从 Zookeeper 的 基本概念 开始介绍,随后使用客户端API模拟了一个简单的 Master-Slaves 集群 中主从节点的行为,并在之后讨论到其 内部实现的机制与服务端相关的参数配置 ,为分布式系统应用揭开最后一层神秘的面纱。

Zookeeper和Redis中的选举工作

倾然丶 夕夏残阳落幕 提交于 2019-12-15 19:46:52
前言 最近在准备复习了,想着把以前的知识串一串,零零散散的总是很容易忘,知识还是要成体系的,这也是互联网工程师的必备素养吧,要不每天都有新知识,等到35还怎么和年轻人拼,只有沉淀出自己的东西,才能不被淘汰。 现在到处都是分布式、高并发,我们用的很多东西像数据库之类的到了生产环境都会是集群部署,每台机器都是一个节点,很多场景又会分为主从节点,比如主写从读啊之类的,当然,说到这里少不了节点挂了的情况,节点挂了一般问题也不大,现在故障转移各种工作已经做的很到位了,毕竟要保证高可用嘛。今天就来唠一下,节点挂了后一些相关的选举工作,本文主要以 Zookeeper 和 Redis 为例来说明。 Redis选举领头Sentinel Sentinel是Redis实现高可用的保证 。Sentinel系统作用就是监视Redis服务器集群,它可以不停的获得redis集群状态,当一个主节点挂了,故障转移操作会在从节点中选出一个新的主节点,这里故障转移就是由Sentinel来主导完成的。 不要把Sentinel想的太复杂, 它其实就是一个特殊工作模式的Redis服务器 而已,Redis是集群部署的,这里的Sentinel也是要集群部署的,要是非单点部署,你的Sentinel挂了,此时的Redis集群就GG了。 接着上边说,当主服务器节点挂了,Sentinel系统就会选出一个 领头的Sentinel

Zookeeper的安装

元气小坏坏 提交于 2019-12-15 04:49:07
文章目录 安装zookeeper的注意事项 下载安装包并解压 配置环境变量 修改zookeeper配置文件 创建文件夹 在zkdata文件夹下新建myid文件,myid的文件内容为 分发安装包到其他机器 修改其他机器的配置文件 启动 配置脚本一键启动zookeeper集群 安装zookeeper的注意事项 安装前需要安装好JDK 检测集群时间是否同步 检测防火墙是否关闭 检测主机与IP的映射关系 下载安装包并解压 这里使用 zookeeper-3.4.5-cdh5.14.0.tar.gz 进行安装 或 在官方下载安装 Zookeeper的CDH版本 - http://archive.cloudera.com/cdh5/cdh/5/zookeeper-3.4.5-cdh5.14.0.tar.gz Zookeeper的Apache版本 - https://archive.apache.org/dist/zookeeper/ 下载完成后解压 cd /export/software tar -zxvf zookeeper-3.4.5-cdh5.14.0.tar.gz -C /export/servers/ 配置环境变量 vim /etc/profile.d/zookeeper.sh export ZOOKEEPER_HOME=/export/servers/zookeeper-3.4.5

ZooKeeper>Zookeeper介绍

醉酒当歌 提交于 2019-12-15 04:00:54
Apache Zookeeper基本知识 1、ZooKeeper集群搭建 Zookeeper集群搭建指的是ZooKeeper分布式模式安装。通常由 2n+1 台servers组成。这是因为为了保证Leader选举(基于Paxos算法的实现)能过得到多数的支持,所以ZooKeeper集群的数量一般为奇数。 Zookeeper运行需要java环境,所以需要 提前安装jdk 。对于安装 leader+follower模式 的集群,大致过程如下: 配置主机名称到IP地址映射配置 修改ZooKeeper配置文件 远程复制分发安装文件 设置myid 启动ZooKeeper集群 如果要想使用Observer模式,可在对应节点的配置文件添加如下配置: peerType=observer 其次,必须在配置文件指定哪些节点被指定为Observer,如: server.1:node-1:2181:3181:observer 点击:具体安装zookeeper的注意事项 2、ZooKeeper概述 Zookeeper是一个 分布式协调服务 的开源框架。主要用来解决分布式集群中应用系统的一致性问题。 ZooKeeper本质上是一个 分布式的小文件存储系统 。提供基于类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理。从而用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化

什么是ZooKeeper?

最后都变了- 提交于 2019-12-15 00:09:22
想入门一下Kafka的(装一下环境、看看Kafka一些概念啥的)。后来发现Kafka用到了ZooKeeper,而我又对ZooKeeper不了解,所以想先来学学什么是ZooKeeper,再去看看什么是Kafka。 ZooKeeper相信大家已经听过这个词了,不知道大家对他了解多少呢?我第一次听到ZooKeeper的时候是在学Eureka的时候,同样ZooKeeper也可以作为 注册中心 。 后面听到ZooKeeper的时候,是因为ZooKeeper可以作为 分布式锁 的一种实现。 直至在了解Kafka的时候,发现Kafka也需要依赖ZooKeeper。Kafka使用ZooKeeper 管理自己的元数据配置 。 这篇文章来写写我学习ZooKeeper的笔记,如果有错的地方希望大家可以在评论区指出。 一、什么是ZooKeeper 从上面我们也可以发现,好像哪都有ZooKeeper的身影,那什么是ZooKeeper呢?我们先去 官网 看看介绍: 官网还有另一段话: ZooKeeper: A Distributed Coordination Service for Distributed Applications 相比于官网的介绍,我其实更喜欢 Wiki 中对ZooKeeper的介绍: (留下不懂英语的泪水) 我简单概括一下: ZooKeeper主要 服务于分布式系统

zookeeper的作用与机制

狂风中的少年 提交于 2019-12-14 13:13:53
参考地址: https://www.cnblogs.com/ultranms/p/9585191.html 在Zookeeper的官网上有这么一句话:ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. 这大概描述了Zookeeper主要可以干哪些事情:配置管理,名字服务,提供分布式同步以及集群管理。那这些服务又到底是什么呢?我们为什么需要这样的服务?我们又为什么要使用Zookeeper来实现呢,使用Zookeeper有什么优势?接下来我会挨个介绍这些到底是什么,以及有哪些开源系统中使用了。 配置管理 在我们的应用中除了代码外,还有一些就是各种配置。比如数据库连接等。一般我们都是使用配置文件的方式,在代码中引入这些配置文件。但是当我们只有一种配置,只有一台服务器,并且不经常修改的时候,使用配置文件是一个很好的做法,但是如果我们配置非常多,有很多服务器都需要这个配置,而且还可能是动态的话使用配置文件就不是个好主意了。这个时候往往需要寻找一种集中管理配置的方法,我们在这个集中的地方修改了配置,所有对这个配置感兴趣的都可以获得变更

Zookeeper集群搭建

我的梦境 提交于 2019-12-14 09:01:09
1.官网首页: https://zookeeper.apache.org/ 2.下载截图,如图5-5,5-6,5-7所示 1.集群规划 在hadoop102、hadoop103和hadoop104三个节点上部署Zookeeper。 2.解压安装 (1)解压Zookeeper安装包到/opt/module/目录下 [atguigu@hadoop102 software]$ tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/ (2)同步/opt/module/zookeeper-3.4.10目录内容到hadoop103、hadoop104 [atguigu@hadoop102 module]$ xsync zookeeper-3.4.10/ 3.配置服务器编号 (1)在/opt/module/zookeeper-3.4.10/这个目录下创建zkData [atguigu@hadoop102 zookeeper-3.4.10]$ mkdir -p zkData (2)在/opt/module/zookeeper-3.4.10/zkData目录下创建一个myid的文件 [atguigu@hadoop102 zkData]$ touch myid 添加myid文件,注意一定要在linux里面创建,在notepad++里面很可能乱码 (3

hadoop的HA集群搭建

我怕爱的太早我们不能终老 提交于 2019-12-14 07:53:59
hadoop的HA集群搭建 环境 centos7,jdk1.8,zookeeper-3.5.5,hadoop-2.7.2 1.配置hosts:vi /etc/hosts 192.168.221.100 hadoop100 192.168.221.101 hadoop101 192.168.221.102 hadoop102 192.168.221.103 hadoop103 192.168.221.104 hadoop104 zookeeper的集群安装 1.进入zookeeper的conf目录下进行操作 cp zoo_sample.cfg zoo.cfg 2.zoo.cfg的配置 来源: CSDN 作者: smile-ls 链接: https://blog.csdn.net/qq_40198004/article/details/103470493

zookeeper如何实现分布式锁

半世苍凉 提交于 2019-12-14 05:54:11
1.利用zk的特性 利用zookeeper的节点特性实现独占锁,就是同级节点的唯一性,多个进程往zookeeper的指定节点中创建一个节点名称相同的节点,只有一个成功,另一个创建失败;创建失败的节点通过zookeeper的watcher机制来监听这个子节点的变化,一旦子节点发生删除事件,则再次触发进程区写锁 这种实现方式简单,但是会产生"惊群效应",如果存在许多客户端在等待获取锁,当成功获取到锁的节点释放锁后,所有处于等待的客户端都会被唤醒,这个时候 zookeeper 在短时间内发送大量子节点变更事件给所有待获取锁的客户端,然后实际情况是只会有一个客户端获得锁。如果在集群规模比较大的情况下,会对 zookeeper 服务器的性能产生比较的影响。 2.利用有序节点实现分布式锁 我们可以通过有序节点来实现分布式锁,每个客户端都往指定的节点下注册一个临时有序节点,越早创建的节点,节点的顺序编号就越小,那么我们可以判断子节点中最小的节点设置为获得锁。如果自己的节点不是所有子节点中最小的,意味着还没有获得锁。这个的实现和前面单节点实现的差异性在于,每个节点只需要监听比自己小的节点,当比自己小的节点删除以后,客户端会收到 watcher 事件,此时再次判断自己的节点是不是所有子节点中最小的,如果是则获得锁,否则就不断重复这个过程,这样就不会导致羊群效应,因为每个客户端只需要监控一个节点。 3

ZooKeeper集群搭建

这一生的挚爱 提交于 2019-12-14 04:28:58
安装zookeeper的注意事项: 安装前需要安装好jdk 检测集群时间是否同步 检测防火墙是否关闭 检测主机 ip映射有没有配置 下载地址: CDH版本: 下载地址 apache版本: 下载地址 1. 上传解压 上传路径: [root@node01 /] # cd /export/soft 解压: [root@node01 soft] # tar -zxvf zookeeper-3.4.5-cdh5.14.0.tar.gz -C /export/servers/ 2. 修改环境变量(注意: 所有的zookeeper都需要修改) [root@node01 /] # vim /etc/profile.d/zookeeper.sh 编辑以下内容: export ZOOKEEPER_HOME= / export / servers / zookeeper - 3 . 4 . 5 - cdh5 . 14 . 0 export PATH= $PATH : $ZOOKEEPER_HOME / bin 更新配置文件: [root@node01 /] # source /etc/profile 3. 修改zookeeper配置文件 [root@node01 /] # cd /export/servers/zookeeper-3.4.5-cdh5.14.0/conf [root@node01