论文部分内容阅读
MapReduce 是由Google公司开发的一个针对大规模群组中的海量数据处理的分布式编程模型,在处理T级别以上巨量数据的业务上有着明显的优势。与Google的 MapReduce相似,2010年12月21日微软推出了dryad的公测版,Dryad也通过分布式计算机网络计算海量数据,成为谷歌 MapReduce分布式数据计算平台的竞争对手。与 MapReduce不同的是,Dryad是针对运行Windows HPC Server的计算机集群设计的,而且DryadL
INQ使用.NET的LINQ查询语言模型。Dryad使.Net程序员可以利用数据中心的服务器集群对数据进行并行处理,这样使得程序员在操作数千台机器时,无需关心并行处理的细节。本文将从Dryad与云计算、Dryad的架构、DryadLINQ、 Dryad同MapReduce的比较、Dryad的应用及前景这五个方面来进行介绍。
分布式计算(Distributed Computing)
是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。
并行计算(Parallel computing,或称并行处理、平行计算)一般是指许多指令得以同时进行的计算模式。
高性能计算是云计算的特征之一,分布式并行计算是实现高性能计算的关键技术。2004年,谷歌发布了两篇关于MapReduce和分布式文件系统GFS 的研究报告,这两篇报告成为Hadoop的基础。Apache 将Hadoop变为开源项目,雅虎也对Hadoop进行了单独开发。现在,Hadoop是雅虎的在线基础设施的重要支撑,并且已经被Facebook、 Twitter、苹果和微软等科技巨头采用。2008年,微软收购了语义搜索企业Powerset,并将Powerset公司基于Hadoop的相关技术用于必应(Bing)搜索引擎。
Dryad被设计為伸缩于各种规模的计算平台:从单台多核计算机、到由几台计算机组成的小型集群,直至拥有数千台计算机的数据中心。Dryad执行引擎负责处理大型分布式、并行应用程序中会出现的各种难题:对计算机和它们的CPU进行调度,从通信或计算机的失败中恢复,以及数据在节点之间的传递等等。
一个Dryad程序员通过使用单向通道来连接并行程序。Dryad系统的总体的构建用来支持有向无环图(Directed Acycline
Graph,DAG)类型数据流的并行程序。一个Dryad 任务被表示为一个有向无环图,当发生重要的计算事件时,这些图甚至在执行期间也能发生变化。
Dryad构建在Cluster Service和分布式文件系统之上,它的工作原理是这样的:当用户使用Dryad平台时,任务管理器(Job Manager,JM)获取图之后,便会在程序的输入通道准备完毕,并且有可用机器的时候对它进行调度。JM从命名服务器(Name Server,NS)那里获得一个可用的机器,并通过一个维护进程(daemon,D)来调度这个程序。文件,共享内存,或TCP管道都可以作为程序(节点)之间通信用的通道。在运行过程中可以动态改变图的形状,并得到很好的容错性。在调试的时候,整个图也可以运行在单个系统上。
最底层使用了群集系统的windows server,这些server提供了群集服务(Cluster service)。在Cluster Service的基础上可以构建分布式文件系统(Cosmos),同时也支持CIFS和NTFS的文件系统,这使得数据的访问对上面的应用程序是半透明的。Dryad可以处理任务的创建和管理、资源管理、任务监控和可视化、容错、重新执行和调度等工作。
云计算的时代即将到来,对于开发者最大的影响就是,如果还像以前一样只和一台计算机和有限的存储打交道已远远不够,以前开发的软件或许只在单机上运行就可以了。但云时代的工程师应该更多的掌握分布式计算的基本原理和开发方法,有能力掌握用于分布式计算的协议或语言,开发出可以运行在几百台、几千台甚至几万台计算机上的应用程序,并用该程序管理分布在不同数据中心的海量存储设备。云计算的时代即将到来,对于开发者最大的影响就是,如果还像以前一样只和一台计算机和有限的存储打交道已远远不够,以前开发的软件或许只在单机上运行就可以了。但云时代的工程师应该更多的掌握分布式计算的基本原理和开发方法,有能力掌握用于分布式计算的协议或语言,开发出可以运行在几百台、几千台甚至几万台计算机上的应用程序,并用该程序管理分布在不同数据中心的海量存储设备。
不管Dryad对MapReduce的挑战结果如何,对广大的.Net平台下的开发者来说总算是有了Windows平台下的分布式并行计算平台,从无到有、从有到完善是任何事物发展的必经阶段。就目前来说,Dryad平台的出现是微软云计算领域一个重大的技术提升,为微软提供更好的云打下一个坚实的技术基础。
北极星电力网新闻中心
INQ使用.NET的LINQ查询语言模型。Dryad使.Net程序员可以利用数据中心的服务器集群对数据进行并行处理,这样使得程序员在操作数千台机器时,无需关心并行处理的细节。本文将从Dryad与云计算、Dryad的架构、DryadLINQ、 Dryad同MapReduce的比较、Dryad的应用及前景这五个方面来进行介绍。
分布式计算(Distributed Computing)
是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。
并行计算(Parallel computing,或称并行处理、平行计算)一般是指许多指令得以同时进行的计算模式。
高性能计算是云计算的特征之一,分布式并行计算是实现高性能计算的关键技术。2004年,谷歌发布了两篇关于MapReduce和分布式文件系统GFS 的研究报告,这两篇报告成为Hadoop的基础。Apache 将Hadoop变为开源项目,雅虎也对Hadoop进行了单独开发。现在,Hadoop是雅虎的在线基础设施的重要支撑,并且已经被Facebook、 Twitter、苹果和微软等科技巨头采用。2008年,微软收购了语义搜索企业Powerset,并将Powerset公司基于Hadoop的相关技术用于必应(Bing)搜索引擎。
Dryad被设计為伸缩于各种规模的计算平台:从单台多核计算机、到由几台计算机组成的小型集群,直至拥有数千台计算机的数据中心。Dryad执行引擎负责处理大型分布式、并行应用程序中会出现的各种难题:对计算机和它们的CPU进行调度,从通信或计算机的失败中恢复,以及数据在节点之间的传递等等。
一个Dryad程序员通过使用单向通道来连接并行程序。Dryad系统的总体的构建用来支持有向无环图(Directed Acycline
Graph,DAG)类型数据流的并行程序。一个Dryad 任务被表示为一个有向无环图,当发生重要的计算事件时,这些图甚至在执行期间也能发生变化。
Dryad构建在Cluster Service和分布式文件系统之上,它的工作原理是这样的:当用户使用Dryad平台时,任务管理器(Job Manager,JM)获取图之后,便会在程序的输入通道准备完毕,并且有可用机器的时候对它进行调度。JM从命名服务器(Name Server,NS)那里获得一个可用的机器,并通过一个维护进程(daemon,D)来调度这个程序。文件,共享内存,或TCP管道都可以作为程序(节点)之间通信用的通道。在运行过程中可以动态改变图的形状,并得到很好的容错性。在调试的时候,整个图也可以运行在单个系统上。
最底层使用了群集系统的windows server,这些server提供了群集服务(Cluster service)。在Cluster Service的基础上可以构建分布式文件系统(Cosmos),同时也支持CIFS和NTFS的文件系统,这使得数据的访问对上面的应用程序是半透明的。Dryad可以处理任务的创建和管理、资源管理、任务监控和可视化、容错、重新执行和调度等工作。
云计算的时代即将到来,对于开发者最大的影响就是,如果还像以前一样只和一台计算机和有限的存储打交道已远远不够,以前开发的软件或许只在单机上运行就可以了。但云时代的工程师应该更多的掌握分布式计算的基本原理和开发方法,有能力掌握用于分布式计算的协议或语言,开发出可以运行在几百台、几千台甚至几万台计算机上的应用程序,并用该程序管理分布在不同数据中心的海量存储设备。云计算的时代即将到来,对于开发者最大的影响就是,如果还像以前一样只和一台计算机和有限的存储打交道已远远不够,以前开发的软件或许只在单机上运行就可以了。但云时代的工程师应该更多的掌握分布式计算的基本原理和开发方法,有能力掌握用于分布式计算的协议或语言,开发出可以运行在几百台、几千台甚至几万台计算机上的应用程序,并用该程序管理分布在不同数据中心的海量存储设备。
不管Dryad对MapReduce的挑战结果如何,对广大的.Net平台下的开发者来说总算是有了Windows平台下的分布式并行计算平台,从无到有、从有到完善是任何事物发展的必经阶段。就目前来说,Dryad平台的出现是微软云计算领域一个重大的技术提升,为微软提供更好的云打下一个坚实的技术基础。
北极星电力网新闻中心