网络计算模式复习(三)

云计算与网格计算比较

云计算和网格计算在目标、结构和技术方面有共同之处,但也有许多的区别。

相同之处

  • 目标:减少计算成本、增加可靠性、增加灵活性
  • 面临很多共同问题:管理大型设备、定义用户发现、请求和使用资源的方法

不同之处
 业务模型
 体系结构
 资源管理
 编程模型
 应用模型
 安全模型

业务模型

  • 云计算:面向企业或单个用户,按需使用资源,按使用收费,如电、水、气等的使用方式一样,由单一的公司资源建立云计算环境,提供服务,资源可以是高性能设备,也可以是PC机。(我为人人)
  • 网格计算:面向工程,集中于解决大型复杂的计算问题,一项任务可由来自于不同成员贡献的资源共同完成,资源一般是高性能的计算机、存储设备。(人人为我)

体系结构
在这里插入图片描述

  1. 构造层:包括各种计算、存储、网络等硬件资源。
  2. 资源层:通过虚拟化计算,抽象为被上层或终端用户使用的资源,即虚拟的资源,如虚拟的计算机、集群、文件系统、数据库等。
  3. 平台层:在资源层之上,整合了一系列的工具、中间件、服务等,提供应用部署平台服务。
  4. 应用层:包括云环境下运行的各种应用程序。

资源管理——数据模型

  • 网格:在网格环境下有专门的数据网格处理数据集中式的应用,出现了虚拟数据的概念。
  • 云计算:是数据、云计算(产生和消费数据)和客户端计算的结合。

资源管理——数据位置

  • 网格计算:数据依赖于共享的文件系统,难于利用数据位置信息。
  • 云计算:能够将数据分块,存储于不同的位置,可以将任务调度到靠近数据存储位置的地方执行,综合考虑计算和数据资源管理,便于利用数据位置信息减小数据移动量,改善终端应用的性能和可扩展性,提高效率。

资源管理——虚拟化

 网格:每一个组织自己控制和管理自身的资源,对虚拟化的依赖程度不如云计算高。
 云计算:虽然不是必要的,但在实践中几乎成为不可缺少的元素。

编程模型

  • 网格:MPI, WSRF,Globus Tookit等
  • 云计算:MapReduce, Hadoop等

Map-Reduce的基本原理和任务分配过程

MapReduce模式的思想是将要执行的问题拆解成Map(映射)和Reduce(化简)的方式,先通过Map程序将数据切割成不相关的区块,分配给大量计算机处理达到分布运算的效果,再通过Reduce将程序结果汇整,输出开发者需要的结果。

MapReduce的编程思想——分而治之

MapReduce定义了Map和Reduce两个抽象的编程接口,由用户编程实现:

  • Map:对一组数据进行某种重复式的处理。
  • Reduce:对Map的中间结果进行某种进一步的结果整理。

 MapReduce分布式处理技术:

  1. 在编程的时候,开发者需要编写两个函数:Map:(in_key, in_value) Reduce:(key,[value 1,value 2…])
  2. Map操作产生的结果是<key,value>对
  3. Reduce操作对相同的Key进行归类处理

MapReduce分布式处理技术——框架

  • MapReduce框架由一个单独运行在主节点上的JobTracker和运行在每个集群从节点上的TaskTracker共同组成。
  • 主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前失败的任务。

MapReduce分布式处理技术——实现机制

  1. MapReduce函数首先把输入文件分成M块,每块大概16MB到64MB,接着在集群的机器上执行处理程序。
  2. MapReduce算法运行过程中有一个主控程序,称为master。主控程序会产生很多作业程序,称为worker。并且把M个map任务和R个reduce任务分配给这些worker,让它们去完成。
  3. 被分配了map任务的worker读取并处理相关的输入。map()函数产生的中间结果(k,v)对暂时缓冲到内存。
  4. map()函数缓冲到内存的中间结果将被定时刷写到本地硬盘,这些数据通过分区函数分成R个区。这些中间结果在本地硬盘的位置信息将被发送回master,然后master负责把位置信息传送给reduce()函数的worker。
  5. 当master通知了reduce()函数的worker关于中间键/值对的位置时,worker调用远程方法从map()函数的worker机器的本地硬盘上读取缓冲的中间数据。当reduce()函数的worker读取到了所有的中间数据,它就使用这些中间数据的键(key)进行排序,这样可以使得相同键(key)的值都在一起。
  6. reduce()函数的worker根据每一个中间结果的键(key)来遍历排序后的数据,并且把键(key)和相关的中间结果值(value)集合传递给reduce()函数。reduce()函数的worker最终把输出结果存放到master机器的一个输出文件中。
  7. 当所有的map任务和reduce任务都完成后,master激活用户程序。在这时,MapReduce返回用户程序的调用点。
  8. 当以上步骤成功结束以后,MapReduce的执行数据存放在总计R个输出文件中(每个输出文件都是由reduce任务产生,文件名是用户指定)。用户通常不需要将这R个输出文件合并到一个文件,这些文件通常被作为输入传递给另一个MapReduce调用,或者由另一个分布式应用来处理。

Hadoop基本原理

Hadoop框架,用于实现MapReduce算法,能够把应用程序分割成许多很小的工作单元,每个单元可以在任何集群节点上执行或重复执行。

此外,Hadoop还提供一个分布式文件系统GFS,执行大型、分布式大数据量的读写操作,其容错性较强。
而分布式数据库(Big Table)是一个有序、稀疏、多维度的映射表,有良好的伸缩性和高可用性,用来将数据存储或部署到各个计算节点上。

在Hadoop架构中,MapReduce API提供Map和Reduce处理、GFS分布式文件系统和Big Table分布式数据库提供数据存取。基于Hadoop可以非常轻松和方便完成处理海量数据的分布式并行程序,并运行于大规模集群上。

描述数据一致性理论

CAP理论:

  1. 强一致性(C):系统在执行某项操作后仍然处于一致状态。在分布式系统中,更新操作执行成功后所有用户都应该读取到最新的值,这样的系统被认为具有强一致性。
  2. 可用性(A):每一个操作总是能够在一定的时间内返回结果。
  3. 分区容错性(P):分区容错性可以理解为系统在网络分区的情况下仍然可以接受请求。

CAP理论是在分布式环境中设计和部署系统时需要考虑的三个重要的系统需求。根据CAP理论,数据共享系统只能满足这三个特性中的两个,而不能同时满足三个条件。
在这里插入图片描述

  • 放弃P:如果想要避免分区容错性问题的发生,一种做饭就是将数据放到一台机器上。虽然无法100%地保证系统不会出错,但不会碰到由分区带来的负面效果。当然,这个选择会严重影响系统的可扩展性。
  • 放弃A:一旦遇到分区容错故障,那么收到影响的服务需要等待数据一致,因此等待期间系统无法对外提供服务。
  • 放弃C:这里说的放弃一致性,并不是完全放弃数据的一致性,而是放弃数据的强一致性,而保留数据的最终一致性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饼干饼干圆又圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值