- 浏览: 599597 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
Namenode主要维护两个文件,一个是fsimage,一个是editlog。
fsimage:保存了最新的元数据检查点,包含了整个HDFS文件系统的所有目录和文件的信息。对于文件来说包括了数据块描述信息、修改时间、访问时间等;对于目录来说包括修改时间、访问权限控制信息(目录所属用户,所在组)等。
editlog:主要是在NameNode已经启动情况下对HDFS进行的各种更新操作进行记录,HDFS客户端执行所有的写操作都会被记录到editlog中。
简单来想,NameNode维护了文件与数据块的映射表以及数据块与数据节点的映射表,什么意思呢?就是一个文件,它切分成了几个数据块,以及这些数据块分别存储在哪些datanode上,namenode一清二楚。fsimage就是在某一时刻,整个hdfs 的快照,就是这个时刻hdfs上所有的文件块和目录,分别的状态,位于哪些个datanode,各自的权限,各自的副本个数。然后客户端对hdfs所有的更新操作,比如说移动数据,或者删除数据,都会记录在editlog中。
为了避免editlog不断增大,secondary namenode会周期性合并fsimage和edits成新的fsimage,新的操作记录会写入新的editlog中,这个周期可以自己设置(editlog到达一定大小或者定时)。
第一步:将hdfs更新记录写入一个新的文件——edits.new。
第二步:将fsimage和editlog通过http协议发送至secondary namenode。
第三步:将fsimage与editlog合并,生成一个新的文件——fsimage.ckpt。这步之所以要在secondary namenode中进行,是因为比较耗时,如果在namenode中进行,或导致整个系统卡顿。
第四步:将生成的fsimage.ckpt通过http协议发送至namenode。
第五步:重命名fsimage.ckpt为fsimage,edits.new为edits。
这样的话,fsimage与editlog合并的过程就完成了。所以如果namenode宕机,其实secondary namenode还保存这一份不久前的fsimage,还能挽回一些损失吧。
另外上篇中说,一旦有datanode挂掉了(宕机或者是网络阻塞),namenode能很快感知到,并且将宕机的节点上的数据块转移至其余空闲节点。这点是因为hdfs中心跳机制(heartbeat)。
心跳机制默认3s中一次,datanode会向namenode发送一次一跳,告知namenode当前节点上存放的数据文件是什么。如果namenode中记录的是该datanode存放了文件A的两个数据块和文件B的一个数据块,但是心跳中只有文件A的一个数据块信息,namenode就会知道该datanode数据块损坏了,会把损坏的数据块在别的datanode上补充。
转自:http://blog.csdn.net/chenkfkevin/article/details/61196409
fsimage:保存了最新的元数据检查点,包含了整个HDFS文件系统的所有目录和文件的信息。对于文件来说包括了数据块描述信息、修改时间、访问时间等;对于目录来说包括修改时间、访问权限控制信息(目录所属用户,所在组)等。
editlog:主要是在NameNode已经启动情况下对HDFS进行的各种更新操作进行记录,HDFS客户端执行所有的写操作都会被记录到editlog中。
简单来想,NameNode维护了文件与数据块的映射表以及数据块与数据节点的映射表,什么意思呢?就是一个文件,它切分成了几个数据块,以及这些数据块分别存储在哪些datanode上,namenode一清二楚。fsimage就是在某一时刻,整个hdfs 的快照,就是这个时刻hdfs上所有的文件块和目录,分别的状态,位于哪些个datanode,各自的权限,各自的副本个数。然后客户端对hdfs所有的更新操作,比如说移动数据,或者删除数据,都会记录在editlog中。
为了避免editlog不断增大,secondary namenode会周期性合并fsimage和edits成新的fsimage,新的操作记录会写入新的editlog中,这个周期可以自己设置(editlog到达一定大小或者定时)。
第一步:将hdfs更新记录写入一个新的文件——edits.new。
第二步:将fsimage和editlog通过http协议发送至secondary namenode。
第三步:将fsimage与editlog合并,生成一个新的文件——fsimage.ckpt。这步之所以要在secondary namenode中进行,是因为比较耗时,如果在namenode中进行,或导致整个系统卡顿。
第四步:将生成的fsimage.ckpt通过http协议发送至namenode。
第五步:重命名fsimage.ckpt为fsimage,edits.new为edits。
这样的话,fsimage与editlog合并的过程就完成了。所以如果namenode宕机,其实secondary namenode还保存这一份不久前的fsimage,还能挽回一些损失吧。
另外上篇中说,一旦有datanode挂掉了(宕机或者是网络阻塞),namenode能很快感知到,并且将宕机的节点上的数据块转移至其余空闲节点。这点是因为hdfs中心跳机制(heartbeat)。
心跳机制默认3s中一次,datanode会向namenode发送一次一跳,告知namenode当前节点上存放的数据文件是什么。如果namenode中记录的是该datanode存放了文件A的两个数据块和文件B的一个数据块,但是心跳中只有文件A的一个数据块信息,namenode就会知道该datanode数据块损坏了,会把损坏的数据块在别的datanode上补充。
转自:http://blog.csdn.net/chenkfkevin/article/details/61196409
发表评论
文章已被作者锁定,不允许评论。
-
Hadoop HBase建表时预分区(region)的方法学习
2017-05-15 11:18 1194如果知道Hbase数据表的key的分布情况,就可以在建表的时候 ... -
Hadoop HBase行健(rowkey)设计原则学习
2017-05-15 10:34 1127Hbase是三维有序存储的,通过rowkey(行键),colu ... -
Hadoop HBase中split原理学习
2017-05-12 13:38 2281在Hbase中split是一个很重 ... -
Hadoop HBase中Compaction原理学习
2017-05-12 10:34 999HBase Compaction策略 RegionServer ... -
Hadoop HBase性能优化学习
2017-05-12 09:15 687一、调整参数 入门级的调优可以从调整参数开始。投入小,回报快 ... -
Hadoop 分布式文件系统学习
2017-05-10 15:34 507一. 分布式文件系统 分布式文件系统,在整个分布式系统体系中处 ... -
Hadoop MapReduce处理wordcount代码分析
2017-04-28 14:25 594package org.apache.hadoop.exa ... -
Hadoop YARN完全分布式配置学习
2017-04-26 10:27 577版本及配置简介 Java: J ... -
Hadoop YARN各个组件和流程的学习
2017-04-24 19:04 651一、基本组成结构 * 集 ... -
Hadoop YARN(Yet Another Resource Negotiator)详细解析
2017-04-24 18:30 1160带有 MapReduce 的 Apache Had ... -
Hive 注意事项与扩展特性
2017-04-06 19:31 7511. 使用HIVE注意点 字符集 Hadoop和Hive都 ... -
Hive 元数据和QL基本操作学习整理
2017-04-06 14:36 1031Hive元数据库 Hive将元数据存储在RDBMS 中,一般常 ... -
Hive 文件压缩存储格式(STORED AS)
2017-04-06 09:35 2320Hive文件存储格式包括以下几类: 1.TEXTFILE ... -
Hive SQL自带函数总结
2017-04-05 19:25 1143字符串长度函数:length ... -
Hive 连接查询操作(不支持IN查询)
2017-04-05 19:16 729CREATE EXTERNAL TABLE IF NOT ... -
Hive优化学习(join ,group by,in)
2017-04-05 18:48 1818一、join优化 Join ... -
Hive 基础知识学习(语法)
2017-04-05 15:51 904一.Hive 简介 Hive是基于 Hadoop 分布式文件 ... -
Hive 架构与基本语法(OLAP)
2017-04-05 15:16 1253Hive 是什么 Hive是建立在Hadoop上的数据仓库基础 ... -
Hadoop MapReduce操作Hbase范例学习(TableMapReduceUtil)
2017-03-24 15:37 1217Hbase里的数据量一般都 ... -
Hadoop MapReduce将HDFS文本数据导入HBase
2017-03-24 11:13 1222HBase本身提供了很多种数据导入的方式,通常有两种常用方式: ...
相关推荐
在此期间,NameNode不会接受任何写操作,直到将EditLog应用到最新的FSImage,生成新的FSImage并清空EditLog。 6. **EditLog的合并与 checkpoint**: - Checkpoint是将当前EditLog应用到最新FSImage的过程,生成新...
了解NameNode的职责和fsImage、editLog文件的作用,对于理解HDFS的工作机理非常重要。 重点及难点 1. NameNode的职责:NameNode是HDFS的中心节点,负责维护文件系统的元数据。 2. fsImage文件查看:fsImage文件...
Secondary NameNode 不是备份,而是协助NameNode定期合并FsImage和EditLog,生成新的检查点,避免EditLog过大。这个过程中,Secondary NameNode获取FsImage和旧的EditLog,应用日志操作生成新的FsImage.ckpt,并将...
1. **角色定位**:Secondary NameNode的主要任务是定期合并NameNode的元数据文件FSImage和EditLog文件,减轻NameNode的内存压力,确保系统的稳定运行。它并不直接参与用户数据的读写操作,而是在后台默默工作,维持...
2. **Secondary NameNode**:辅助NameNode定期合并fsimage和editlog,减少主NameNode的压力。然而,Secondary NameNode并不能立即接管主NameNode的角色。 **Facebook的AvatarNode方案**:Facebook提出了AvatarNode...
Editlog是在NameNode已经启动情况下对HDFS进行的各种更新操作进行记录,HDFS客户端执行所有的写操作都会被记录到Editlog中。Editlog是HDFS元数据管理流程中的重要组件,用于记录所有的写操作,确保数据的一致性和...
当 Namenode 启动时,会合并 FsImage 和 Editlog 并生成新的 FsImage,这个过程称为检查点。为了提高效率,未来版本的Hadoop将支持周期性的检查点。 总的来说,Hadoop 提供了一个高效、可靠的分布式计算平台,通过...
为了防止EditLog过大影响系统重启速度,Secondary NameNode扮演了一个辅助角色,定期将FsImage和EditLog合并成一个新的FsImage checkpoint,同时生成新的EditLog,确保NameNode的高效运行。 在HDFS中,DataNodes是...
常见的 HA 方案有两种:第一种是设置一个 NFS 的目录,存储 fsimage 和 editlog,第二种是设置 secondary namenode,对 fsimage 和 editlog 进行定期的 merge。 Hadoop HA 高可用集群性主备配置是解决 NameNode 单...
2. 持久化元数据:Namenode将元数据信息存储在内存中,同时使用FsImage文件和事务日志(Edit Log)来保证数据安全。FsImage记录文件系统状态,Edit Log记录每次元数据的更改。 3. 处理请求:Namenode接收并处理...
NameNode 负责管理文件系统的元数据,包括 FsImage 和 EditLog,其中 FsImage 存储文件系统的状态,EditLog 记录所有对文件系统的修改操作。Secondary NameNode 作为辅助角色,定期创建检查点,合并 EditLog 和 ...
7. **Secondary NameNode**:辅助NameNode,主要负责周期性合并NameNode的edit log和fsimage,以减少NameNode重启时的恢复时间。 8. **读写流程**:读取操作通常从最近的DataNode开始,写入操作则首先将数据写入一...
当 Active NameNode 发生变更时,edit log 文件会被更新,而 Standby NameNode 会监控这些变更并将其应用到自己的 fsimage 中,以此保持与 Active NameNode 的同步。 - **DataNode 心跳与块报告:** DataNode 会向 ...
- **替换文件**: Namenode将旧的fsimage文件和edit log替换为新的fsimage文件和新的edit log。 **1.2.3 从元数据节点的目录结构** - **从元数据节点**: 包含用于辅助Namenode进行日志合并的文件。 **1.2.4 数据...
- **Secondary NameNode**:负责定期合并FsImage和EditLog文件,减轻主NameNode的压力。 **启动过程**: 1. **初始化**:第一次启动时创建FsImage和EditLog文件;非首次启动时直接加载这两个文件至内存; 2. **...
- **Secondary NameNode**:这是一个辅助节点,它定期合并NameNode的fsimage和editlog文件,减少NameNode启动时间。 #### MapReduce架构 MapReduce架构同样采用了主从结构,主要包括以下几个组件: - **...
Secondary Namenode处理流程包括收到来自Namenode的FsImage文件和Editlog,加载FsImage到内存,应用Editlog,并生成一个新的FsImage文件,然后将新的FsImage推送给Namenode。 二、HBase基本原理和常用命令 HBase是...
4. **FSImage和EditLog**:配置NameNode的共享存储,如使用NFS,使得所有NameNode可以访问相同的元数据。 5. **配置文件**:修改`hdfs-site.xml`,设置`ha.zookeeper.quorum`为ZooKeeper地址,`dfs.nameservices`...