失效链接处理 |
基于MapReduce的分布式计算系统 PDF 下载
本站整理下载:
相关截图:
主要内容:
1.1选题背景与意义
在传统的序列化的计算模型中,一个任务的执行往往要等待该任务之前的任务的完成,这样的计算模型既浪费机器又浪费时间。所以不久之后,计算机科学领域提出了多进程,多线程,多协程协作计算的概念,也即并发计算模型,极大地提高了计算机计算的效率。尤其是在计算机有多个CPU,或者一个CPU有多个核的情况下,并发计算模型可以同时调用多个CPU协作计算完成任务,即使单核单.CPU,也可以依赖于线程或者进程间的上下文切换,来调度多个计算任务,分片执行,这样一些只需要很短时间可以完成计算的任务就不需要等待很长时间。但是随着数据量的增长,即使是单机的并发计算模型,也不能满足数据计算性能的要求,所以分布式计算变得异常火热。分布式计算就是多个计算机协作完成,同单机并发计算模型类似,只不过并发的多个进程或者线程分布在多台计算机上,每个计算机即是一个计算节点,协作计算-一个,或者多个计算任务。
1.2分布式计算系统面临的挑战
分布式计算系统的设计实现有其固有的挑战,主要包含以下几个方面:
1.异构性(Heterogeneity)。也即是说能够被分布式计算系统计算的任务必须能分配成多个彼此独立的模块,但是现实中的软件系统的模块边界并不是总是那么清晰,所以异构性是分布式计算系统面临的首要问题。
2.可扩展性(Scalability)。可扩展性是指随着分布式计算系统计算资源的加,分布式计算系统仍然能高效准确地完成应用程序的运行。可扩展性一直是分布式计算系统的-一个难题。在有新的机器加入时,分布式计算系统.能够有效地将其利用起来。
3.容错性 (Fault handling)。在任何软件系统中,程序运行时出现异常都是不可避免的。分布式计算系统也不例外,在中某节点出现异常状况时,分布式计算系统如何检测出来,如何进行有效应对等,这也是分布式计算系统所要面对的问题。
1.3分布式计算系统的基本特征
分布式计算系统具有如下几个特征,这也是该分布式计算系 统在设计的时候的几个主要目标:
流处理设计 运行在分布式计算系统上的程序的执行流程是固定的,分布式计算系统会 根据程序的执行逻辑将该应用程序的计算分割为多个阶段或者多个步骤
(Step),每个步骤又会根据对源数据的分片数,分割成多个任务。这样 各个任务之间就像流一样串联起来。
可扩展性及容错性 分布式计算系统中分为主结点和计算结点,计算结点会定期向主结点发送 心跳信息,这样主结点能清楚地了解分布式计算系统中各计算结点的运行 状态,如果某计算结点不响应了,主结点会将该计算结点中踢除,实现了 容错性。新加入的计算结点会向主结点发送心跳消息,这样就实现了很好 的扩展性。
DAG 支持 分布式计算系统将运行的应用程序分割为各个的任务,并且会将各个任务 的执行路径进行优化,最终形成一个有向的无环图(DAG, Diredted Acyclic Graph),并且最终分布式计算系统是按着该有向的无环图来运行的。
内存计算 分布式计算系统将所有计算产生的中间结果都放置在内存中,以便后续的 任务组能使用。只有在两种情况下分布式计算系统会将计算结果写到磁盘 上。一是一个任务对该任务数据集计算产生的输出会作为多个任务的输入 二是一个任务会从多个任务的输出中获取其所需要的数据集。这样极大的 提高了分布式计算系统的计算性能
|