常见分布式系统 | 您所在的位置:网站首页 › 分布式软件技术有哪些 › 常见分布式系统 |
目录
1、分布式存储系统1.1 中间控制节点架构1.2 完全无中心架构
2、分布式计算系统2.1 Hadoop Map Reduce2.2 Spark2.3 Flink2.4 Hadoop & Spark & Flink 比较
3、分布式消息队列系统4、分布式机器学习系统4.1 Spark ML4.2 分布式TensorFlow
5、回顾与总结
1、分布式存储系统
分布式存储系统主要分为两个大类: 中间控制节点架构完全无中心架构 1.1 中间控制节点架构定义:以单独元数据服务器为中间控制,具体数据存储服务器为分布式存储的架构存储; 代表:Hadoop Distributed File System (HDFS); 元数据:描述数据的数据(包含具体数据的路径,以及相关信息); 架构图: 中间控制节点架构的代表为HDFS,下面举一个例子: 数据类型描述位置学生信息学生的相关信息服务器1学生成绩学生的考试成绩服务器2元数据是描述数据的数据,包含具体数据的数据路径和相关信息,表格中就是一个元数据,其包括具体数据的数据类型、描述和具体存储位置; 所以当用户想访问真实数据前,必须先访问元数据服务器节点; HDFS概括图 HDFS中元数据服务器节点被称为NameNode节点,存储真实数据的节点被称为DataNode节点; 中间控制节点架构特点 用户进行数据读写时,先访问存储元数据的节点(Namenode),得到真正数据的存储信息后,去真正存储数据的节点(Datanode)进行读写;存储元数据的节点通常为单一的服务器节点,但是因为访问元数据节点的频率和访问量都相对数据节点较小,所以不太可能会出现性能瓶颈; 1.2 完全无中心架构定义:客户端通过设备映射关系计算出具体数据的位置,客户端直接访问; 代表:计算模式(Ceph); 流程介绍:客户端通过Mon通信服务,计算得到客户端需要写到的具体文件路径; 架构图
完全无中心架构的特点 与中间控制节点架构相似的地方在于真实的数据都是分布式存储在各个服务器节点;与中间控制节点架构不同的地方在于,完全无中心架构中没有类似于Namenode的中心节点;客户端通过设备映射关系计算出其读写数据的数据节点位置,从而可以直接访问数据存储节点; 2、分布式计算系统常用的分布式计算系统主要分为三类: Hadoop Map ReduceSparkFlink 2.1 Hadoop Map Reduce定义:一种大数据编程模型,将数据处理运用Map和Reduce的概念进行分而治之的处理; 理念:分而治之,将大任务划分成小任务; 应用场景:批处理(一次性处理数据);
Hadoop Map Reduce具体的应用程序流程图:
在机器学习训练的时候我们会不断查看过去的数据,这在Hadoop中是没有办法实现的,所以我们迎来了第二个比较好的计算框架Spark; 2.2 Spark定义:基于内存优化的分布式大数据计算框架; 理念:分而治之,将大任务划分成小任务,引入RDD概念; 应用场景:批处理(效率最好) + 流处理(微小批处理);
计数实例解释图
定义:分布式大数据处理框架,对流数据可以进行计算; 理念:实时处理; 应用场景:流处理; 架构图:
Kafka:Kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑计算;
Kafka重要概念 Topic:定义特定的消息,可以让生产者和消费者都从该Topic中进行数据读写;Partition:一个Topic可以分成好几个分区;Broker:服务器存储数据,可以做备份;主要介绍两个: Spark ML分布式TensorFlow 4.1 Spark ML定义:以Spark为计算引擎的分布式机器学习框架; 特点:提供一个分布式的模型训练环境;提供一个训练数据集分布式处理的环境; 常见机器学习框架比较:Sklearn、Tensorflow、Pytorch; 4.2 分布式TensorFlow分布式TensorFlow,是在分布式集群上进行训练; |
CopyRight 2018-2019 实验室设备网 版权所有 |