分布式理解

  1.分类

  狭义的分布是指,指多台PC在地理位置上分布在不同的地方。

  分布式操作系统:负责管理分布式处理系统资源和控制分布式程序运行。它和集中式操作系统的区别在于资源管理进程通信系统结构等方面。

  分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。

  分布式计算:利用分布式系统解决来计算问题。在分布式计算里,一个问题被细化成多个任务,每个任务可以被一个或者多个计算机来完成。

  分布式程序设计语言:用于编写运行于分布式计算机系统上的分布式程序。一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上被同时执行。它与集中式的程序设计语言相比有三个特点:分布性、通信性和稳健性

  分布式数据库:由分布在不同地方(地理位置上的分布)的多个数据库(称为站点)连接(基于计算机网络来连接)而成。利用分布式DBMS对各个站点统一管理,各个站点逻辑上统一起来。基于数据分布的透明性,仿佛在管理单个站点上的数据。其优点在于:容错,提高访问速度。

  2.特征及挑战

  特征:

  *并发:对共享资源的并发执行程序的协调(性能及死锁及缓存一致性)。

  *缺乏全局时钟:在程序需要协作时,他们需要时钟来统一的交换信息来协调他们的动作。

  *故障独立性:所有的计算机系统都可能出故障,系统设计者必须为可能的故障设计应对方案。

  挑战

  1)异构性

  计算机之间存在多样性和差别,比如网络,硬件,操作系统,编程语言,不同开发者。

  统一的网络协议,统一的应用编程接口解决了一些问题,但还有很多问题存在。

  中间件就是为了解决异构性而出现的,它是一个软件层,提供了一个编程抽象,同时屏蔽了底层网络、硬件、操作系统和编程语言的异构性。还为程序员提供了一致的计算模型。eg:RMI和CORBA。

  2)开放性

  是决定系统能否以不同的方式被扩展和重新实现的特征。取决于新的资源共享服务能被增加和供多种客户程序使用的程度。

  3)安全性

  机密性、完整性和可用性。

  主要防御,拒绝服务攻击和移动代码的攻击。

  4)可伸缩性

  如果资源数量和用户数量激增,系统仍能保持其有效性,那么该系统就称为可伸缩的。

  包括:控制物理资源的开销,控制性能损失,防止软件资源用尽,避免性能瓶颈。

  5)故障处理

  检测故障,掩盖故障,容错,故障恢复,冗余(冗余数据来实现容错等控制出错的机制)。

  6)并发性

  并发的操作必须在数据保持一致的基础上同步。

  7)透明性

  对用户和应用程序员屏蔽分布式系统的组件的分离性,使系统被认为是一个整体而不是组件的集合。

  8)服务质量

  影响客户和用户体验的服务质量是可靠性,安全性和性能

  每个关键性资源必须被需要QOS的应用保留,并且必须有一个提供保障的资源管理器。不能满足的资源保留请求将被拒绝

  3.hadoop

  Hadoop是一个能够对大量数据进行分布式处理的软件框架。    
  优点:
  ⒈高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。
  ⒉高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
  ⒊高效性。因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
  ⒋高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
  Hadoop带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。
   
 
  文件的目录结构独立存储在一个主控服务器上,而具体文件数据,拆分成若干块,冗余的存放在不同的数据服务器上。存储目录结构的主控服务器,在GFS中称为Master,在HDFS中称为NameNode。
  每一个文件的具体数据,被切分成若干个数据块,冗余的存放在数据服务器。通常的配置,每一个数据块的大小为64M,在三个数据服务器上冗余存放。数据服务器是典型的四肢发达头脑简单的苦力,其主要的工作模式就是定期向主控服务器汇报其状况,然后等待并处理命令,更快更安全的存放好数据。
  

参考:http://blog.csdn.net/cuidiwhere/article/details/7882244

分布式系统概念与设计

posted on 2013-11-13 21:25  依蓝jslee  阅读(786)  评论(0编辑  收藏  举报

导航