这篇文章主要介绍“HDFS的架构主要有什么”,在日常操作中,相信很多人在HDFS的架构主要有什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HDFS的架构主要有什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
前言
HDFS分布式文件系统即Hadoop Distributed Filesystem,采用master/slave架构,具有可靠性、可用性和扩展性,这也是分布式系统的三个关键指标。
一、HDFS架构
HDFS的架构主要:基本框架、读写流程、高可用、压缩系列化5个方面介绍,本篇介绍:基本框架。
1. 下面HDFS的基本框架
1.1 NameNode
用来存储文件系统的元数据(文件/目录的元信息和每个文件对应的数据块列表)和接受客户端的RPC请求。文件包括:fsimage、editlog,也就是说NameNode在内存中的数据有两部分组成:fsimage+不断增加的editlog。
fsimage:是文件系统的元数据镜像文件。
editlog:文件系统的操作日志文件(增加、删除文件记录)
1.2 DataNode
实际存储数据的地方,是文件系统的工作节点(受客户端或者namenode的调度),并且定期向namenode发送块的列表。文件块block(逻辑概念,便于快速查找和存储,Replication 是block的存储实例, Replication是多复本。默认是三个。)是存储的基本单元,HDFS默认Block大小是128MB,假如一个文件大小为1G,那么共有8个block(1024/128=8),每个bock有多个复本分布存储在不同的节点上。DataNode会一直保持复本数,如果一个复本损坏,系统会从其他节点读取一个复本复制到一台正常运行的机器上,确保复本数回到正常数值。通过向NameNode发送心跳保持与其联系(3秒一次),如果NameNode10分钟没有收到DataNode的心跳,则认为其已经lost,并copy其上的block到其它DataNode。
2. 下面介绍NameNode和SecondaryNameNode的关系
2.1SecondaryNameNode
SecondaryNameNode不是NameNode的备份,而是一个辅助的NameNode,这个辅助NameNode的重要作用是定期(默认是一个小时)通过合并编辑日志和空间镜像,以防止编辑日志过大。这个辅助的NameNode一般在另一台单独的物理计算机上运行,因为它占用的CPU时间和内存与NameNode相同容量的内存来执行合并操作。
2.2CheckPoint Node
可能是由于Secondary NameNode容易对人产生误导,因此Hadoop 1.0.4 之后建议不要使用Secondary NameNode,而使用CheckPoint Node。Checkpoint Node和Secondary NameNode的作用以及配置完全相同,只是启动命令不同 bin/hdfs namenode -checkpoint。
2.3联邦HDFS
NameNode在内存中保存文件系统中每个文件和每个数据块的引用关系,这个意味着在一个拥有大量文件的集群中,内存将成为限制系统横向扩展的瓶颈。在2.x版本中引入联邦HDFS,允许通过添加NameNode实现扩展 ,其中每个NameNode管理文件系统的中的一部分。例如一个NameNode管理/user目录下的所有文件,另一个NameNod可能管理/share目录下的所有文件。
到此,关于“HDFS的架构主要有什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注天达云网站,小编会继续努力为大家带来更多实用的文章!