草庐IT

Lecture 3 Cognitive Computing with Cloud Computing(认知计算与云计算)

云隐·叶鸣 2023-04-12 原文

Lecture 3 Cognitive Computing with Cloud Computing(认知计算与云计算)

云计算的含义

什么是云:

  • 云指的是网络或互联网,存在于远程位置的东西。
  • 云可以通过公共网络或私人网络提供服务
  • 应用程序:电子邮件、网络会议、客户关系管理

什么是云计算

  • 通过网络建立、配置、定制、使用APP
  • 通过网络访问数据库,无需担心数据的维护和管理
  • 云计算与软硬件计算资源有关,提供在线数据存储

云计算的基本结构

图片引用自东北大学郭朝鹏老师课件(后同)

云计算的特点

  • 弹性和自动服务配置
    • ​ 弹性:用户对资源使用的调整
    • 自动服务配置:自适应的资源配置
  • 扩展性
    • 水平扩展:提高资源水平
    • 垂直扩展:提高资源量
  • 分布式计算

使用云进行认知计算

认知系统的需求

  • 闭环环境,支持不同软硬件
  • 从不同来源收集数据,用不同的特定方法处理数据
  • 高效利用数据源,运行算法
  • 分布式计算:改变软件管理和交付方式,是商业化认知计算的关键

基于资源分享的分布式计算

  • 资源分享方法:应用程序、计算服务、数据存储、网络、软件开发、部署类型和业务流程
  • 结合分布式计算整合成系列共享资源
  • 通过标准结构部署
  • 用计算引擎解决复杂计算、工程、商业问题
  • 没有必要购买高性能的系统,而只是在需要的时候使用云服务

云计算的常见模型

计算模型

模型特点
公有云(public cloud)多用户、隐私性和稳定性差
私有云(private cloud)独有,内部使用,安全性高
Community Cloud通常情况下为一个组织内部使用
Hybrid Cloud公有云+私有云,需要使用时申请对公有云进行独占

服务模型

模型特点
IaaSIaaS 是作为按需扩展服务的技术基础设施。
IaaS 用户可以私人访问基本资源,如物理机、虚拟机、虚拟存储等。
通常根据使用情况计费,是多租户虚拟化环境
可以与操作系统和应用程序支持的托管服务相结合。
PaaS为应用程序、开发和部署工具等提供了运行时环境。
PaaS 提供了所有需要的设施来支持完整的生命周期的建设和交付网络。
通常,应用程序的开发必须考虑到特定的平台
多租户环境。
高度可扩展的多层体系结构
SaaSSaaS 模型允许将软件应用程序作为对最终用户的服务。
SaaS 是一种软件交付方法,它提供许可的多租户远程软件及其功能访问
通常根据使用情况计费,是多租户环境,
高度可伸缩的体系结构

面向编程工具的认知计算

分布式处理

特点:在集群中分布式处理,每个节点独立处理数据

CAP理论

  • Consistency
  • Availability
  • Partition tolerance

一个系统之多只可以满足以上三点的任意两个,其中,通常情况下,最经常采用的是以下的两种:

  • Availability
  • Partition tolerance
  • 最终一致性(与Consistency存在一定的差异,是指一段时间后的一致)

特点

特点含义
容错性系统但出错后自动恢复;关注硬件与任务的故障
可靠性服务时间长;节点故障不造成数据丢失
高可用性除了硬件故障,系统均可访问;对性能有一定要求;终端用户的应用不会因为数据而出现停机
可扩展性垂直可扩展性:新的硬件可以被添加到节点上 水平可扩展性:新的节点可以被添加到云

Hadoop

HDFS:分布式文件系统

  • HDFS 是一种容错、可扩展、极易于扩展的分布式系统。
  • HDFS 是 Hadoop 应用程序的主要分布式存储器。
  • HDFS 为应用程序提供了使自己更接近数据的接口。
  • HDFS 被设计为“只工作”,但是工作知识有助于诊断和改进
HDFS的组成
  • NameNode: 是 HDFS 文件系统的核心,它维护和管理文件系统元数据。例如:文件由哪些块组成,这些块存储在哪些数据节点上。
  • DataNode: HDFS 存储实际数据的地方,通常有相当多的 DataNode。

HDFS的结构

HDFS文件的读取

HDFS文件的写入

MapReduce

MapReduce的作用

  • 自动并行化
  • 分配 I/O 调度
    • 负载平衡网络
    • 数据传输优化
  • 容错率:提供机器故障的处理
  • MapReduce 向外扩展,而不是升级,即使用大量的商用服务器,而不是一些高端的专用服务器

MapReduce的处理过程

  1. 读取了大量的数据
  2. 从每条记录中提取您关心的内容,即键值对
  3. 清洗和排序
  4. 减少:汇总、 迭代或转换(Reduce: aggregate, summarize, lter, or transform)
  5. 输出结果

MapReduce与传统的并行之间的区别

  • 传统的并行计算
    • 需要设计多线程等操作,不正确的使用会导致错误
    • 对硬件不容错
  • MapReduce:
    • 简化并行程序的执行,只需要创建、映射和减少功能

Yarn

与传统操作系统的区别

与传统的分布式操作系统的区别

  • 传统的分布式系统

  1. master和worker是物理节点
  2. worker用来处理不同task
  • YARN

  1. task tracker和job tracker是MapReduce节点
  2. job tracker调度task tracker
  3. task tracker决定有几个map,几个reduce
  4. 内存分配:外部设置+固定大小的slot model强制slot足够大的任务

YRAN的故障处理机制

1.存在一个内部的资源管理器

2.决定何时何地运行

3.采用队列组织调度的方法

4.应用程序被提交到队列中

5.采用两种调度程序

  • Fair Schedule:所有节点保持均衡
  • Capacity Schedule:谁空闲谁做

优点

  1. Scalability:可伸缩性,只跟踪应用程序,而不是所有任务
  2. Utilization:使用性,只分配所需的资源
  3. Multi-tenancy:在框架和用户之间共享资源,如物理资源——memory,CPU, disk,network

缺点

  1. 多个算法可以转换为多个Map与Reduce的组合,但表达能力有限,无法实现join、filter、flatMap、union、intersection
  2. 基于MapReduce,需要从磁盘读写
  3. 无状态机器,执行代价高,总是存在硬盘读写的问题
  4. 只能用Java,不支持其他语言
  5. 只可进行批处理,但有时候数据并不是数据块的形式,比如交互性数据、流数据

有关Lecture 3 Cognitive Computing with Cloud Computing(认知计算与云计算)的更多相关文章

随机推荐