zoukankan      html  css  js  c++  java
  • 分布式计算的本质、特点和未来

      在计算机早期,都是由一台主机承担全部存储和计算工作,这种方式被称为集中处理。后来随着处理器发展和网络出现,衍生出客户机/服务器架构,即由服务器完成主要的存储计算工作,客户机则负责较弱的存储计算和显示工作。到了今天,客户机的角色未变,但是存储计算工作已经不是单台服务器所能承载,需要由一堆服务器共同完成,这也就是通常说的集群架构。

      现在我们所说的分布式计算,主要是指集群架构下的分布式计算工作。这种工作要求从某个客户机节点出发,将一个计算工作分割成若干小的子任务,分配给多台服务器节点去处理,并从这些服务器获得结果的计算过程。

      由于分布式计算整合了大量计算机,处理效果远超单点计算,自带高性能和高效率光环,这些年随着各行业加速向数字化转移,产生的数据越来越多,数据业务复杂度也在同步增加,促使各行业对计算性能和计算效率的要求越来越高,必须使用分布式计算来完成日益庞大和复杂的计算工作。

      所有分布式计算,抛开各种分布式计算模型表面的包装,回归计算本质,都可以分解成“分散”和“聚合”两个动作,执行顺序是先分散再聚合。更加复杂的,为了提高分布式计算效率,会运用迭代技术,持续将上阶段计算结果传输给下个阶段,滚动地进行分散计算和聚合计算,最终得出计算结果。

      在分散和聚合基础上,已经衍生出许多分布式计算模型,比如谷歌的MapReduce,就属于比较简单的分布式计算模型,最初是用在它的搜索引擎上,后来也被Hadoop采用,用于大数据处理。Spark的分布式计算模型就复杂一些,因为它能够同时操作多个Map任务和Reduce任务一起工作。Laxcus更进一步,将分布式计算和计算机硬件整合起来,发展成一个分布式操作系统,它的分布式软件工具包(DSDK)里面,针对不同的分布式计算业务,封装了多种分布式计算模型,同样它也提供可以迭代运行技术,支持持续地处理分布式计算。

     

    (基本是最简单的分布式计算)

     

      分布式计算的“分散”,指的是从一个节点出发,把指令或者数据传递到多个节点上运行,按照某种计算规则,驱动这些节点生成计算结果。“聚合”是对结果数据的编排和汇总,根据不同的需求,聚合又分为对数据本身的聚合和对元数据的聚合。

      对数据本身的聚合比较容易理解,就是把相同性质的数据放到一起进行处理。比如MPP数据库,当Select执行Group by和Order by操作时,就需要先提取多个节点上的同质数据,经过汇集后,再进行分组计算和排序计算。

      元数据的聚合通常发生在数据聚合前,这是一种预处理操作,要求按照某种预定的规则,对不同性质的数据进行分区。分区后产生的对原来数据集合的映射,就是元数据。

      元数据产生在迭代计算过程中,这种数据属于中间数据,被用来做为输入提供给下个阶段使用。元数据现在被各种分布式计算模型普遍使用,因为这些分布式计算模型都需要提高计算效率,最后都统一了选择这种小样本管理大数据的策略。

      面对不同的业务,元数据的格式和内容虽然多种多样,但是有两个参数是必须具有的:1. 标记元数据唯一性的散列码。2. 产生元数据的节点。这两个参数保证分布式计算过程中,每一块数据都能够被定位和识别。

      现在各种分布式计算框架,基本都提供元数据编程接口,允许开发者自己定义元数据。象Laxcus集群操作系统,它的分布式软件开发工具包里面,每套分布式计算模型都有对应的元数据编程接口,同样也支持开发者在即有规则上,定义自己的元数据规范。这样做,即简化了开发分布式应用软件的难度,也给开发者带来更多灵活性和开发便利。

      为了更好地提升计算效率和节省计算资源,所有分布式计算模型都会建议开发者采用“移动计算”,减少“移动数据计算”。这个概念现在很少有人提及,但是非常重要,所以要说一说。

      移动计算就是在产生数据本身的节点上进行计算,移动数据计算需要把数据搬运到指定的目标节点上,再进行计算工作。相比移动数据计算,移动计算省略了数据在网络中的传输开销,计算效率会大大提高。

      但是完全摆脱移动数据计算也是不可能的,因为分布计算过程中,一旦涉及数据的编组、排列、汇总等计算工作,就需要把若干节点的数据传递到指定的目标节点上,网络数据传输工作不可避免。目前很多分布式计算执行过程中,相当大的一部分时间会被数据传输占用,而计算工作处于空置状态,所以为了减少时延提高计算效率,各种分布式计算模型也在用各种办法改进网络通信效率。

      在改善网络通信效率方面,尤其以Laxcus做得最为出色。它提供了一套类似5G Massive MIMO的多通道传输技术,同时还有人工智能技术辅助管控通信设备和网络流量,数据传输的稳定性可靠性非常高。在对比测试中,在网络基础环境不变情况下,它比更早期不支持多通道的数据传输,改进后的通信效率能够提升5-20倍。这是一种非常有前景的技术,也是目前所有分布式计算模型中独树一帜的。

     

    (多点连接,多通道并行,数据传输效果会更好)

      现在的分布式计算,无论是理论、技术,还是产品和使用上,都已经日臻完善。它的未来发展趋势,正在以肉眼可见的速度,快速向软件化方向,特别是当Laxcus这样的分布式操作系统出现后,由于有了统一和标准化的基础平台,更容易部署和使用分布式应用软件。目前这股发展趋势已经非常明显,象高速空气流体、基因工程、生物医药、人工智能的计算工作,都重度依赖大规模分布式计算和它的基础平台。一旦分布式计算全面应用软件化,整个市场都会发生巨大变化。这些好处,我总结一下,大概有以下三点:

      1. 有了统一的标准平台,就意味着,只是操作系统不改变,应用软件放在哪里都可以运行。不象现在各家云服务商自己建立一套,导致互相不兼容,应用软件迁移难度非常大。而企业如果不上云,就需要自己搭建基础平台,建设成本非常高。

      2. 分布式应用软件的开发会更加规范,同时也意味着开发成本更低,这方面可以参考安卓、IOS、Windows上的开发经验。

      3. 形成生态,产生更大的新的市场。分布式应用在没有软件化之前,主要以解决方案的方式出现,这种模式重度依赖特定企业和特定目标群体,无论开发成本还是使用成本都非常高,而且市场容量有限。现在有了分布式操作系统,应用软件的开发工作可以快速下沉到个体开发者。以当前分布式计算蓬勃的发展势头,一旦把海量个体开发者群体纳入进来,与市场上各种需求对接,形成用户与开发者的良性互动,就会出现供需市场。当用户有了更多更丰富的分布式应用软件可供选择,市场就会发展起来,最终通过市场规模的持续扩大,就会形成分布式应用生态。同理参考这十年手机生态的发展历程。

      所以说,分布式计算的发展趋势是应用软件化和生态化,也是它的最终形态。

      未来结果如何,各位拭目以待吧!欢迎大家在下方评论!

     

    Laxcus集群操作系统桌面,类似Windows,客户端远程操控集群上运行的分布式应用软件)

    全体系自主设计研发大数据管理系统
  • 相关阅读:
    27 Spring Cloud Feign整合Hystrix实现容错处理
    26 Spring Cloud使用Hystrix实现容错处理
    25 Spring Cloud Hystrix缓存与合并请求
    24 Spring Cloud Hystrix资源隔离策略(线程、信号量)
    23 Spring Cloud Hystrix(熔断器)介绍及使用
    22 Spring Cloud Feign的自定义配置及使用
    21 Spring Cloud使用Feign调用服务接口
    20 Spring Cloud Ribbon配置详解
    19 Spring Cloud Ribbon自定义负载均衡策略
    18 Spring Cloud Ribbon负载均衡策略介绍
  • 原文地址:https://www.cnblogs.com/laxcus/p/14808603.html
Copyright © 2011-2022 走看看