栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

HDFS核心组件

HDFS核心组件

介绍HDFS核心组件–NameNode、Secondary NameNode、DataNode


NameNode

维护着HDFS中全部数据的元数据,包括所存储的文件和目录的元数据。这些元数据主要包括文件创建/修改时间戳、访问控制列表、块的副本信息以及文件当前状态。

控制着对数据的所有操作。在HDFS上的所有操作,都需要首先通过NameNode,然后再传递到Hadoop的相关组件。

向客户端提供系统数据块信息,以及应该从哪个数据块进行读/写。

向DataNode发出一些特殊命令,如:删除损坏的数据块。


Secondary NameNode

作用:Secondary NameNode会周期性地从NameNode中获取FSImage和EditLog,将两个文件合并成新的FSImage后,替换NameNode中的原FsImage文件,以减少NameNode重启更新FsImage文件的时间。

FSImage和EidtLog创建于部署Hadoop环境过程中的NameNode格式化(命令:hadoop namenode -format)。在HDFS中,FSImage和EidtLog存储了有关NameNode的所有操作及整个集群的状态元数据,用于保持集群重启之后的状态和上次停止前的状态一致1

  • FSImage文件:HDFS文件系统存于硬盘中的所有元数据(即全量),里面记录了重启前HDFS文件系统中所有目录和文件的序列化信息2
  • EditLog文件:保存了重启之后所有针对HDFS文件系统的操作(即增量),如增加文件、重命名文件、删除目录等操作信息2

启动Hadoop后,当用户或客户端发出操作请求,NameNode都会将元数据写入到EditLog中,在集群重启时再将EditLog中的元数据依次写入FSImage,并清空EditLog文件。EditLog作用如下图所示。3:

只有在NameNode重启时,EditLog才会合并到FSImage文件中,从而得到一个文件系统的最新快照。但因为集群中的NameNode很少重启,这意味着当NameNode运行了很长时间后,EditLog文件会变得很大。这将导致NameNode重启会花费很长时间;如果NameNode挂掉,那将丢失大量元数据信息。

而Secondary NameNode周期性合并FSImage能很好的解决以上问题,Secondary NameNode工作流程如下图所示。

网页端口查看Hadoop启动过程,http://localhost:50070


DataNode

存储数据,以块(block)为单位存储数据,每个数据块的大小默认是64M或128M、256M

处理来自客户端的读/写请求,DataNode负责数据块的创建、复制和删除。这些操作命令来自NameNode,并由DataNode执行。

和NameNode通过heartbeat机制保持连接,周期性的向NameNode上报保存的块block信息(block Report机制),若NameNode超过10分钟没有收到DataNode的heartbeat,则认为其已经Lost,并将Block的信息复制到其他DataNode上,以保证副本数。


  1. HDFS 05 - HDFS 的元数据管理(FSImage、Edits、CheckPoint) - 瘦风 - 博客园 (cnblogs.com) ↩︎

  2. HDFS中Secondary NameNode和Standby NameNde的区别 - 简书 (jianshu.com) ↩︎ ↩︎

  3. FSImage 和 EditsLog - 简书 (jianshu.com) ↩︎

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/698623.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号