分布式平台是指将数据存储、数据分析和计算等构建在由多个主机构成的集群上的软件平台。
基本概念
分布式平台相对于单机构成的系统,其分布式平台主要区别在于处理问题的规模上,包括数据计算的规模和数据存储的规模。从物理层次上看,分布式平台运行在由多台不共享内存的机器构成的集群上,但是从逻辑层上来看,分布式平台对用户而言就好像一个单机系统,完全感觉不到物理上分布式的存在。分布式平台相对于单机构成的系统具有诸多优点。具有的特点和优点如下。
● 资源共享。整个分布式环境中的硬件、软件、数据资源和计算资源都可以进行共享。
● 用户透明性。逻辑上,整个分布式系统展现给用户的是一个统一的整体,用户使用的时候感觉不到分布式系统的存在。
● 高性价比。分布式平台相对于单机系统,一般都具有较高的性价比。
● 高可靠。分布式平台利用资源共享的特性,为分布式计算和分布式存储提供了容错机制,以确保数据计算和数据存储的高可靠性。
● 高度灵活性。现在的分布式平台大多兼容市场上主流厂商的硬件产品,兼容中低配置机器。
基本原理
分布式平台的基本原理是利用多台计算机来协同解决由单台计算机不能解决的问题,这类问题往往是由于数据规模超出了单机系统存储容量,或者计算量超出了单机系统的计算能力。利用分布式平台提供的资源共享和协同计算的能力,可以很好地解决大规模数据的处理问题。分布式平台在物理构成上,各主机之间通过高速的内部网络进行连接,在此基础上配置分布式管理系统,以对外提供硬件共享、软件共享、数据共享、服务共享等多种资源共享服务。
分布式文件系统
分布式文件系统(Distributed File System,DFS)是指文件系统管理的物理存储资源不都是直接连接在本地节点上,而是分布在由高速内部网络连接的一组机器节点上,这些机器节点共同构成了一个集群。分布式文件系统在设计上一般都是基于客户机/服务器模型,即传统的C/S 模型。在分布式的环境下,服务器不再是单机系统,而是可以供多个用户从网络上访问的物理集群。同分布式平台一样,分布式文件系统在设计上充分考虑用户的使用习惯,尽量做到对外表现得就像和本地文件系统一样。用户访问分布式文件系统和访问本地文件系统的使用方法相同,用户感觉不到物理上分布式的存在。常见的分布式文件系统有网络文件系统(NFS)、Andrew 文件系统(AFS)、Google 的分布式文件系统(GFS)等。一个典型的分布式文件系统的架构如图1所示。
分布式文件系统的集群中一般有一个或多个控制节点,如图2-1 中的Tracker Cluster。它主要负责分布式文件系统的元数据(目录信息、文件存储位置、命名空间信息等)的管理,监控存储集群的运行状态和健康状态。另外还有若干个数据节点,主要用来存放实际的文件数据,如图1 中的StorageCluster。
当客户端需要读/写分布式文件系统的时候,客户端首先连接到控制节点,以获取要读/写的数据的实际存放位置等信息,然后,客户端根据控制节点返回的信息连接相应的数据节点,进行实际的数据读/写操作,读/写完成后,存储节点需要向集群的控制节点报告此次操作的结果,以便告诉客户端读/写是否成功。
分布式计算
分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,并由许多相互独立的计算机进行协同处理,以得到最终结果。分布式计算是让几个物理上独立的组件作为一个单独的系统协同工作,这些组件可能指多个CPU 或者网络中的多台计算机。它做了如下假定:如果一台计算机能够在5s 内完成一项任务,那么5 台计算机以并行方式协同工作时就能在1s 内完成。实际上,由于协同设计的复杂性,分布式计算并不都能满足这一假设。对于分布式编程而言,其核心的问题是如何把一个大的应用程序分解成若干个可以并行处理的子程序。有两种可能的处理方法:一种是分割计算,即把应用程序的功能分割成若干个模块,由网络上的多台计算机协同完成;另一种是分割数据,即把数据集分割成小块,由网络上的多台计算机分别计算。对于海量数据分析等数据密集型问题,通常采取分割数据的分布式计算方法;对于大规模分布式系统,则可能同时采取这两种方法。国际上典型的分布式计算的项目有以下几个。
● SETI@home:通过运行屏幕保护程序或后台程序,来分析世界上最大的射电望远镜所收到的、可能含有外星智能信号的射电波。
● GIMPS:寻找新的梅森素数。
● United Devices:综合科学性运算,主攻医药领域,以寻找抗癌药物和天花疫苗为主。