Zookeeper的基本概念以及安装

Zookeeper简介

        Zookeeper是一个分布式的(多台机器同时干一件事情),开源的分布式应用程序协调服务,是Google公司Chubby产品,是Hadoop和Base重要的组件,.它是一个分布式应用程序提供一致性的服务的软件,提供的功能包括:配置服务,域名服务,分布式同步,组服务等
        Zookeeper目标封装了大量的负责关键的技术(服务),将简单的接口(API)暴露,高效的使用Aookeeper,稳定性非常高
         在大数据生态圈,Zookeeper(冬雨管理员)是一个非常重要的基础技术,  Hadoop(大象)、Hive(蜜蜂)、Pig(猪)

Zookeeper工作机制

        Zookeeper从设计模式的角度:是一个基于观察者设计模式(一个人干活,有人在盯着他干活),一个分布式服务管理框架
        负责存储和管理数据:

  •                 接收观察者进行注册
  •                 Zookeeper可以将负责注册好的服务通知给客户端
  •                从服务器集群中进行主节点和从节点的管理模式(Master,Salve)

        Zookeeper =文件系统+通知机制

  •                 商家营业务需要入驻
  •                 获取到当前正在营业的所有饭店和餐馆列表
  •                 服务节点下线
  •                 服务节点下线的时间通知
  •                 重新去获取最新的服务列表,并注册监听

Zookeeper特点

        分布式和集群区别?
                在事件的角度来看无论分布式或者是集群,都是很多服务在一起工作,分布式的每台服务器的工作不同,但是结果一致,集群的工作一致,做的是同一件事物
        Zookeeper特点:
          1.是一个leader和多个follower来组成的集群(例如:在狮群中,一头雄狮和N头母狮)。
          2.集群中只要有半数以上的节点存活, Zookeeper就能正常工作(5台服务器挂掉2台,没问题; 4台服务器挂掉2台,就停止)。
          3.全局数据一致性,每台服务器都保存一份相同的数据副本,无论Client连接哪台Server,数据都是一致的。
          4.数据更新原子性,一次数据要么成功,要么失败(不成功便成仁)。
          5.实时性,在一定时间范围内,Client能读取到最新数据。
          6.更新的请求按照顺序执行,会按照发送过来的顺序,逐一执行(发来123 ,就执行123 ,而不是321或者别的)。

Zookeeper数据结构

        1.Zookeeper数据模型类型与Linux操作系统的文件结构,整体上可以看作是一个倒挂着的树。每一 个节点称之为是一个ZookeeperNode。
        2.每一个ZNode是用来保存数据,默认情况下每一个节点的保存数据大小为1MB(元数据)
        3.Zookeeper元数据:表示用来描述数据的数据。又称之为中介数据、中继数据,data about data。主要是用来描述数据的属性信息(这个数据文化件的:大小、创建实现、存放位置、历史访问记录、文件记录等)

Zookeeper应用场景

        提供服务服务:  
         统一命名服务,在分布式的环境下,通常可以对应用程序或者服务器通过一个统一的命名来识别进行访问
        统一配置管理(在统一集群管理基础上实现),在分布式的环境下,配置文件做同步更新操作,可以通过监听来完成
        Zookeeper管理配置文件:将配置文件写入到Zookeeper的某个节点上(需要有一台服务器来维护这个配置文件),告知客户端去监听这一台服务器上的这个文件(/Config), 一旦该节点上的这个文件中的数据发生了改变,Zookeeper就可以通过通知来告诉所有的客户端,客户端即完成了同步(数据同步)
        服务节点动态上下线,客户端能够实时的获取服务器的状态,服务器上下线的状态。服务器实现的运行状态可以被Zookeeper获取(心跳机制)
        软负载均衡,Zookeeper会记录每一台服务器访问的次数,让访问最少的服务器去处理最新的请求,请求被均匀分发到集群中每一台服务器上(雨露均沾的效果)

在Linux虚拟机中安装Zookeeper

 

        1.下载Zookeeper的安装包:    Index of /dist/zookeeper

 

        2.通过xftp软件将压缩包上传到linux中的opt目录下

        3.解压该压缩包

tar -xzvf apache-zookeeper-3.8.0-bin.tar.gz

        4.将该压缩包重命名为zookeeper

mv apache-zookeeper-3.8.0-bin zookeeper

         5.进入到zookeeper的目录下,创建zkData和zkLog两个目录

cd /opt/zookeeper
mkdir zkData
mkdir zkLog

        6.修改配置文件,进入/opt/zookeeper/conf这个路径,复制一份zoo_sample.cfg文件并命名为zoo.cfg。

cd /opt/zookeeper/conf
cp zoo_sample.cfg zoo.cfg

        7.编辑zoo.cfg的文件

vi zoo.cfg

        按i或a进入编辑命令,修改配置文件,修改完后按esc,在英文状态下输入 :wq 保存退出

dataDir=/opt/zookeeper/zkData
dataLogDir=/opt/zookeeper/zkLog

        8.查看刚刚的配置

.

cat -n zoo.cfg

        9.进入到zookeeper的bin目录下

cd /opt/zookeeper/bin

        启动zookeeper

./zkServer.sh start

     

        查看zookeeper的状态

./zkServer.sh status

         10.启动zookeeper客户端

./zkCli.sh

        退出zookeeper客户端

quit

        11.终止zookeeper的服务

./zkServer.sh stop

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/6542.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud使用log4j日志框架教程

前言 上一篇文章我们介绍了《SpringCloud使用logback日志框架教程》,本文我们再来介绍下log4j2。 Log4j2是一款流行的Java日志框架,它提供了高度可配置的日志记录功能,支持多种不同的输出格式和目标,比如文件、控制台、数据库等…

多肽试剂1801415-23-5,Satoreotide,UNII-S58172SSTS,应用在多肽标记及修饰上

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ Satoreotide,UNII-S58172SSTS Product structure Product specifications 1.CAS No:1801415-23-5 2.Molecular formula:C58H72ClN15O14S2 3.Molecular weight:1302.9 4.Packa…

手机word文档怎么转换成pdf?分享两种方法

手机word文档怎么转换成pdf?在如今信息化的时代,电子文档已经成为人们日常办公不可或缺的一部分。随着科技的不断进步,电子文档的格式也在不断发展。PDF作为电子文档的一种重要格式,被广泛使用。那么,如何将手机上的Wo…

一)Stable Diffusion使用教程:安装

目前AI绘画最火的当属Midjorney和Stable Diffusion,但是由于Midjourney没有开源,因此我们主要分享下Stable Diffusion,后面有望补上Midjourney教程。 本节主要讲解Stable Diffusion(以下简述SD)的下载和安装。 1&…

MyBatis学习笔记——2

MyBatis学习笔记——2 一、MyBatis核心配置文件详解1.1、environment(环境)1.2、transactionManager(事务管理器)1.3、dataSource(数据源)1.4、properties1.5、mapper 二、在WEB中应用MyBatis(使…

[SQL挖掘机] - GROUP BY语句

介绍: group by 是 sql 中用于对结果集进行分组的关键字。通过使用 group by,可以根据一个或多个列的值将结果集中的行分组,并对每个分组应用某种聚合函数(如 count、sum、avg 等)以生成汇总信息。这样可以方便地对数据进行分类、…

xml命名空间

xml命名空间 一个xml文档中可以包含多个元素和属性,在文档中使用多个DTD文件时,可能会碰到相同的元素,而这些名称相同的元素可能代表了完全不同的含义,为了防止命名冲突,W3C提供了一个推荐标准-XML命名空间 命名空间有…

题目:2099.找出和最大的长度为 k 的子序列

​​题目来源: leetcode题目,网址:2099. 找到和最大的长度为 K 的子序列 - 力扣(LeetCode) 解题思路: 首先新建一个 nums.length 维数据,每一维的长度为 2,然后将 nums 数组中元素放…

轮播图添加删除

轮播图页面和对话框搭建 页面简单布局 <template><div id"banner"><el-space direction"vertical" :size"20" style"width: 100%"><h1>轮播图管理</h1><div style"text-align: right"&g…

商城-学习整理-基础-分布式组件(三)

目录 一、前言二、Spring Cloud&Spring Cloud Alibaba1、Spring Cloud 与Spring Cloud Alibaba简介2、为什么使用Spring Cloud Alibaba3、版本选择4、项目中的依赖 三、Spring Cloud Alibaba-Nacos作为注册中心1、Nacos1&#xff09;、下载 nacos-server2&#xff09;、启动…

golang log标准库

不喜饶过 源码部分 type Logger struct {mu sync.Mutex // ensures atomic writes; protects the following fieldsprefix string // prefix on each line to identify the logger (but see Lmsgprefix)flag int // propertiesout io.Wri…

29-使用RocketMQ做削峰处理

1、初识RocketMQ 1.1、Apache 下载RocketMQ https://downloads.apache.org/rocketmq/ 1.2、RocketMQ官方网站 https://rocketmq.apache.org/zh/ 1.3、RocketMQ在GitHub文档 https://github.com/alibaba/spring-cloud-alibaba/wiki/RocketMQ 1.4、RocketMQ官方网站文档 …

ZGC垃圾收集器-JVM(十五)

上篇文章说了G1的特性&#xff0c;无分代&#xff0c;复制算法&#xff0c;大内存就可以用G1&#xff0c;可预测stw时间等特性。 G1垃圾收集分类-JVM&#xff08;十四&#xff09; ZGC收集器 -XX:UseZGC ZGC&#xff08;Z Garbage Collector&#xff09;是在jdk11新加入的低…

42. 接雨水

42.接雨水 这是一个简单的动态规划问题&#xff0c;虽然leetcode将它归结为困难。 但是我感觉它难度应该达不到&#xff0c;可能归结为中等比较合适0x1 题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨…

迁移学习的使用

network resnet34(pretrainedTrue) self.x nn.Sequential(*list(network.children())[4:5]) for name, layer in self.x.named_children(): layer[0].conv1nn.Conv2d(64, 128, kernel_size3, stride 2, padding 1, biasFalse) # 获取模型的参数字典network.conv1 nn.Conv2d(…

python flask 返回中文乱码

使用flask返回数据中带有中文的时候会显示成乱码(ascii)&#xff0c; 中文报文&#xff1a; ABAP中的三大财务报表是&#xff1a;* **资产负债表** * **收入证明** * **现金流量表**这些报表全面概述了公司的财务状况和业绩。* **资产负债表**显示公司在特定时间点的资产、负…

【Python数据分析】Python基础知识篇

&#x1f389;欢迎来到Python专栏~Python基础知识篇 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;Python学习专栏 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望大…

LeetCode[1508]子数组和排序后的区间和

难度&#xff1a;Medium 题目&#xff1a; 给你一个数组 nums &#xff0c;它包含 n 个正整数。你需要计算所有非空连续子数组的和&#xff0c;并将它们按升序排序&#xff0c;得到一个新的包含 n * (n 1) / 2 个数字的数组。 请你返回在新数组中下标为 left 到 right &#…

将请求参数数据推送至RabbitMQ队列中并且捕捉消息没有到达交换机的异常

1&#xff1a;自定义mq信息类&#xff08;我的交换这些信息都从nacos上直接取的&#xff0c;怎么从nacos取配置信息看上篇文章&#xff09;&#xff1a; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor;impo…

线上办公场景下数据与网络安全合规

新型冠状病毒肺炎疫情仍在持续&#xff0c;封城、封路、封村等管制措施已成为常态。为配合防控工作&#xff0c;政府倡导各企业尽量在线上开展业务&#xff0c;各行各业都面临着一个突如其来的微数字化转型。 线上办公/运营并不是把线下的活动转移到线上那么简单&#xff0c;事…