Yarn与Zookeeper的介绍

Yarn--三大调度策略

    FIFO(先进先出):     目前几乎已经没有人使用了.
        类似于: 单行道.
        好处:
            每个计算任务能独享集群100%的资源.
        弊端:
            不能并行执行, 如果大任务过多, 会导致小任务执行时间过长.

    Capacity(容量调度): 我们用的Apache Hadoop(社区版Hadoop), Yarn的底层默认用的就是这种调度器.
        类似于: 多车道.
        好处:
            1. 可以当多任务, 并行执行, 提高计算效率.
            2. 可以借调资源.
        弊端:
            1. 每个计算任务不能独享集群100%的资源, 存在着资源闲置(浪费)的情况.
            2. 如果出现了资源借调的情况, 可能也会出现无法"及时"归还资源的情况.

    Fair(公平调度): FaceBook推出的, 后续要用的CDH(Cloudera公司提供的Hadoop, 商业版)的Yarn调度器就是这个.
        类似于: 潮汐车道.
        好处:
            1. 多任务可以并行执行, 提高计算效率.
            2. 如果只要1个任务, 则它可以共享集群100%的资源.
        弊端:
            每个任务获取集群的资源, 都是公平的, 均分的, 例如: 1个任务, 就占用 100%资源,
            2个任务, 各占50%的资源
            3个任务, 各占33.3333....%的资源
            .......
            如果小任务过多, 会导致大任务迟迟无法执行结束的问题. 

Zookeeper--简介

概述:
    它是一款非常好用的 大数据分布式协调服务组件, 主要是用来帮助我们管理大数据进群的, 例如: 主备切换, 选举机制, 全局数据一致性...
    吉祥物是: 1个拿着铁锹的小人.


本质:
    ZK本身也是1个小型的分布式文件存储系统, 采用ZNode节点的方式来存储数据, 底层是: 树形结构.  每个节点的大小不能超过: 1MB.
回顾: 树形结构特点:
    1. 有且只能有1个根节点.
    2. 每个节点都有若干个子节点及1个父节点(根节点除外)
    3. 没有子节点的节点称之为: 叶子节点.


Znode节点的分类:
    永久(无序)节点:   Persistent
        客户端的会话结束, 节点依旧存在.
    临时(无序)节点:   Ephemeral
        客户端的会话结束, 节点小时(会被自动删除).
    永久有序节点:
        Persistent + Sequential
        客户端的会话结束, 节点依旧存在, 会在节点名后边加10位数字, 升序递增. 0000000000, 0000000001...
    临时有序节点:
        Ephemeral + Sequential
        客户端的会话结束, 节点消失, 会在节点名后边加10位数字, 升序递增. 0000000000, 0000000001...
    细节:
        临时节点不能有子节点. 

Zookeeper--架构介绍

    Leader:     主节点
        1. 管理整个ZK集群, 负责: 全局数据一致性.
        2. 负责处理 数据事务操作(增, 删, 改)
        3. 负责转发 数据非事务操作(查) 给 Follower
    Follower:
        1. 实时和Leader同步, 保证: 全局数据一致性.
        2. 负责处理 数据非事务操作(查)
        3. 负责转发 数据事务操作(增, 删, 改) 给 Leader
        4. 有选举权.
    ObServer:
        除了没有选举权, 剩下的和 Follower一样.  大公司, 大规模集群, 才会考虑部署ObServer.

Zookeeper--Shell操作

常用Shell命令:
    help                                     -- 查看ZK支持的所有Shell命令
    create [-s] [-e] path data     -- Sequential(有序), Ephemeral(临时), 创建节点.
    delete path [version]           -- 删除节点, 只能删除(叶子节点)
    rmr path                              -- 删除节点及其字节
    set path data [version]        -- 修改节点的内容
    get path [watch]                  -- 查看节点内容
    ls path [watch]                    -- 查看节点简单信息
    ls2 path [watch]                  -- 查看节点详细信息
    history                                -- 查看历史命令
    redo 历史命令编号             -- 根据编号, 重新执行对应的 命令.

Zookeeper--数据模型

1. Znode兼具有文件 和 目录的功能, 既能存储数据, 也能有子级.
2. Znode操作具有原子性, 无论在哪台机器修改了节点值, 其它机器再查也是修改后的.
3. Znode存储数据有大小限制, 每个节点不超过1MB.
    细节: 我们用ZK不是用它存数据的功能, 而是管理大数据集群.
4. Znode节点必须通过 绝对路径的写法才可以获取, 即:  /aa

Zookeeper--特点

1. 全局数据一致性.
2. 可靠性.
3. 顺序性.  
4. 数据更新原子性.
5. 实时性.

Zookeeper--watch监听机制

1. 先注册, 后监听.
2. 当事件触发后, 会将触发结果告知 监听者.
3. 异步发送监听结果的.
4. 监听是一次性触发, 之后在触发响应的内容, 也不会给 监听者发送消息了.

Zookeeper--选举机制

    过半原则, 某个机器获取的票数超过集群总数的一半, 它就是Leader, 剩下的是Follower.
选举机制的方式:
    新集群: 参考myid值, 优先投票给myid值大的机器.
    旧集群: 参考(节点)最后一次更新的事务id, 优先投票给事务id大的节点(机器), 如果事务id一致, 则参考 myid值, 投票给myid值大的机器.

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

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

相关文章

找到矩阵中位于降序15%位置的值

MATLAB实现 clc clearvars; matrix randn(10, 10); % 一个示例矩阵 disp(matrix)value find_value_at_15_percent(matrix); disp([位于降序中15%位置的值为: , num2str(value)]);% 验证 xreshape(matrix,1,100); ysort(x,descend); y(1:16)function value_at_15_percent fi…

缓存(反向代理)服务器-varnish

varnish简介: varnish是一款高性能且开源的反向代理服务器和HTTP加速器,(其实就是带缓存的反向代理服务器)它可以把整个HTTP响应内容缓存到内存或文件中,从而提高web服务器器的响应速度。 与传统的squid相比&#xff0…

如何提高图片的分辨率?dpi修改工具推荐

在调整分辨率之前,我们需要了解什么是dpi分辨率,简单来说,分辨率是指图像中包含的像素数量,分辨率越高,图像就越清晰,常见的分辨率包括72dpi、96dpi和300dpi等,在打印照片或者一些考试平台对图片…

02-JDK新特性-泛型

泛型 什么是泛型 泛型是JDK5中引入的特性,它提供了编译时类型安全检测机制,该机制允许在编译是检测到非法的类型。 它的本质是参数化类型,也就是说操作的数据类型被指定为一个参数。 也就是将类型有原来的具体类型参数化,然后在…

【CVE复现计划】CVE-2023-27179

CVE-2023-27179 简介: GDidees CMS v3.9.1及更低版本被发现存在本地文件泄露漏洞,漏洞通过位于 /_admin/imgdownload.php 的 filename 参数进行利用。 影响版本: GDidees CMS v3.9.1及更低版本 POC: /_admin/imgdownload.php?filename/fla…

MATLAB 自定义中值滤波(54)

MATLAB 自定义中值滤波(54) 一、算法介绍二、算法实现1.原理2.代码一、算法介绍 中值滤波,是一种常见的点云平滑算法,改善原始点云的数据质量问题,MATLAB自带的工具似乎不太友好,这里提供自定义实现的点云中值滤波算法,具体效果如下所示: 中值滤波前: 中值滤波后:…

前端性能优化-Table渲染速度优化

教务系统-排课页面性能优化总结 一、前言 在公司教务系统中,排课页面慢的令人发指,在某些情况由于数据量大导致页面主进程卡死,遂组织进行一次排查优化,现记录一下 二、效果对比 以下数据均为UAT环境 Performence对比 更改前: 主进程渲染时间为 8s 教务系统-排课页面性…

MHA的实验部署

一、前期准备 准备四台虚拟机,一台主服务器,一台管理服务器,两台从服务器 在开始之前先要关闭所有服务器的防火墙,以免有一些麻烦 二、实际操作 2.1 配置主服务器 2.2 配置从服务器1和2 2.3 给主从服务器实现软链接 2.4 配置mysql…

TypseScript再学习之类型别名和接口(10)

先看类型别名:使用关键字 type 声明,注意有等于号额 // 类型别名 使用关键字 type 声明,注意有等于号额 type Cat {name: string; }; let huahua: Cat {name: "花花", };type和interface不同之处在于:interface 是可以自动合并类型的&#…

【单片机 5.3开关检测】

文章目录 前言一、5.3开关检测1.1没按键按下的1.2有按键按下的 二、改进1.改进 三、独立键盘3.1为什么要取反3.2 实用的按键 总结 前言 提示:这里可以添加本文要记录的大概内容: 课程需要: 提示:以下是本篇文章正文内容&#xf…

春暖助学 梦想启航

(通讯员:赵灿飞 图:杨美、孙红浪) 春风拂面暖阳斜,爱心助学谱华章。为弘扬中华民族传统美德,动员社会力量,传播社会爱心,缓解宁乡西部特殊家庭学子学业面临的实际困难&#xff…

CorePoolExecutor夺命连环问?看你可以接受几招?

一、前言 今天我在看why技术的时候,看到了这个。发现这个没有全部的八股回答?于是我就结合自己的经验,分享下八股 二、八股问答 2.1了解JDK Executors线程池吗? Executor就是一个线程池框架,在开发中如果需要创建线程可优先考…

JMeter自定义日志与日志分析

1 JMeter日志概览 JMeter与Java程序一样,会记录事件日志,日志文件保存在bin目录中,名称为jmeter.log。当然,我们也可以在面板中直接察看日志,点击右上角黄色标志物可以打开日志面板,再次点击收起。 可见&…

从入门到实战:vue3路由知识点

本人在B站上关于vue3的尚硅谷的课程,以下是整理一些笔记。 1.两个知识点 1.路由组件通常存放在pages 或 views文件夹,一般组件通常存放在components文件夹。 组件可以分为: 1. 一般组件:亲手写标签出来的 2. 路由组件&#…

非关系型数据库——Redis配置与优化

目录 一、关系型数据库和非关系型数据库 1.定义 1.1关系型数据库 1.2非关系型数据库 2.非关系型数据库产生的背景 3.关系型数据库和非关系型数据库区别 3.1适用性不同 3.2数据一致性要求不同 3.3数据模型不同 3.4数据查询语言不同 3.5数据存储方式不同 3.6扩展方式…

用Servlet实现一个简单的表白墙

1. 准备工作 创建项目,引入依赖...... 将静态页面放到项目中(放在webapp目录下): 当前,这个表白墙页面,已经可以输入内容,点击提交之后也能显示内容,后续后端要做的工作即: ①存档 用户点提交的时候,把刚才输入的内容通过网络传输给服务器,由服务器保存这个数据. ②读档 …

[中级]软考_软件设计_计算机组成与体系结构_04_寻址地址

寻址地址 概念指令的概念 寻址方式立即寻址方式直接寻址方式间接寻址方式寄存器寻址方式寄存器间接寻址方式往年真题 概念 指令的概念 一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如下: 操作码字段地址码字…

基于springboot实现企业客户管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现企业客户管理系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个企业客户管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述企…

鸿蒙HarmonyOS应用开发之Node-API支持的数据类型和接口

Node-API的数据类型 napi_status 是一个枚举数据类型,表示Node-API接口返回的状态信息。 每当调用一个Node-API函数,都会返回该值,表示操作成功与否的相关信息。 typedef enum {napi_ok,napi_invalid_arg,napi_object_expected,napi_stri…