分布式架构
分布式核心组件:hdfs , hbase newsql spark spanner 介绍。
分布式文件系统hdfs , 分布式文件系统,类似于gfs, 是Hadoop中的大规模分布式文件系统,在整个架构上与gfs 大致相同,更简化,比如同一时刻只允许一个客户端对文件进行追加写操作。
它具有以下几个特点:
1)适合存储非常大的文件
2)适合流式数据读取,即适合“只写一次,读多次”的数据处理模式
3)适合部署在廉价的机器上
但HDFS不适合以下场景(任何东西都要分两面看,只有适合自己业务的技术才是真正的好技术):
1)不适合存储大量的小文件,因为受Namenode内存大小限制
2)不适合实时数据读取,高吞吐量和实时性是相悖的,HDFS选择前者
3)不适合需要经常修改数据的场景
image.png
由NameNode,DataNode,Secondary NameNode以及客户端组成。
NameNode:
负责管理整个分布式文件系统的元数据,包括文件目录树结构、文件到数据块的映射关系、Block副本及其存储位置等各种管理数据。这些数据保存在内存中。还负责DataNode的状态监控,通过心跳来传递管理信息和数据信息。
Secondary NameNode
职责并非是NameNode的热备机,(定期备份、检查点生成ckt)而是定期从NameNode拉取fsimage(内存命名空间元数据在外存的镜像文件)和editlog文件(各种元数据操作的write-ahead-log
文件,在体现到内存数据变化前先把操作记录到此文件防止数据丢失)并对这两个文件进行合并,形成新的fsimage文件并传回给NameNode,以减轻NameNode的工作压力。
DataNode
类似于GFS的Chunk服务器,负责数据块的实际存储和读写。
客户端
与GFS客户端类似,HDFS客户端和NameNode联系获取所需读/写文件的元数据,实际的数据读写都是和DataNode直接通信完成的。
网友评论