一、分布式文件系统
常用的分布式文件系统:HDFS(Hadoop Distributed File System)
HDFS是Apache Hadoop生态系统中的分布式文件系统,用于存储和管理大规模数据集。它是为了支持大数据处理和分析而设计的,具有高容错性、高可靠性和高可扩展性的特点。它采用了主从架构,由一个或多个NameNode(主节点)和多个DataNode(从节点)组成。
HDFS的特点包括:
-
分布式存储:HDFS将数据分布存储在多个节点上,每个节点都可以存储数据块的一部分。这种分布式存储方式有利于数据的并行处理和容错。
-
冗余备份:HDFS通过数据块的冗余备份来提供数据的高可靠性。默认情况下,每个数据块会有三个副本分布在不同的节点上,以防止数据丢失。
-
高容错性:HDFS通过检测和自动恢复节点故障来保证数据的可靠性。当节点发生故障时,HDFS会自动将数据块的副本复制到其他可用节点。
-
适合大数据处理:HDFS针对大数据的特点进行了优化,支持高吞吐量的数据访问和并行处理。它可以处理大规模数据集的存储、读取和写入,支持批处理、流处理和交互式查询等多种数据处理方式。
-
数据一致性:HDFS的一致性模型是写一次、多次读。一旦数据写入HDFS,它会保持不变直到被显式删除。
-
数据存储:HDFS的文件数据存储在硬盘上,而元数据存储在内存中。当用户将文件写入HDFS时,数据会被分割成固定大小的数据块,并分布存储在不同的数据节点上。每个数据节点都会将数据块存储在本地硬盘上,以提供持久的数据存储。当需要读取文件时,HDFS会从适当的数据节点读取数据块,并在内存中进行缓存和处理。需要注意的是,HDFS使用内存进行元数据的管理和操作,如文件系统的目录结构、文件权限和数据块的位置信息等。这些元数据存储在NameNode(主节点)的内存中,并通过持久化到磁盘上的日志文件来提供持久性和恢复能力。
二、分布式数据库
传统关系型数据库为了兼顾事务和性能的特性,在分布式方面的发展有限,非关系型数据库摆脱了事务的强一致性束缚,达到了最终一致性的效果,常用的分布式数据库系统有:
- 列式存储:Hbase
- 文档存储:Elasticsearch,MongoDB
- KV类型:Redis
- 关系型:Spanner
三、分布式缓存
分布式缓存系统提供了热点数据的随机访问机制,大大了提升了访问时间,但是带来的问题是如何保证数据的一致性,通过引入分布式锁来解决这个问题,常用的分布式存储系统有:
- 持久化:Redis
- 非持久化:Memcache
四、分布式计算系统
分布式计算系统构建在分布式存储的基础上,充分发挥分布式系统的数据冗余灾备,多副本高效获取数据的特性,进而并行计算,把原本需要长时间计算的任务拆分成多个任务并行处理,从而提高了计算效率。分布式计算系统在场景上分为离线计算,实时计算和流式计算,常用的分布式计算系统有:
- 离线:Hadoop
- 实时:Spark
- 流式:Storm,Flink/Blink
五、分布式消息队列
多线程高并发场景经常面临多线程并发情况下不出现资源竞争导致的死锁问题,而分布式消息队列以一种延迟消费的模式将异步任务都存到队列,然后再逐个消化,常用的分布式消息队列有:
- Kafka
- RabbitMQ
- RocketMQ
- ActiveMQ
六、监控
分布式系统从单机到集群的形态发展,复杂度也大大提高,常用的分布式消息队列有:
- Zookeeper
七、应用
分布式系统的核心模块就是应用如何处理业务逻辑,应用直接的调用依赖于特定的协议来通信,分布式系统有基于RPC协议的,也有基于通用的HTTP协议,常见的分布式系统有:
- HSF
- Dubbo
八、日志
常用的分布式日志采集存储和检索工具有:
- 日志采集:flume
- 日志存储:ElasticSearch/Solr,SLS
- 日志定位:Zipkin
九、去中心化的分布式系统架构
P2P(Peer-to-Peer)
是一种去中心化的分布式网络架构,其互联网上的各节点(对等节点)之间平等地协作,共同提供和消费资源。P2P系统中的节点既可以扮演服务提供者的角色,也可以扮演服务消费者的角色,相互之间进行直接通信和资源共享,而无需依赖中心化的服务器。
P2P系统的特点包括:
-
去中心化:P2P系统没有中心化的服务器来管理和调度资源。每个节点都是平等的,可以提供和获取资源。
-
直接通信:P2P系统中的节点直接进行通信,而不需要经过中间节点。这样可以提高通信的效率和速度。
-
资源共享:P2P系统中的节点可以共享自己的资源,如带宽、存储空间、计算能力等。其他节点可以直接从这些节点获取资源。
-
自组织性:P2P系统是自组织的,节点可以动态加入和离开系统,而不会对整个系统造成影响。
-
高可扩展性:由于节点之间的对等关系,P2P系统具有很好的可扩展性,可以方便地增加或减少节点数量,以适应不同规模的系统。
-
P2P系统的应用:如文件共享(如BitTorrent)、区块链技术(如比特币和以太坊)、实时通信(如Skype)等。
共识算法(Consensus Algorithms):是一种去中心化的分布式系统架构,用于在没有中心化控制的环境中达成一致的决策。常见的共识算法包括拜占庭容错(Byzantine Fault Tolerance)算法、Paxos算法和Raft算法等。
区块链技术(Blockchain Technology):一种去中心化的分布式账本技术,通过共识算法和密码学原理实现了数据的去中心化存储和交易验证。区块链被广泛应用于加密货币(如比特币)和智能合约平台(如以太坊)等领域。
分布式哈希表(Distributed Hash Table,DHT):一种去中心化的分布式系统架构,用于在网络中存储和查找键值对。每个节点持有一部分键值对的索引,通过协作来提供高效的分布式存储和查找服务。
标签:HDFS,存储,场景,中心化,数据,节点,分布式 From: https://www.cnblogs.com/sTruth/p/17760316.html