【学习笔记】Hadoop之HDFS架构、SecondaryNameNode、副本放置策略

1. HDFS架构

HDFS是主从架构,一个NameNode作为主节点,维护管理文件系统的元数据信息,N个DataNode作为从节点,存储实际的数据块。
【图片后续补】

1.1 NameNode(简称NN)

维护管理文件系统的元数据信息

  • 文件目录结构
  • 文件名称
  • 文件属性(权限,创建时间,副本数…)
  • 文件对应的块(副本)与DataNode的映射关系
    这个映射关系,不会持久化存储,而是在集群启动和运行时,由DataNode定期发送BlockReport给NameNode,NameNode在内存中动态维护该映射关系

1.2 DataNode(简称DN)

DataNode可以分布在不同的机架(RACK)上,主要功能存储实际的数据块,提供数据块的读写功能。
另外DataNode还会定时的跟NameNode通信

  • 每隔3S(参数是dfs.heartbeat.interval)向NameNode发送一次心跳信号
  • 每隔21600000MS(既6H,参数是dfs.blockreport.intervalMsec)向NameNode发送一次块报告

2. SecondaryNameNode(简称SNN)

SecondaryNameNode是NameNode的一个辅助进程,会定期的合并NameNode的fsimage文件和edits日志为新的fsimage文件并推送给NameNode,简称为检查点(checkpoint)
chekpoint默认参数

  • dfs.namenode.checkpoint.period=3600 单位是S
  • dfs.namenode.checkpoint.txns=1000000

2.1 SecondaryNameNode工作流程

【图片后续补】

  1. NameNode启动时加载最新的fsimage_n和edits_n+1-n+a,并生成新的日志edits_inprogress_n+a+1
  2. SecondaryNameNode把fsimage_n和edits_n+1-n+a复制到SecondaryNameNode节点,把这两个文件合并为fsimage_n+a
  3. SecondaryNameNode把新的镜像文件fsimage_n+a推送至NameNode
  4. NameNode节点的edits_inprogress_n+a+1写满,名称变更为edits_n+a+1-n+b
  5. NameNode生成新的日志edits_inprogress_n+b+1
  6. SecondaryNameNode定期去NameNode复制最新的fsimage文件和edits日志,并合并为新的fsimage镜像文件

3. 副本放置策略

【图片后续补】
第一个副本

  • 提交节点为DataNode,那么第一个副本直接写到该节点的HDFS目录
  • 集群外提交,则随机选一个网络和CPU较为空闲的节点

第二个副本

  • 放置于与第一个副本不同机架的节点上

第三个副本

  • 放置于与第二个副本同一机架的不同节点上
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值