分布式技术原理与算法解析-学习笔记(三)分布式计算技术

MR(MapReduce)

分而治之计算模式

定义

将一个复杂的、难以解决的大问题,分割成一些规模较小的,可以比较简单的或者可以直接求解的子问题,这些子问题之间相互独立且与原问题形式相同,递归的求解这些子问题,然后将子问题解合并到原问题的解

特点

  • 问题规模比较大
  • 问题可以分解为几个规模比较小的、简单的同类型问题进行求解
  • 子问题之间相互独立
  • 子问题的解可以合并得到原问题的解
    核心步骤:1、分解原问题 2、 求解子问题 3、合并解

MR计算模型

抽象模型

在这里插入图片描述

MapReduce 分为两个阶段Map Reduce

  • Map 把复杂的任务分解为若干个“简单的任务”执行
  • Reduce 对Map阶段的结果汇总

处理流程

在这里插入图片描述

特点

  • 可以大规模扩展,适用于大型计算机集群
  • 拆分后的任务,可以跨多个计算机去执行,且各个小任务之间不会相互通信

Stream

流数据:持续快速产生,具有时效性的数据

流计算:实时获取来自不同数据源的海量数据,进行实时分析处理,获得有价值的信
息。

Stream 工作原理

一般包括三个步骤

  • 提交流式计算作业
  • 加载流式数据进行流计算
  • 持续输出计算结果
    在这里插入图片描述

Storm

Storm 是一个分布式的、容错的实时计算系统,可以持续进行实时数据流处理,
也可以用于分布式 RPC

Storm 集群

  • Master Node
    • Nimbus 负责为集群分发代码,为工作节点分配任务以及进行故障监控
    • 一个 Storm 集群在工作过程中,只有一个Nimbus 进程工作
  • Worker Node
    • Supervisor 负责监听分配给它所在的机器上的工作,负责接收 Nimbus 分配的任务,并根据需要启动和停止工作进程,其中每个工作进程都执行一个子任务
    • Spout:一种工作节点,接受数据源
    • Bolt: 一种工作节点,负责处理输入的数据流
  • 二者通过ZooKeeper 集群加强可靠性
    在这里插入图片描述
    Spout & Bolt 拓扑(有向五环图)
    在这里插入图片描述

Actor 计算模型

Actor

Actor 类似于一个“黑盒”对象,封装了自己的状态和行为,使得其他 Actor 无法
直接观察到它的状态,调用它的行为

Actor 模型

代表一种分布式并行计算模型。这种模型有自
己的一套规则,规定了 Actor 的内部计算逻辑,以及多个 Actor 之间的通信规则

计算模式

在这里插入图片描述

  • 状态: Actor组件本身的消息
  • 行为: Actor的计算处理逻辑
  • 消息: Actor的消息以邮件形式在多个Actor之间通信传递,每个Actor有自己的一个邮箱,由于接受来至其他Actor的消息

Actor工作原理

在这里插入图片描述

关键特征

  • 实现了跟高级的抽象
  • 非阻塞性
  • 无需使用锁
  • 并发度高
  • 易扩展

不足

  • 代码重用性小
  • 系统开销大
  • 实现复杂
  • 不适用于对消息顺序有严格要求的系统

模型应用

  • Erlang/OTP: Erlang 是一种通用的、面向并发的编程语言,使用 Erlang 编写分布式应
    用比较简单,而 OTP 就是 Erlang 技术栈中的标准库
  • **Akka(Java Scale):**Akka 是一个为 Java 和 Scala 构建高度并发、分布式和弹性的消息驱动应用程序
    的工具包
  • Quasar(Java ): 开源的JVM库,极度简化了高度并发软件的创建

流水线

流水线计算模式

计算机中的流水线技术

是一种将每条指令拆分为多个步骤,多条指令的不同步骤重叠操作,从而实现几条指令并行处理的技术
在这里插入图片描述

流水线计算模式

将一个大任务才分为多个步骤执行,不同的步骤可以采用不同的进程执行

流水线计算模型

TensorFlow

【 输入】流水线

步骤
  • 提取
  • 转换
  • 加载
    在这里插入图片描述
原理

当 CPU 对第 N 个样本的数据完成预处理之后,会将预处理后的数据发送给GPU/TPU,
然后 CPU 继续对第 N+1 个样本的数据进行预处理,同时 GPU/TPU 对第 N个样本数据进行模型训练

优势
  • 提高CPU、GPU/TPU的利用率
  • 加速训练过程

机器学习流水线

步骤

  • 数据输入
  • 数据转换
  • 数据提取
  • 数据训练
  • 数据验证

HTTP 流水线传输

计算机图形学中的图流水线

指令流水线

流水线计算和流计算的区别

  1. 流水线计算主要强调一个任务的拆分后并行执行,可以重复执行,流计算更强调实时性、不可重复性
  2. 流水线计算主要关注最终结果,不太关注中间结果,流计算则关注持续输出结果
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值