HDFS理论基础

news/2024/5/20 1:15:59 标签: hdfs, hadoop, big data

1.存储模型

2.架构设计

3.角色功能

PS:角色对应的就是一个或者多个进程

4.元数据持久化

5.安全模式

HDFS合并EditLog与FsImage的过程:

  1. HDFS启动前会进行格式化,生成一个空的FsImage,假设HDFS集群在8:00时进行第一次初始化启动
  2. 8:00 - 9:00 期间,对HDFS的操作记录在EditLog中,NameNode内存中存储了相关的元数据,但是此时硬盘中的FsImage还是空的
  3. 假设9点到达checkpoint,Secondary NameNode拉取NameNode中的FsImage(此时为空),以及EditLog(记录了8:00 - 9:00的操作日志),NameNode同时会生成一个新的EditLog,记录9:00以后的操作日志
  4. Secondary NameNode将拉取到的EditLog合并到FsImage中,合并完成之后,将其推送到NameNode
  5. NameNode使用新的FsImage替换之前旧的FsImage,将NewEditLog(记录9:00的操作日志)替换之前的EditLog(记录的是8:00 - 9:00的操作日志)。

6.副本放置策略

7.读写流程

下图描述了在某一时间点,客户端往HDFS上传一个块的示意图:

  1. 客户端与NameNode交互,告诉NameNode需要上传文件
  2. NameNode触发副本放置策略,告诉客户端块的副本放到哪些节点,节点是有序的
  3. 客户端与第一个节点创建TCP连接,并告诉这个节点,后面的节点是哪些
  4. 第一个节点与第二个结点建立连接,并告诉第二个节点,后面的节点是哪些
  5. 同理,这些副本放置节点会串联起来
  6. 客户端将块分为多个小块,依次将小块传输给第一个节点
  7. 客户端将第一个小块往第二个节点传输完成后,就开始向其传输第二个小块,与此同时,第一个节点就会向第二个节点传输第一个小块
  8. 类推下去,与流水线类似,客户端只需要往第一个节点传输数据,就能完成将数据传输到多个节点的功能。且耗费的时间比客户端分别向多个节点传输花费的时间更少。这里,流水线传输就类似于一个变种的并行传输。

HDFS读流程:

 

参考链接:

清华大牛精讲Hadoop全套教程_从入门到精通(HDFS集群/MapReduce底层原理、源码~~)_哔哩哔哩_bilibili


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

相关文章

SkyWalking 介绍、mac环境搭建和启动、JAVA项目中打印链路信息

目录 SkyWalking是什么 Skywalking mac环境搭建、启动 1. 文件下载 2. 启动oap项目 3. 启动UI项目 4.java项目中使用Skywalking JAVA项目中打印traceId SkyWalking是什么 SkyWalking是一个可观测性分析平台和应用性能管理系统,跟踪、度量和记录一体式解决方…

一、Zookeeper入门

1、概述 个人理解: Zookeeper是一个分布式集群,它的作用是接受其他组件到Zookeeper集群里面存储数据,以及接受其他组件到Zookeeper集群订阅消息。当存储的数据发生变化时, Zookeeper就会通知订阅的组件,告诉它所关心的…

二、Zookeeper单机模式安装

1、下载地址 官网首页:Apache ZooKeeper 2、单机模式安装 2.1、安装前准备 安装JDK拷贝Zookeeper安装包apache-zookeeper-3.6.3-bin.tar.gz到Linux机器上面解压到/opt/zookeeper/目录: tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz -C /opt/zookeep…

codeforces 888E Maximum Subsequence (折半枚举 双向搜索)

传送门:codeforces 888E 题目大意: 从大小为 n 的数组 a 中挑选出任意个元素,使得元素之和模 m 最大。 前置技能: 1.折半枚举。举个栗子,如果让你在 n 个数中找出 4 个数满足它们的和等于 sum。如果 n 很大的话四层循…

三、Zookeeper内部原理

1、选举机制(重点) 半数机制:集群中半数以上机器存活,集群可用。所以 Zookeeper 适合安装奇数台服务器。 Zookeeper 虽然在配置文件中并没有指定 Master 和 Slave。 但是, Zookeeper 工作时,是有一个节点…

数据结构和算法的可视化

理解复杂数据结构的最佳方法是看到它们的实际作用。此文为各种数据结构和算法开发了交互式动画地址,网站由旧金山大学计算机科学系开发, 基本 堆栈:数组实现堆栈:链表实现队列:数组实现队列:链表实现递归 …

codeforces 894B. Ralph And His Magic Field (数学题+思维)

传送门:codeforces 894B 题目大意: 在一个 n x m 的矩阵中插入任意数字,使得每一行每一列数的乘积为 k,其中 k要么是 1 要么是 -1. 我们注意到插入的数只可能是 1 或 -1. 思路: 我们只考虑 -1 的数目。当 k-1 时&…

mysql架构和版本信息对比

目录 mysql概述 mysql架构逻辑 版本信息对比 mysql概述 和其他的数据库相比,mysql有点与众不同,它的架构可以再多种不同场景中应用并发挥好的作用,但同时也会带来一点选择上的困难,mysql并不完美,却足够灵活&#xff0…