HDFS学习笔记 【Namenode/DN管理】

news/2024/5/20 1:12:21 标签: hdfs, 笔记

说明

DN管理管理了什么?
NN上如何表示DN
DN存储和块的关系
梳理DatanodeManager存储类
!](https://img-blog.csdnimg.cn/e147b1b275304361a3ee5d4ed781ff2c.jpeg)

DatanodeDescriptor

DN的抽象,依次继承。每一层增加一点额外的信息。
DatanodeId
基本的DN信息,hostname,数据传输接口,info服务端口,ipc端口等。
DatanodeInfo
补充一些DN信息,比如容量,缓存,以及xceiver数量等,软件版本,以及dn状态等。
DatanodeDescriptor
补充一些状态相关的信息,负载,指令,缓存相关的信息
指令相关的信息,比如带宽,复制块,恢复块
缓存相关的参数,多个队列保存已缓存,等待缓存的,等待取消缓存的块。

DatanodeStorageInfo

存储抽象,管理blockList,管理block的状态。
blockList 保存所有所有的Block头节点。BlockInfo.triplets保存的是所有副本块的双向链表

字段

NN状态相关
heartbeatsinceFailOver: NN是否出现失败
blockContensStale:是否处于stale状态,bool类型
防止数据不完整

NN里面存储的和DN相关的信息

元数据相关
dn,storageId,storagetype,state字段用于描述存储的元信息
storage状态信息,用于描述存储的容量相关信息

方法

  • addBlock()
    DN向NN汇报新数据块,DatanodeStorageInfo信息加入到Blocks中
    DatanodeStorageInfo中维护blocks列表,里面包含了所有的快信息
  • maskStaleAfterFailOver()
    在HA切换时,将DatanodeStorageInfo设置为false状态。

【未完待续】


http://www.niftyadmin.cn/n/216036.html

相关文章

Logstash:多管道配置

我们大多数人已经熟悉 Elastic 产品。 在此博客中,我们将逐步介绍配置 Logstash 以使用多个管道摄取和处理数据的步骤。 Logstash 是一种开源数据处理管道,可让你摄取、转换和输出数据。 它是从各种来源收集和处理大量数据的强大工具,可用于管…

面向对象编程(进阶)4:再谈封装性中的4种权限修饰

目录 权限修饰符:public,protected,缺省,private 1、外部类要跨包使用必须是public,否则仅限于本包使用 (1)外部类的权限修饰符如果缺省,本包使用没问题 (2)外部类的权限修饰符如果缺省&…

C# | 上位机开发新手指南(九)加密算法——RSA

上位机开发新手指南(九)加密算法——RSA 文章目录上位机开发新手指南(九)加密算法——RSA前言RSA的特性非对称性安全性可逆性签名速度较慢密钥管理RSA算法的参数公钥公钥指数e模数n私钥私钥指数d模数n质数p和qdp和dqqInv质数填充方…

浏览器是如何工作的(2)

如何解析请求回来的 HTML 代码,DOM 树又是如何构建的。 ​ 如何解析请求回来的 HTML 代码 字符流拆成了词(token)需要两个方面(1.2) 1. 词(token)是如何被拆分的 2. 状态机 状态机的初始状态&…

MyBatis-Plus实现动态表名

MyBatis-Plus实现动态表名 MyBatis实现方法如下现在要用MyBatis-Plus 实现 <select id"getList" resultType"com.wys.entity.User">SELECT *FROM ${tableName}</select>MyBatis-Plus官网说明 MyBatis-Plus版本 1、添加MyBatis-Plus依赖 <…

echarts地图设置某一区域颜色

在geo-》regions中添加相关配置即可 option {... ...&#xff0c;geo: {regions: [{name: 要定义颜色的map_name,itemStyle: {normal: {areaColor: #E18A1FFF}}}]},... ...}myChart.setOption(option, true);

P5318 【深基18.例3】查找文献

题目描述 小K 喜欢翻看洛谷博客获取知识。每篇文章可能会有若干个&#xff08;也有可能没有&#xff09;参考文献的链接指向别的博客文章。小K 求知欲旺盛&#xff0c;如果他看了某篇文章&#xff0c;那么他一定会去看这篇文章的参考文献&#xff08;如果他之前已经看过这篇参考…

Android - Kotlin 协程Global.launch函数

一、简介 那么什么是协程呢&#xff1f;它其实和线程是有点类似的&#xff0c;可以简单地将它理解成一种轻量级的线程。 要知道&#xff0c;我们之前所学习的线程是非常重量级的&#xff0c;它需要依靠操作系统的调度才能实现不同线 程之间的切换。而使用协程却可以仅在编程语…