NameNode 和 secondary NameNode

前言

在Hadoop中NameNode 和 secondary NameNode是两个比较容易迷惑的知识,其实没有那么神秘NameNode 和 secondary NameNode就是两个进程

NameNode

HDFS集群上有两类节点,一种是管理者一种是工作者,NameNode就是管理者,用来管理多个工作者DataNode。NameNode主要是用来储存HDFS的元数据信息,比如说文件的命名空间信息,文件的切块信息。这些信息储存在内存中,也可以持久化到磁盘中。在NameNode启动时会读取 fsimage文件并且和edit logs文件合并, 这里涉及到两个文件, fsimage文件是 filesystem image 的简写,文件镜像,是Hadoop文件系统元数据的一个持久性的检查点,包含了Hadoop中的所有目录和文件idnode的序列化信息,edit logs文件存放的是Hadoop文件系统的所有更新操作的路径,文件系统客户端执行的所有写操作首先会被记录到edit logs文件中。

secondary NameNode

只有在NameNode重启时,edit logs才会合并到fsimage文件中,从而得到一个文件系统的最新快照。但是在产品集群中NameNode是很少重启的,这也意味着当NameNode运行了很长时间后,edit logs文件会变得很大。当edit logs文件变得很大的时候就不便于管理,而且重启NameNode的时候会很慢,如果NameNode挂掉,就会丢失很多改动信息。 secondary NameNode就是为了解决这种问题而生的。它可以定期的查询NameNode上的edit logs的变动,然后把editlogs更新到fsimage上,然后再将新的fsimage拷贝到NameNode上,简单的说就是动态的合并edit logs和fsimage文件。这样当NameNode重新启动的时候就会使用新的fsimage文件从而减少启动的时间。
从字面上来看,很多人会认为SecondaryNameNode是NameNode的热备进程。其实不是,SecondaryNameNode是HDFS架构中的一个组成部分,它真正的用途,是用来保存namenode中对HDFS metadata的信息的备份,并减少namenode重启的时间。对于hadoop进程中 ,要配置好并正确的使用 SecondaryNameNode,还是需要做一些工作的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值