namenode和datanode运行原理

HDFS集群中有两类节点:工作节点datanode、管理节点namenode

namenode管理文件系统的命名空间,它维护着文件系统树以及该树所有的文件和目录。这些信息以两个文件形式永久保存在本地磁盘上,分别是命名空间镜像文件编辑日志文件

namenode记录着每个文件系统中各个块所在的数据节点信息,但它不永久保存块的位置信息,因为这些信息会在系统启动时根据数据节点信息重建。

datanode是文件系统的工作节点,它们根据需要存储并检索数据块,并且定期向namenode发送它们所存储的块的列表。

客户端代表用户通过namenode和datanode交互来访问整个文件系统。客户端提供一个类似于POSIX(可移植操作系统界面)的文件系统接口,因此用户在编程时无需知道namenode和datanode也可以实现其功能。

没有namenode,文件系统将无法使用。如果运行namenode的服务器损坏,那么文件系统上的文件将会丢失,因为我们不知道如何根据datanode的块重建文件。因此,对于namenode实现容错非常重要,Hadoop提供了两种容错机制。

1. 第一种方法

备份那些组成文件系统元数据持久状态的文件。Hadoop可以通过配置使namenode在多个文件系统上保存元数据的持久状态。这些写操作是实时同步的,且是原子操作,一般的配置是,将持久状态写入本地磁盘的同时,写入一个远程挂在的网络文件系统(NFS)

2. 第二种方法

运行一个辅助的namenode,但它不能被用作namenode(一山不容二虎哈)。这个辅助的namenode的重要作用是定期合并编辑日志和命名空间镜像,以防止编辑日志过大,这个辅助namenode一般在另一台单独的物理计算机上运行,因为它需要占用大量的CPU,并且需要与主namenode一样多的内存来执行合并操作。它会保存合并后的命名空间镜像的副本,并在主namenode发生故障时启用。但是辅助namenode保存的状态会落后于主namenode,所以在主节点全部失效时,可能会丢失部分数据。在这种情况下,一般把存储在NFS上的namenode元数据复制到辅助namenode上,并将辅助namenode作为主namenode来运行。

---摘自《Hadoop权威指南》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值