【Hadoop】HDFS三组件:NameNode、SecondaryNameNode和DataNode
HDFS主要由三个组件构成,分别是NameNode、SecondaryNameNode和DataNode,其中NameNode和SecondaryNameNode运行在master节点上,DataNode运行在slave节点上。
HDFS架构如下图:
1. NameNode
NameNode管理HDFS文件系统的命名空间,它维护文件系统树及树中的所有文件和目录。同时NameNode也负责这些文件和目录的打开、关闭、移动和重命名等操作。而实际文件数据的操作是由DataNode负责。
当Client端发起请求,该请求首先会到达NameNode,NameNode分析请求,然后告诉Client该去哪个DataNode上找什么位置的数据块。得到消息后的Client会直接和DataNode进行交互。
NameNode中元数据种类有:
(1)文件名目录及它们的层级关系;(2)文件目录的所有者及其权限;(3)每个文件块的名称及文件有哪些块组成。
需要注意的是,NameNode保存的元数据信息并不包含每个数据块的位置信息,只包含块的名称及文件由哪些块组成。块的位置信息会在NameNode每次重启时从DataNode获取,并且NameNode通过心跳机制和DataNode保持通信,实时监控文件系统是否在正常运行。
2. DataNode
DataNode运行在slave节点上,也称为工作节点。它负责存储数据块,也负责为Client端提供读写服务,同时还接收NameNode指令,进行创建、删除和复制等操作。DataNode还通过心跳机制定期向NameNode发送所存储文件块列表信息。并且DataNode还和其他DataNode节点通信,复制数据块已达到冗余的目的。
3. SecondaryNameNode
NameNode元数据信息存储在FsImage中,NameNode每次重启后会把FsImage读取到内存中,在运行过程中为了防止数据丢失,NameNode的操作会被不断的写入本地EditLog文件中。
当检查点被触发,FsImage会把EditLog文件中的操作应用一遍,然后把新版的FsImage写回磁盘中,删除EditLog文件中旧的事务信息。检查点有两种触发机制:(1)按秒为单位的时间间隔触发(dfs.namenode.checkpoint.period);(2)达到文件系统累加的事务值触发(dfs.namenode.checkpoint.txns)。
FsImage和EditLog文件的合并就用到了SecondaryNameNode组件,它的工作过程如下:
(1)合并之前通知NameNode把所有操作写入新的EditLog文件中,并将其命名为edits.new;
(2)SecondaryNameNode从NameNode处请求合并FsImage和EditLog;
(3)SecondaryNameNode把FsImage和EditLog合并为新的FsImage文件;
(4)NameNode从SecondaryNameNode获取合并好的新的FsImage并将旧的替换掉,并把EditLog用(1)中创建的edits.new替换。
(5)更新Fstime中的检查点。
总而言之:
(1)FsImage:保存的是上个检查点的HDFS的元数据信息;
(2)EditLog:保存的是从上个检查点开始发生的HDFS元数据信息状态改变信息;
(3)Fstime:保存了最后一个检查点的时间戳。
【Hadoop】HDFS三组件:NameNode、SecondaryNameNode和DataNode相关推荐
- Hadoop系列 (三):HDFS详细介绍
文章目录 Hadoop系列文章 HDFS简介 HDFS基本概念 分布式文件系统特点 HDFS设计目标 HDFS架构 HDFS应用场景 HDFS三大组件 NameNode SecondaryNameNo ...
- ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Exception in doCheckpoint
grep -ri Exception得到如下信息: /home/appleyuchi/bigdata/hadoop-3.2.1/logs/hadoop-appleyuchi-secondaryname ...
- Hadoop基础-Hdfs各个组件的运行原理介绍
Hadoop基础-Hdfs各个组件的运行原理介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.NameNode工作原理(默认端口号:50070) 1>.什么是NameN ...
- Python +大数据-hadoop生态-hadoop(三)--Hadoop HDFS
Python +大数据-hadoop生态-hadoop(三)–Hadoop HDFS 今日课程学习目标 理解分布式文件存储的概念与实现 掌握HDFS分块存储.副本机制等特性 学会shell操作HDFS ...
- 云服务器(阿里云,百度云,华为云,腾讯云)搭建Hadoop(Nameode,SecondaryNamenode,datanode)
写这篇文章是为了记录我自己在云平台上学习安装的过程,希望能为其他的同学提供一点帮助: 服务器类型 这里我使用的服务器有: node1 阿里云(学生机)Ubuntu (NameNode) node2 百 ...
- 云计算学习笔记---异常处理---hadoop问题处理ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.lang.NullPoin
云计算学习笔记---异常处理---hadoop问题处理ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.lang.NullPoin ...
- hadoop实战(三) 使用HDFS操作文件
一.hadoop简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群:负责海量数据的存储,集群中的角色主要有 NameNo ...
- Hadoop HDFS源码学习之NameNode部分
NameNode源码学习 文章目录 NameNode源码学习 一.文件系统目录树(第一关系) 2.1 INode相关类 2.2 快照特性的实现 2.3 FSEditLog类 2.4 FSImage类 ...
- org.apache.hadoop.hdfs.server.namenode.SafeModeException
原文出自:http://hi.baidu.com/zhy65991/item/8428013fcf459e342f0f8158 safemode模式 NameNode在启动的时候首先进入安全模式,如果 ...
最新文章
- python股票自动交易从零开始-python程序化交易编程-python制作自动交易程序!
- SQL Server 2005 在建立与服务器的连接时出错,错误26收藏
- redis哨兵集群数据迁移_redis集群数据迁移—redis-migrate-tool神器
- MySQL使用覆盖索引来优化limit语句
- JavaScript设计模式——单例模式的理解与应用
- OTDR光纤测试仪:您的光纤终极故障排除工具
- 内容生态搜索趋势研究报告
- 深圳 | 鹏程实验室研究员招收访问学生
- 怎么删除已经安装的mysql_怎么样删除已经安装的mysql | wdlinux致力于Linux服务器架构,性能优化.免费CDN加速系统,免费智能DNS解析,负载均衡,集群分流...
- adb 操作命令简介(一)
- Linux挂载Linux网络共享文件夹
- 如何选择适合你的兴趣爱好(二十四),京剧
- oracle rac 数据同步原理,从HDS VSP G1000的ORACLE RAC双活测试报告了解其实现原理
- (C#)Winform修改DateTimePicker控件的背景色Winform中日期控件DateTimePicker默认是不能修改背景色和边框色的
- 服务器开通网站来宾帐户,IIS 增加Internet来宾用户权限
- 【Spark】Spark Quick Start(快速入门翻译)
- 【微信小程序模板】可以用微信小程序模板制作小程序吗?
- 消除span之间的空隙
- 网站SEO优化之图片优化方法
- 当易方达张坤遇招商白酒侯昊
热门文章
- java mybatis狂神说sql_Mybatis框架下SQL注入审计分析
- 股票软件开发中全推与点播的区别
- 用唯一的颜色id编号实现OpenGL选择功能(OpenGL Selection Using Unique Color IDs )
- 没有可用软件包 docker-compose。_R语言CRAN软件包Meta分析
- innodb_file_per_table 理解
- 巧用Linux 命令来拆分Windows下的大文件
- 部署Nginx+Keepalived
- iOS 如何在一个应用程序中调用另一个应用程序
- C++中的构造函数小结
- 配置IIS支持PHP