zookeeper集群

[译]Zookeeper的优点与局限性

谁说我不能喝 提交于 2019-11-29 18:47:39
1.Zookeeper的优点与局限性 在学习了Zookeeper(后文都简称zk)的介绍和功能后,您已经很好地理解了zk。 现在,在这个zk教程中,我们将讨论zk的优点和局限性。 zk有几个功能对用户非常有益,但同时也存在一些局限性,所以在我们使用zk前,必须先了解一下。让我们分别学习一下zk的优点与局限性 2.zk的优点 下面列出了使用zk的各种优点 01.分布式协调过程简单 zk节点之间的协调过程非常简单 02.同步 zk高度同步,这意味着服务器进程之间既存在互斥又存在合作,同步有助于Apache HBase进行配置管理。 03.有序消息 zk跟踪一个数字,表示每个更新的顺序,保证消息有序 04.序列化 根据具体规则,zk对数据进行编码。 另外,它还可确保我们的应用程序始终如一地运行。 但是,在MapReduce中,我们使用此方法(序列化)来协调队列以执行正在运行的线程 05.速度 在读请求多的情况下,能以很快的速度运行 06.可扩展性 此外,可以通过部署更多机器来加强zk的性能 07.有序性有何优势? 众所周知,zk中的消息是有序的。 所以,为了实现更高级别的抽象,需要有序性。 这就是有序性对我们有利的方式 08.快 在读多的情况下,zk会非常快 09.可靠性 zk非常可靠,因为一旦zk更新了,更新后的数据会一直保持,直到被覆盖更新 10.原子性 zk只有两种情况

ZooKeeper架构原理你学会了吗?

烂漫一生 提交于 2019-11-29 18:27:09
Zookeeper是分布式一致性问题的工业解决方案,是Apache Hadoop下解决分布式一致性的一个组件,后被分离出来成为Apache的顶级项目。 工程来源:是雅虎公司内部项目,据说雅虎内部很多项目都是以动物命名,这个动物管理员的名字起的很是形象。 被开源出来后得到开源社区的快速推进,服务端Java语言实现,棒,git有3000+的star: https://github.com/apache/zookeeper zookeeper集群结构 集群的角色,比较典型的是Master/Slave(主备模式),zk中的概念跟这个不一样,包含Leader、Follower、Observer三个角色,leader提供读和写的能力,follower只对外提供读的能力。 会话(session) 客户端跟服务端交互,是先与服务端建立一个TCP长连接,会话开始,通过心跳检测与服务端保持会话有效,向服务端发送请求和接收响应。 zk将所有的数据都加载在内存一份,同时有事务日志文件(持久化文件),服务端会定时dump快照数据,重启机器的时候会根据快照和事务日志恢复内存数据库的数据,这跟redis的AOF和RDB概念类似。 zookeeper上的数据结构 zk上的数据的结构跟linux文件系统很像,是个树状结构 节点(node)上的信息字段 节点类型包括: 持久型节点 顺序持久型节点 临时节点

zookeeper伪集群安装

China☆狼群 提交于 2019-11-29 17:44:05
# 下载压缩包 wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5.tar.gz # 解压到指定目录 tar -xzvf apache-zookeeper-3.5.5.tar.gz -C $install_dir # 复制配置文件 cp $install_dir/conf/zoo_sample.cfg zk1.cfg cp $install_dir/conf/zoo_sample.cfg zk2.cfg cp $install_dir/conf/zoo_sample.cfg zk3.cfg # 修改配置文件 ## zk1.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=....../data/2181 dataLogDir=....../log/2181 clientPort=2181 #maxClientCnxns=60 #autopurge.purgeInterval=1 server.1=127.0.0.1:2181:3881 server.2=127.0.0.1:2182:3882 server.3=127.0.0.1:2183:3883 ## zk2.cfg tickTime=2000

搭建Tomcat8+ solr-5.5.1+zookeeper3.4.6集群

两盒软妹~` 提交于 2019-11-29 17:20:17
1、软件环境配置 环境: Windows 7 apache-tomcat-8.0.35下载地址: http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/ Zookeepr v3.4.6 下载地址: http://apache.fayea.com/zookeeper/ solr-5.5.1 下载地址: http://mirrors.cnnic.cn/apache/lucene/solr/ JDK1.7 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 2、部署过程 2.1 部署好单机版Tomcat7 +Solr5.5.1 第一步:在E盘根目录下建立solrcloud目录。并把apache-tomcat-8.0.35-windows-x64.zip解压到solrcloud目录下,复制apache-tomcat-8.0.35并重命名为tomcat8-1。把solr-5.5.1.zip解压,并把solr-5.5.1\example\example-DIH\solr目录下的 solr文件夹 和 solr.xml 复制保存到solr_home_1\home 目录。如下图: 第一步:把apache-tomcat-8.0.35

分布式服务协调员zookeeper - 应用场景和监控

两盒软妹~` 提交于 2019-11-29 17:16:18
https://www.cnblogs.com/bangerlee/p/4427331.html zookeeper在分布式系统中作为协调员的角色,可应用于Leader选举、分布式锁、配置管理等服务的实现。以下我们从zookeeper提供的API、应用场景和监控三方面学习和了解zookeeper(以下简称ZK)。 ZK API ZK以Unix文件系统树结构的形式管理存储的数据,图示如下: 其中每个树节点被称为znode,每个znode类似一个文件,包含文件元信息(meta data)和数据。 以下我们用server表示ZK服务的提供方,client表示ZK服务的使用方,当client连接ZK时,相应创建session会话信息。 有两种类型的znode: Regular: 该类型znode只能由client端显式创建或删除 Ephemeral: client端可创建或删除该类型znode;当session终止时,ZK亦会删除该类型znode znode创建时还可以被打上sequential标志,被打上该标志的znode,将自行加上自增的数字后缀 ZK提供了以下API,供client操作znode和znode中存储的数据: create(path, data, flags):创建路径为path的znode,在其中存储data[]数据,flags可设置为Regular或Ephemeral

搭建zookeeper集群_其中一个报Mode: standalone,另外两个分别是leader和follower

南笙酒味 提交于 2019-11-29 16:26:54
用3个zookeeper搭建一个zookeeper集群,首先配置好一个zookeeper1,其余两个都是按照zookeeper1复制过来,然后稍微修改 运行集群成功,查看zookeeper状态 可以看出,zookeeper2是从节点,zookeeper3是主节点,但是zookeeper1是单机模式状态 因为都是由1复制过去的,联想到在修改zoo.cfg时,其他节点都修改了端口号,但是考虑zookeeper1是第一个节点,所以就没有修改1的默认端口号 然后想到我原来用dubbo分布式框架的时候用到了zookeeper,端口号就是默认的2181并没有修改,所以可能导致这次搭建zookeeper集群时, 2181端口号被占用 ,集群搭建失败。 修改了zookeeper1端口号后,再次启动,集群搭建成功! (看到有人也出现了同样的错误,所以写出来分享给大家,skr~) 来源: https://www.cnblogs.com/sunchunmei/p/11522440.html

ubuntu18.04.2 hadoop3.1.2+zookeeper3.5.5高可用完全分布式集群搭建

[亡魂溺海] 提交于 2019-11-29 13:52:34
ubuntu18.04.2 hadoop3.1.2+zookeeper3.5.5高可用完全分布式集群搭建 集群规划: hostname NameNode DataNode JournalNode ResourceManager Zookeeper node01 √ √ √ node02 √ √ node03 √ √ √ √ node04 √ √ √ node05 √ √ √ 准备工作: 首先克隆5台ubuntu虚拟机 vim /etc/netplan/01-network-manager-all.yaml修改网络配置 我的5台网络配置如下: (ps: 由于这次是家里台式, 所以网关和之前笔记本搭的那次不一样) # Let NetworkManager manage all devices on this system # node01 network: version: 2 renderer: NetworkManager ethernets: ens33: dhcp4: no dhcp6: no addresses: [192.168.180.130/24] gateway4: 192.168.180.2 nameservers: addresses: [114.114.114.114, 8.8.8.8] # Let NetworkManager manage all

大数据系列之协同服务Zookeeper知识整理(二)Zookeeper上的数据操作,使用JAVA API来访问Zookeeper

白昼怎懂夜的黑 提交于 2019-11-29 12:22:29
1.Zookeeper上的数据操作 上一篇中我们介绍了zk是什么,以及zk的工作流程。既然zk是协调服务的,那必然会存储一些节点的信息,比附说Hadoop高可用集群HA的活跃NameNode信息,活跃ResourceManager信息(后面会介绍配置HA),Kafka的消息对了等等一些分布式节点信息,那这些基本信息是存储在zk哪里的,以及格式是什么样子? 启动zk的客户端与服务器 $>bin/zkServer.sh start $>zkCli.sh -server s10:2181 //进入zk命令行 我们在客户端使用help来查看一下帮助,看看zk有哪些命令 $zk]help //查看帮助 我们看到有一个create命令,这个就是用来创建数据的,根据提供的格式,我们可以看到格式是create path data,说明了zk在创建数据的时候是创建了一个 目录,目录上有数据啊,这点特别重要,这就是zk上的数据格式。zk上存放的数据格式是:目录 数据。也就是创建的每一个目录都有值,我们试着创建一下: 我们看到最后一个创建的 目录 是 /a/a1,但在创建之前目录/a必须存在,只能先创建父节点,再创建子节点,并且每次在创建的时候必须给予值,否则不会创建成功。创建完成之后我们ls /查看一下 不给值,创建不成功 看到都是一层层的 目录 使用 get 目录 来获得这个 目录的值 注意

zookeeper在centerOS7上集群,not route host解决方案

被刻印的时光 ゝ 提交于 2019-11-29 10:00:20
今天,在做zookeeper集群的时候,遇到not route host。机器是3台centerOS7, 知识:centerOS7默认以firewalld为其默认防火墙,所以跟iptable没关系。 接下来主要关闭 firewalld防火墙。 1.停止firewalld服务 systemctl stop firewalld 2.关闭firewaller服务 systemctl disable firewalld 会出现下列删除的语句 rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service' rm '/etc/systemd/system/basic.target.wants/firewalld.service' 3.编辑 /etc/sysconfig/selinux 文件 #SELINUX=enforcing SELINUX=disabled //设置其SELINUX=disabled 4.设置setenforce 0 [root@#localhost bin]# setenforce 0 这样就关闭了firewalld防火墙,可以按照正常流程开启zookeeper集群 来源: oschina 链接: https://my.oschina.net/u/1760714/blog/645760

某某旅游网链路监控探索实践二 初步试验与先行探雷篇

二次信任 提交于 2019-11-29 09:40:17
  原创文章,转载请注明出处。由于本人水平有限,文中错漏之处在所难免,希望大家多多批评指正。本文的内容过多,我们分成四篇聊,此为第二篇。   通过前面的分析与对比,我们最终选择了SkyWalking(下文简称SW)来做链路监控。考虑到SW是开源的系统,从以往的经历来看,开源的并且达到了系统级别的,一般都是有雷的,不注意的话偷偷爆个雷,所有关联的系统可能都会受到影响,严重的时候会让你很后悔使用了这个系统。而如果使用的是分布式追踪系统的话,在暴雷时会更加的严重,因为它不是独立部署的,是要集成到每一个系统实例的容器中,出问题的时候会直接牵连到容器内的其他服务。所以本着小心求证的原则,在正式上线使用之前,我们先在测试环境简单部署一套SW,初步尝试下系统接入,既有助于对数据体量、集群配置和工作人力的预估,也可以探探雷,提前发现问题,实际验证下是否适合我们,方便我们后续工作的风险把控。整个部署过程我们使用MacOS Mojave操作系统进行演示,可能与Linux会存在细微差别。 先说说背景 机器:因为资源紧张,审批从严,只拿到了1台虚拟机。 硬件[虚拟机]:4C/8GB/50GB[HDD]/100Mbps[LAN] 软件[64-Bit]:CentOS[7.4]/JDK[1.8.0_91]/Docker[18.09.7]/Docker Compose[1.18.0] CD工具:公司自研的系统