云计算的理解

分布式系统,解决的问题是大规模的、消耗cpu、消耗内存或其他硬件资源的计算,将这种计算拆分成微小的任务,将任务分配给网络中提供计算服务的各个子服务器,并对这些子任务进行管理、容错,最后返回结果。这样做的原因是,受边界原理影响,一个消耗cpu的程序,如果在分分布式的系统上运行,需要提高处理速度,那么就需要提升cpu性能,随着cpu性能提升,消耗的单位成本内对cpu性能提升作用逐渐减小,最后还是成为了程序处理速度的瓶颈。但若程序运行在分布式的系统中,分布式系统将任务分配各个廉价的普通计算机资源上,这些资源可以无限的扩张,理论上讲,只要这个分布式系统足够强大,将原来对cpu消耗巨大的程序分解成各个小任务,那么各个小任务的运行时间是可以随着任务的缩小而减小,如果任务足够小,那么单个小的任务消耗的时间也足够小,最后只要提升分布式管理系统和各个子系统之间的通信,那么一个原本cpu消耗巨大的任务,就可以在众多的廉价计算机资源上快速的完成。

分布式系统,应该包含以下几个方面:

1、任务分割、结果合并的管理程序

2、子任务调度程序(合理调度资源,将分割而成的子任务,调度到合适的计算机资源上处理)

目前比较流行的云计算,也就是在分布式计算的基础上扩展而来的。

IAASinfrastructureasaservice硬件资源即服务

PAASplatformasaservice平台即服务

SAASsoftasaservice软件即服务

云计算的核心就是用户不需要知道云端是如何进行处理的,只需要告诉云端,需要做什么,完成一个什么样的工作,将该需求(任务)提交到云端后,由云端对用户的任务进行解析,调度云中的各种资源,完成用户的任务,并将处理后的结果反馈给用户。

Java中现在比较流行的一个框架hadoop,关于云计算运行环境、编程支持等。

主要由以下三个方面:

1、hadoop基础框架

2、Map-Reduce任务的分解、结果的合并

3、HDFS仿造GFS(googlefilesystem)设计的分布式文件系统

相关推荐