HDFS相关内容学习

作者: BitGuo | 来源:发表于2019-10-30 15:25 被阅读0次

NameNode

包含两种重要数据结构

  • FsImage:保存系统文件树
    FsImage记录内容包括:访问权限,块大小以及组成文件的块,文件的复制等级和文件的修改访问时间。
  • EditLog:记录对数据进行的诸如创建、删除和重命名等操作。

系统启动NameNode的时候,首先从磁盘将FsImage内容加载到内存,与EditLog各项操作合并,合并之后得到的是最新的元数据。这个最新的元素作为新版的FsImage,之后系统会重新创建一个空的EditLog,记录后续的更新操作。

为什么不把所有的更新操作就记录到FsImage中去,新的FsImage不就是旧的FsImage和EditLog的合并吗?为什么还要开一个新的空的EditLog,为什么需要EditLog这个数据结构?

答:EditLog 的存在是一种优化策略,只使用FsImage的时候,FsImage本身的size会很大,若每次修改和更新的信息都去去更新到FsImage中去,系统运行速度效率会很慢。EditLog的Size小。

在启动之后,EditLog也是在内存中的,自然会随着操作数量的增多而size变大,影响运行速度,如何解决?

答:有一个所谓的Secondnary NameNode,该NameNode除了作为第一NameNode的冷备份之外,还用来对EditLog进行处理。

第二NameNode和第一NameNode协作处理EditLog的机制?
答:第一NameNode和第二NameNode定期通信,当第一NameNode中的EditLog的size达到一定程度,第二NameNode会通知第一NameNode停止往EditLog中写入信息,此时第一NameNode新建一个edits.new文件用来作为中转缓存文件。第二NameNode会通过http get的方式将第一NameNode节点上的FsImage和EditLog拉到自己的本地,进行合并成一个新的FsImage,在此期间第一NameNode会将更新信息记录在edits.new中,随后第二NameNode会把新的FsImage传给第一NameNode,第一NameNode得到新的FsImage,并将edits.new作为新的EditLog。

节点之间通信协议

通信都是基于TCP/IP
客户端和NameNode进行TCP通信
客户端读数据和dataNode通信,使用的是RPC。

出错检验恢复
NameNode出错:HDFS 2.0 中通过SecondnaryNameNode恢复元数据,通过热备立即顶上去。
DataNode出错:heartbeat,DN有故障直接将其重新复制分发到其他可用节点。
数据本身出错:写文件时会同时写文件内容和该文件的校验码,当其他客户端读文件的时候会把读过来的文件内容进行计算校验码,并与之前写写入的校验码进行比对。

相关文章

  • HDFS相关内容学习

    NameNode 包含两种重要数据结构 FsImage:保存系统文件树FsImage记录内容包括:访问权限,块大小...

  • day07.HDFS学习【大数据教程】

    day07.HDFS学习【大数据教程】 ******HDFS基本概念篇****** 1. HDFS前言 设计思想 ...

  • HDFS学习之Yarn

    开始学习Hadoop了,其中很重要的一块就是它的存储系统-HDFS,先学学HDFS HDFS概述 HDFS源于Go...

  • Hadoop安装指南

    hadoop单机/伪分布式安装指导链接: hadoop集群安装 HDFS学习资源: HDFS入门 Hbase学习资...

  • HDFS学习

    一、hdfs的概念及特性 概念:首先,它是一个文件系统,用于存储文件,通过统一的命名空间——目录树来定位文件位置。...

  • HDFS学习

    1. HDFS:hadoop分布式文件管理系统,以流式数据访问模式来存储超大文件 2. HDFS数据块:HDFS上...

  • HDFS学习

    HDFS是设计成一次写入,多次读取的场景,且不支持文件的修改 HDFS通常 位于 /hadoop-2.6.4/te...

  • hadoop笔记(四)HDFS的shell和api

    前面进行了hdfs原理的学习,下面进行hdfs的shell操作和api操作。1、hdfs命令hadoop的shel...

  • Hadoop学习

    本次Hadoop学习重点是HDFS,所以会从以下方面介绍: HDFS基础Hadoop基础架构HDFS假设及目标HD...

  • 【HDFS】--块状态&副本状态

    本文来学习一下HDFS中的块状态和副本状态。参考资料:《Hadoop 2.X HDFS源码剖析》--徐鹏 HDFS...

网友评论

    本文标题:HDFS相关内容学习

    本文链接:https://www.haomeiwen.com/subject/igqovctx.html