hdfs原理

article/2025/10/24 4:06:30

简介

HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。是根据google发表的论文翻版的。论文为GFS(Google File System)Google 文件系统。

HDFS有很多特点:

① 保存多个副本,且提供容错机制,副本丢失或宕机自动恢复。默认存3份。
(用空间换安全)
② 运行在廉价的机器上。
③ 适合大数据的处理。多大?多小?HDFS默认会将文件分割成block,128M为1个block。然后将block按键值对存储在HDFS上,并将键值对的映射存到内存中(namenode)。如果小文件太多,那内存的负担会很重。
在这里插入图片描述
如上图所示,HDFS也是按照Master和Slave的结构。分NameNode、SecondaryNameNode、DataNode这几个角色。

NameNode:是Master节点,是管理者。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间;
NameNode保存的metadata包括文件ownership和permission文件包含的block信息
Block保存在那些DataNode节点上(这部分数据并非保存在NameNode磁盘上的,它是在DataNode启动时上报给NameNode的,Name接收到之后将这些信息保存在内存中)
NameNode的metadata信息在NameNode启动后加载到内存中
Metadata存储到磁盘上的文件名称为fsimage
Block的位置信息不会保存在fsimage中
Edits文件记录了客户端操作fsimage的日志,对文件的增删改等。
用户对fsimage的操作不会直接更新到fsimage中去,而是记录在edits中

SecondaryNameNode:分担namenode的工作量;是NameNode的冷备份;合并fsimage和fsedits然后再发给namenode。
合并fsimage和fsedits文件,然后发送并替换NameNode的fsimage文件,同时自己留下一个副本。这个副本可供NameNode毁灭之后的部分文件恢复。
1可以通过配置fs.checkpoint.period修改合并间隔时间,默认1小时
2也可以通过配置edits日志文件的大小,fs.checkpoint.size规定edits文件的最大值,来让SecondaryNameNode来知道什么时候该进行合并操作了。默认是64M


http://chatgpt.dhexx.cn/article/TKPcTH1K.shtml

相关文章

Hadoop原理之——HDFS原理

Hadoop 3个核心组件: 分布式文件系统:Hdfs——实现将文件分布式存储在很多的服务器上(hdfs是一个基于Linux本地文件系统上的文件系统) 分布式运算编程框架:Mapreduce——实现在很多机器上分布式并行运算 分布式资源调度…

HDFS架构及原理

HDFS架构及原理 1、HDFS架构及存储 HDFS 采用Master/Slave的架构来存储数据,这种架构主要由四个部分组成,分别为HDFS Client、NameNode、DataNode和Secondary NameNode。一个HDFS集群是由一个NameNode和一定数目的DataNode组成的。NameNode是一个中心服…

HDFS基本原理及数据存取实战

--------------------------------------------------------------------------------------------------------------- [版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/51622547 作者&am…

QT的开发学习路线

基础组件;页面布局;通信机制;

QT的学习

QT是利用C进行编写,而QT则是C的实际运用的一种方式。 QT也称GUI------grphical user interface(图形用户接口) 通过图形的方式操纵计算机用户界面 QT的特点以及应用: 1、跨平台(可以在多个平台上进操作&#xff08…

Qt 学习之路 2 --- 读书笔记

一、文章来由 来自豆子老师非常好的一本Qt教程,但是只有网络版,所以用这个做笔记了,不动笔墨不读书嘛~~ 二、读书笔记 1、Qt 学习之路 2(2):Qt 简介 1.1 关于 Qt 的一站式解决 Qt 是一个著名的 C 应用…

Qt学习之路之 QTextEdit 重温

其实,QTextEdit 也有对文本的编辑函数, 剪切,复制,撤销..... 看看下面的这个简单的例子: 控件一目了然。按钮 QTextedit 对象 , 垂直布局。 -------------------------------------------------- 环境&…

QT的进一步学习

QT的进一步学习 来源: ChinaUnix博客  日期: 2006.10.02 17:41 (共有条评论) 我要评论 本文收录了互联…

Qt学习之路之QMovie动画

QMovie类是一个很方便的类,用于播放动画。在刷新页面的时候,可以尝试用QMovie 来实现等待界面。 QMovie类用于显示简单的动画,没有声音。 首先,通过将一个文件的名称或者一个指针传递给QMovie的构造函数构建一个QMovie对象。传递…

QT学习之路-记事本

1、在创建记事本之前先明白有哪些功能: 先创建一个菜单栏,菜单栏是用来装各种功能的一个地方如上图所示,文件、编辑所在的地方为菜单栏, //创建菜单栏QMenuBar *menubarmenuBar();菜单栏创建好后再创建菜单,菜单在菜单…

QT学习

文章目录 前言一:Qt的三个基类QObject、QApplication和QWidget一:QObject类二:Qapplication类三:QWidget 二:Qt中QMainWindow、QWidget、QDialog的区别基础知识1:容器类常用的QListQStack和QQueueMap和Mult…

【QT学习之路】QThread的简单使用

QThread的使用说明:QThread线程类是QT已经封装好的, 如果要使用线程, 就派生出子类并且实现线程接口函数run(run就是线程任务函数) 下面就用QThread实现当前系统时间的获取并且在主界面(UI线程)上显示,实现…

【QT学习之路,QT安装】

1,安装QT 系统环境:ubuntu 22.04 sudo apt-get install build-essential sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools sudo apt-get install qtcreator sudo apt-get install qt5* 2,安装成功后会有4个程序 3…

qt学习之路(三)之使用QT语言家

一、简介 源代码中经常会出现一些字符串,比如定义要显示在控件上的文本,在不同的语言环境下,可能会需要显示不同语言对应的文本。针对多语言切换的需求,Qt提供的解决方案是,在所有需要翻译的字符串处都使用QObject::tr…

QT学习(2)

事件 事件与信号的关系?? 点击按钮,也会进入到事件循环,处理槽函数 事件对操作系统而言 事件大部分都是由硬件触发;事件产生,操作系统是知道的 鼠标移动: 事件在qt中是由多态去实现的&#xf…

Qt 进阶之路

作者:billy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 古语有云:“工欲善其事,必先利其器”。一件好的开发工具可以帮助开发者快速、准确的完成任务。博主主要从…

Qt 入门学习路线

参考书目 《C GUI Qt4编程》 一、Qt框架概述 1. 什么是Qt? Qt是一个用C编写的、成熟的、跨平台的GUI工具包,它是挪威Trolltech公司的产品,该公司为商业市场开发、销售和支持Qt及其相关软件。 Qt作为一个出色的软件框架,除了为应用程序提供…

《Qt基础教程之Qt学习之路》

在Qt开源社区中,有一个很好的Qt教程,叫做《Qt 学习之路》,下面是它的链接和目录。 链接地址:http://www.qter.org/thread-629-1-1.html 评论区说上面这个地址打不开,有可能没人管理了。可以试一下面的: h…

Qt学习之路 (一)概述

Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User …

QT学习之路

文章目录 一、QT简单介绍二、.pro文件介绍三、 命名规范和常用快捷键以及QPushButton简单使用登录窗口布局控件--按钮组其他常用控件介绍自定义控件封装Qt中的鼠标事件定时器一定时器二event事件分发器事件过滤器绘图事件绘图高级设置绘图设备QFile文件读写操作QFileInfo文件信…