分布式的设计思想

news2025/1/13 17:40:05

一、分布式设计基础

传统架构问题

① 单机资源不足

  • 存储:3台机器,每台机器都有2T的硬盘空间,但是现在有1个3T的文件要存储
  • 计算:3台机器,每台机器都有8核CPU和8GB内存,但是现在有1个程序需要12核CPU和24GB内存

② 单机性能较差

  • 存储:10个1GB大小的文件,共10GB,要存储写入一台机器,1台机器的磁盘最多500MB/s,需要20s以上
  • 计算:10个程序需要运行,每个程序需要8核8GB资源,1台机器有10核10GB,只能挨个运行

分布式思想

核心:分而治之

  • 分:将一个大的任务拆分成多个小的任务,每台机器处理一个小的任务,并行处理
  • 合:将多个小任务的结果最终再合并生成最终的结果进行返回

用于解决传统架构问题

  • 存储:将3T的文件拆分成若干个小文件,例如每500M一个小文件,将这些小文件存储在不同的机器上
  • 计算:将这个程序拆分成若干个小程序,每个小程序只需要3核6G,将这些小程序运行在不同的机器上

分布式软件架构

分布式:一般由多个提供相同或者不同服务的机器共同协作,称为分布式系统或者分布式服务,强调合作关系

普通分布式主从架构

  • 主节点:管理节点:管理所有的从节点,管理所有任务的分配,对外接受用户的请求
  • 从节点:工作节点:一般一个从节点负责一台机器,利用一台机器的资源来完成主节点分配的小任务

举例:

HDFS:从逻辑上将多台机器的磁盘合并为一个整体

  • NameNode(主节点):管理节点:管理从节点,管理元数据,接客
  • DataNode(从节点):存储节点:负责实现NameNode分配的任务的数据块的存储

YARN:从逻辑上将多台机器的内存和CPU合并为一个整体

  • ResourceManager(主节点):管理节点,负责资源管理和任务调度,接客
  • NodeManager(从节点):计算节点,负责利用自己节点的CPU和内存来完成RM分配的运行计算的任务


二、分布式计算设计

分布式计算本质

  • 将一个大的计算任务拆分成多个小的计算任务,由多台机器并行执行所有小任务
  • 最终将每个小任务的结果进行合并得到最终结果

组成:分布式程序+分布式资源

分布式程序:一个多进程的程序,程序运行时可以拆分成多个进程来运行【MapReduce:提供一套API】

分布式资源:一个多机器的集群,可以将多台机器的硬件资源从逻辑上合并为一个整体【YARN:分布式资源】


目标:处理数据

处理流程

① 读取数据:Input

  • 读取数据,按照一定的规则将数据划分成多份,一般称为数据分片或者数据分区
    • MR规则:按照数据文件是否大于128M的1.1倍来拆分
    • 大于:按照128M来分
    • 小于:整体作为一个分片
    • 举个栗子
      • file1:140M => Block1-128M,Block2-12M => Split1
      • file2:145M => Block1-128M, Block2-17M => Split1-Block1, Split2-Block2
  • 将每个分区的数据读取机器的内存中,不同分区的数据放在不同的机器内存中

② 处理数据:Process

  • 根据划分规则,每个分区的数据对应一个Task计算任务来计算
    • MR规则:每个分片就启动一个MapTask来进行处理
    • 三个部分:Map、Shuffle、Reduce
  • 每个Task计算任务可以运行在不同的机器上,使用多台机器的资源并行执行

③ 保存结果:Output

  • 最后使用Task将前面每个Task任务计算的结果进行合并,输出保存

举例说明

需求:计算指定范围内的求和,假如数据量非常大。这里拿1~9举例

step1-Input:将1 ~ 9 的9个数字划分为三份【具体根据划分规则来决定】

  • split1:1 2 3:数据在Node1上
  • split2:4 5 6:数据在Node2上
  • split3:7 8 9:数据在Node3上

step2-Process:启动多个Task分别对每个Split进行求和

  • Task1:处理Split1:1 + 2 + 3 = 6:Node1
  • Task2:处理Split2:4 + 5 + 6 = 15:Node2
  • Task3:处理Split3:7 + 8 + 9 = 24:Node3

step3:将上面每个Task的结果进行合并

  • Task4:将Task1 ~ Task3的结果进行合并:6 + 15 + 24 = 45
  • 输出结果

以Hadoop为例,概念对比

  • MapReduce程序有两种
  • 三个阶段:Input、Map、Output【part-m-00000】
  • 五个阶段:Input、Map【分】、Shuffle【分组】、Reduce【合】、Output【part-r-00000】
栗子Hadoop
1 ~ 9理解为HDFS中的一个文件
Split1,Split2,Split3理解为这个文件被分成了三个Block块
Task1,Task2,Task3理解为三个Map Task进程,分别运行在三台NodeManager上
Task4理解为一个Reduce Task进程,将三个MapTask的结果做最终聚合
Node1,Node2,Node3作为DataNode和NodeManager的节点

在这里插入图片描述

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

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

相关文章

启明智显分享| Sigmastar SSD212 SPI+RGB点屏示例(2.1寸 480*480圆屏,可应用于旋钮)

SSD20X 点SPIRGB屏和SSD212 类似,区别在于对应文件名不同、SSD20X没有config.ini文件。 SSD20X SPI初始化文件:vi boot/common/cmd_customer_init.c SSD20X由于没有config.ini 可以用jpeg2disp 中.h 屏参头文件的方式实现显示logo。 这里以SSD212 点屏为…

Java——AVL树

平衡二叉树 在之前的blog中讲到,平衡二叉树是一棵树,任意一个节点的左树的所有节点都小于这个节点,右树的所有节点都大于这个节点 因此,可以利用这个性质来中序遍历,就可以得到一个有序的序列,而如果我们要…

谷歌地图商家抓取工具 G-Business Extractor 7.5

G 业务提取器 | 谷歌地图抓取工具 G-Business Extractor是一款功能强大的工具,可帮助您从 Google 地图中寻找商机。它是最好的Google Maps Scraper工具,能够从最重要的企业目录中提取数据。 Google 地图是一个来源,您可以在其中找到按类别和位…

“美亚杯”第三届中国电子数据取证大赛答案解析(团体赛)

Questions Gary被逮捕后,其计算机被没收并送至计算机取证实验室。经调查后,执法机关再逮捕一名疑犯Eric,并检取其家中计算机(window 8), 并而根据其家中计算机纪录, 执法机关再于其他地方取得一台与案有关的服务器,而该服务器内含四个硬盘。该服务器是运…

跨端开发浪潮中的变与不变

自 90 年代初开启 PC 时代以来,随着移动网络的快速普及,在 2010 年左右,进入移动时代、IOT 时代,各种移动互联设备不断涌现,除了最常见的 PC、Pad、智能手机外,它还可能是小小的一块智能手表,也…

NKOJ P9492 【USACO】视频共享

题目分析 这道题其实最容易想到的方法是离线枚举,但是其时间复杂度为,很明显会超时(这题数据连离线化都救不了) 那该如何办? 并查集;因为他说有一个推荐列表,而这个推荐列表中i号视频推荐了j号视频&#…

SpringSecurity+OAuth2.0+JWT实现单点登录应用

SpringSecurityOAuth2.0JWT实现单点登录应用 gitee项目练习地址:https://gitee.com/xzq25_com/springsecurity.oauth2 OAuth2.0单点登录实践一、搭建OAuth授权服务器,采用授权码模式JWT令牌二、创建服务client:SSOA、SSOB 并进行测试一、搭建…

【云计算与大数据技术】大数据系统总体架构概述(Hadoop+MapReduce )

一、总体架构设计原则 企业级大数据应用框架需要满足业务的需求,一是要求能够满足基于数据容量大,数据类型多,数据流通快的大数据基本处理需求,能够支持大数据的采集,存储,处理和分析,二是要能…

openGauss数据库的使用

目录前言1. 启动/停止/重启数据库(1)极简版启动/停止/重启命令(2)企业版启动/停止/重启命令2. 登录数据库(1)登录数据库时的基本连接参数(2)登录数据库时的常用连接参数(…

如何使用轻量应用服务器搭建高颜值的YesPlayMusic网易云播放器

本文介绍了如何使用腾讯云的Lighthouse轻量应用服务器来搭建一个高颜值的第三方网易云播放器。 ​ 项目简介 本文使用的是YesPlayMusic项目,这是一款高颜值的第三方网易云播放器,它完全可以作为网易云官方应用的替代品。而且还拥有一些网易云官方应用没…

react-dnd 拖拽能力教程

前言 近几年来,低代码、零代码的热度在国内逐年递增。“复杂度同力一样不会消失,也不会凭空产生,它总是从一个物体转移到另一个物体或一种形式转为另一种形式”。用户在使用低零代码构建应用程序时,这些能力只是被平台研发人员提…

SQL SERVER 2019卸载和安装

卸载过程删除SQL Server2019包括sql server这个数据库和它的管理工具SQLServer Management Studio以及他们的注册表信息和安装的目录,以上,最重要的是一定要有耐心,一步一步慢慢来。 首先打开一定要把SQL的服务都关掉,这个很重要…

压缩包文件如何设置加密、删除加密?

压缩包是将文件压缩成RAR、ZIP格式文件,将文件压缩成压缩包之后,就更方便转发以及保存,而且压缩包文件可以进行加密,这样也能够起到对文件的保护作用,今天和大家分享如何对压缩包进行加密以及如何删除压缩包密码。 压…

战略,就没一本好书

战略这个词被工商业界引爆,都是1965年的事。想来到现在已经快60年了。但是实话说,战略这么重要的事,其实没几本好书,也就是说,这个领域,实在没什么有效的研究成果。(1)起点1965年是个…

Vue 进阶二 | 系统性学习 | 无知的我费曼笔记

无知的我正在复盘Vue 该笔记特点是 重新整理了涉及资料的一些语言描述、排版而使用了自己的描述对一些地方做了补充说明。比如解释专有名词、类比说明、对比说明、注意事项提升了总结归纳性。尽可能在每个知识点上都使用一句话 || 关键词概括更注重在实际上怎么应用提出并回答…

数据可视化之卡塔尔世界杯,世界杯8强全部出炉,你看好那支队伍?

2022年下半年可算是集结了众多国际赛事,前有csgo major,英雄联盟总决赛,后有斯诺克英锦赛。当然这些赛事里面最万众瞩目的就是4年一度的卡塔尔世界杯了。本届世界杯开赛前最大的看点就是世界杯的花费,卡塔尔2022年世界杯花费2290亿…

他让我看重采样

周末邓总让我帮忙看下重采样的代码,然后我就用上了自己的神器。我的神器就是Google之后总结了下代码,完整的代码可以往下看,我们平时也会用到重采样,通道转换、交织和非交织的相互转换、给音频重新map等等。这些都是做音频需要搞的…

(红帽系统)redhat7.2 相关服务器配置

远程连接服务器配置 简介 使用SSH可以在本地主机和远程服务器之间进行加密的传输数据,实现数据的安全传输。而OpenSSH是SSH协议的免费开源实现,它采用安全加密的网络连接工具代替了telnet、ftp等 实现步骤 第一步 进入红帽系统 第二步 检查安装系统时…

需求处理的流程及问题挑战

本文主要讲需求的一般处理流程,以及可能存在的问题及挑战。 一、需求处理流程: 1、需求的生命周期: 起点是提需求,终点是拒绝或接受需求。每个人希望自己的需求能被接受或满足,但资源总是有限的。每个需求从产生到实…

SRM系统的国内品牌前五名是哪几家,大概价位是多少?

SRM系统的国内品牌前五名是哪几家,大概价位是多少?SRM系统是采购数字化转型过程中的产物,SRM系统与ERP与SCM系统打通后,能够破除信息壁垒,增加采购部门与业务部门的沟通效率,从而实现企业人、物、财成本的降…