【大数据】HDFS

文章目录

    • @[toc]
      • HDFS 1.0
        • NameNode
          • 维护文件系统命名空间
          • 存储元数据
          • 解决NameNode单点问题
        • SecondaryNameNode
        • 机架感知
        • 数据完整性校验
          • 校验和
          • 数据块检测程序DataBlockScanner
        • HDFS写流程
        • HDFS读流程
        • HDFS与MapReduce本地模式
        • Block大小
      • HDFS 2.0
        • NameNode HA
        • NameNode Federation
        • HDFS Snapshot
        • 缓存
        • ACL
        • Block大小

因上努力

个人主页:丷从心·

系列专栏:大数据

果上随缘


HDFS 1.0

NameNode
维护文件系统命名空间
存储元数据
  • 元数据存储在内存中
  • 维护文件名 → B l o c k \rightarrow Block Block B l o c k → D a t a N o d e Block \rightarrow DataNode BlockDataNode的映射关系
  • 持久化元数据的文件是 f s i m a g e fsimage fsimage
  • 所有对元数据的操作都保存在内存中并被持久化到文件 e d i t l o g s edit \ logs edit logs
  • e d i t l o g s edit \ logs edit logs文件和 f s i m a g e fsimage fsimage文件会被 S e c o n d a r y N a m e N o d e SecondaryNameNode SecondaryNameNode周期性地合并
解决NameNode单点问题
  • H a d o o p Hadoop Hadoop元数据写入到本地文件系统的同时再实时同步到一个远程挂载的网络文件系统( N F S NFS NFS)中
  • N a m e N o d e NameNode NameNode发生故障时 S e c o n d a r y N a m e N o d e SecondaryNameNode SecondaryNameNode会通过自己合并的命名空间镜像 f s i m a g e fsimage fsimage副本来恢复 N a m e N o d e NameNode NameNode,但是 S e c o n d a r y N a m e N o d e SecondaryNameNode SecondaryNameNode保存的状态总是滞后于 N a m e N o d e NameNode NameNode,难免会丢失部分数据
SecondaryNameNode

1

  • N a m e N o d e NameNode NameNode在下次重启时会使用新的 f s i m a g e fsimage fsimage文件,从而减少重启时间
机架感知
  • 机架感知是 B l o c k Block Block副本放置策略
  • 第一个副本放在客户端节点,如果客户端是集群外的一台机器,就随机选择节点,但是会避免挑选太满或者太忙的节点
  • 第二个副本放在不同机架的节点
  • 第三个副本放在与第二个副本同机架但是不同节点上
数据完整性校验
校验和
  • 在第一次进入系统时计算数据的校验和,在通道传输后,如果新生成的校验和不完全匹配原始的校验和,那么数据就会被认为是损坏的
数据块检测程序DataBlockScanner
  • D a t a N o d e DataNode DataNode节点上开启一个后台线程,来定期验证存储在它上的所有块,防止物理介质出现损减而造成的数据损坏
  • 一旦发现数据块损坏, D a t a N o d e DataNode DataNode会接收到 N a m e N o d e NameNode NameNode发送的 B l o c k Block Block修复指令
HDFS写流程

2

  • F S D a t a O u t p u t S t r e a m FSData \ OutputStream FSData OutputStream将原始数据切分成数据块并写入一个队列
  • 数据弱一致性:第一个副本写入后就立刻返回 A C K ACK ACK
HDFS读流程

3

HDFS与MapReduce本地模式
  • 数据不移动,代码逻辑移动
Block大小
  • H D F S 1.0 HDFS \ 1.0 HDFS 1.0默认 B l o c k Block Block大小为 64 M B 64 MB 64MB

HDFS 2.0

NameNode HA

4

  • 运行 A c t i v e N a m e N o d e Active \ NameNode Active NameNode S t a n d b y N a m e N o d e Standby \ NameNode Standby NameNode的机器需要相同的硬件配置
  • J o u r n a l N o d e JournalNode JournalNode本质是共享的网络文件系统,由奇数个节点组成,用于存储 e d i t l o g s edit \ logs edit logs
  • F a i l o v e r C o n t r o l l e r FailoverController FailoverController本质是 Z o o K e e p e r ZooKeeper ZooKeeper的客户端,监控 N a m e N o d e NameNode NameNode状态信息,实现故障转移
NameNode Federation

5

  • N a m e N o d e F e d e r a t i o n NameNode \ Federation NameNode Federation本质是命名空间的分离,解决了 N a m e N o d e NameNode NameNode内存资源不足的问题
  • 一个 N a m e s p a c e Namespace Namespace对应一个 B l o c k P o o l Block \ Pool Block Pool,即一个 N a m e s p a c e Namespace Namespace下的所有 B l o c k Block Block的集合
  • 通过视图文件系统 V i e w F S ViewFS ViewFS管理全局 N a m e s p a c e Namespace Namespace
HDFS Snapshot
  • S n a p s h o t Snapshot Snapshot常用来作为数据备份
  • S n a p s h o t Snapshot Snapshot只记录了文件系统元数据信息,并没有进行数据的拷贝
缓存
  • H D F S 2.0 HDFS \ 2.0 HDFS 2.0支持集中式缓存,可以明确指定要缓存数据
  • 支持对非递归目录和文件的缓存
ACL
  • H D F S 2.0 HDFS \ 2.0 HDFS 2.0支持 A C L ACL ACL管理
Block大小
  • H D F S 2.0 HDFS \ 2.0 HDFS 2.0默认 B l o c k Block Block大小为 128 M B 128 MB 128MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/10694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用注解的方式进行配置RabbitMQ

引入依赖&#xff1a; <dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-rabbit-test</artifactId><scope>test</scope></dependency> 配置application.yml server:port: 8082 spring:rabbitmq…

pyqt5报错:AttributeError: ‘mywindow‘ object has no attribute ‘setCentralWidget‘

第一种解决方法是&#xff1a;AttributeError: ‘mywindow‘ object has no attribute ‘setCentralWidget‘_attributeerror: mywindow object has no attribute-CSDN博客 第二种解决方法是&#xff08;推荐&#xff09;&#xff1a; 直接把这段代码复制在 ui转 py文件的后面…

什么是JVM中的程序计数器

在计算机的体系结构中&#xff1a; 程序计数器&#xff08;Program Counter&#xff09;&#xff0c;通常缩写为 PC&#xff0c;是计算机体系结构中的一个寄存器&#xff0c;用于存储下一条指令的地址。程序计数器是控制单元的一部分&#xff0c;它的作用是确保程序能够按正确…

用 Python 和 AkShare 进行个股数据清洗:简易多功能方法

标题:用 Python 和 AkShare 进行个股数据清洗:简易多功能方法 简介: 本文介绍了如何使用 Python 和 AkShare 库对个股数据进行清洗和处理。个股数据经常需要进行清洗以用于分析、建模或可视化。我们将介绍一些简单但功能强大的方法,包括数据加载、缺失值处理、重复值检测和…

心理应用工具包 psychtoolbox 绘制小球走迷宫

psychtoolbox 是 MATLAB 中的一个工具包&#xff0c;对于科研人员设计实验范式来说是不二之选&#xff0c;因为它可以操作计算机的底层硬件&#xff0c;精度可以达到帧的级别。 文章目录 一、实验目的二、psychtoolbox 的下载安装三、Psychtoolbox 的基本使用四、完整代码 一、…

不同数据类型的内部秘密----编程内幕(2)

Q&#xff1a; char类型是如何被当成int处理的&#xff1f; A: 我们可以看看char类型变量在何时才会被当做int处理. #include <stdio.h>int main() {char ch;ch a;printf("%c\n", ch);return 0; } 汇编代码如下&#xff1a; hellomain:0x100000f60 <0&…

修改了环境变量~/.bashrc后 报错 命令 “dirname” 可在以下位置找到 * /bin/dirname * /usr/bin/dirname

问题如下&#xff1a; 修改了~/.bashrc后加入了环境变量之后报错&#xff0c;如下所示 (base) jiedell:~/桌面$ source ~/.bashrc 命令 “dirname” 可在以下位置找到 * /bin/dirname * /usr/bin/dirname 由于 /usr/bin:/bin 不在 PATH 环境变量中&#xff0c;故无法找到该…

在Linux上安装并启动Redis

目录 安装gcc环境 上传redis文件方法一&#xff1a;sftp 上传redis文件方法二&#xff1a;wget 启动redis-server ctrlc关闭redis-server 参考文章&#xff1a;Linux 安装 Redis 及踩坑 - 敲代码的阿磊 - 博客园 (cnblogs.com) 准备&#xff1a;打开VMware Workstation&am…

pair对组创建

创建方式1: pair<type,type> p(value1,value2); pair<string, int> p("Tom", 20); cout << "name:" << p.first << "age:" << p.second << endl; 创建方式2: pair<type,type> pmake_pair(v…

mysql权限分类

USAGE --无权限,只有登录数据库,只可以使用test或test_*数据库 ALL --所有权限 select/update/delete/super/slave/reload --指定的权限 with grant option --允许把自己的权限授予其它用户(此用户拥有建立账号的权限) 权限级别&#xff1a; 1、. &#xff0d;&#xff0d;全…

C语法:for循环执行顺序

今天下编写代码时遇到了如下情况&#xff1a;期望是输出 i1,j2 i1,j3 i1,j4 i2,j3 int main(void) {int i,j;for(i1;i<3;i){for(j1;j!i&&j<4;j){printf("i%d,j%d\n",i,j);}}return 0; }实际输出结果&#xff1a; i2,j1 分析上述代码&#xff1a…

商务分析方法与工具(九):Python的趣味快捷-Pandas处理公司财务数据集思路

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…

LangChain:大模型框架的深度解析与应用探索

在数字化的时代浪潮中&#xff0c;人工智能技术正以前所未有的速度蓬勃发展&#xff0c;而大模型作为其中的翘楚&#xff0c;以生成式对话技术逐渐成为推动行业乃至整个社会进步的核心力量。再往近一点来说&#xff0c;在公司&#xff0c;不少产品都戴上了人工智能的帽子&#…

初识C语言——第十八天

循环while/do while while 语法结构 while(表达式) 循环语句; break:在while循环中&#xff0c;break用于永久的终止循环 continue:在while循环中&#xff0c;continue的作用是跳过本次循环continue后面的代码 直接去判断部分&#xff0c;看是否进行下一次循环。 注意事项…

Logstash详解

Logstash详解&#xff1a;构建强大日志收集与处理管道的利器 一、引言 在大数据和云计算的时代&#xff0c;日志数据作为企业运营和故障排查的重要依据&#xff0c;其收集、处理和分析能力显得尤为重要。Logstash&#xff0c;作为一款强大的日志收集、处理和转发工具&#xf…

[AI OpenAI-doc] 安全最佳实践

使用我们的免费 Moderation API OpenAI 的 Moderation API 是免费使用的&#xff0c;可以帮助减少您完成中不安全内容的频率。或者&#xff0c;您可能希望开发自己的内容过滤系统&#xff0c;以适应您的使用情况。 对抗性测试 我们建议对您的应用进行“红队测试”&#xff0…

即插即用篇 | YOLOv8引入轴向注意力 Axial Attention | 多维变换器中的轴向注意力

本改进已集成到 YOLOv8-Magic 框架。 我们提出了Axial Transformers,这是一个基于自注意力的自回归模型,用于图像和其他组织为高维张量的数据。现有的自回归模型要么因高维数据的计算资源需求过大而受到限制,要么为了减少资源需求而在分布表达性或实现的便捷性上做出妥协。相…

解决wangEditor使用keep-alive缓存后,调用editor.cmd.do()失败

前提&#xff1a;wangeditor版本&#xff1a;4.7.11 vue版本&#xff1a;vue2 问题&#xff1a;在使用wangeditor富文本编辑器时&#xff0c;需求需要通过点击一个按钮&#xff0c;手动插入定义好的内容&#xff0c;所以使用了 editor.cmd.do(insertHTML, ....) 方法新增…

青少年软件编程(Python)等级考试试卷(二级)2024年3月

2024.03电子学会青少年软件编程 Python二级 等级考试试卷 一、单选题 1.期末考试结束了&#xff0c;全班的语文成绩都储存在列表score 中&#xff0c;班主任老师请小明找到全班最高分&#xff0c;小明准备用Python 来完成&#xff0c;以下哪个选项&#xff0c;可以获取最高分…

较难题 链表的回文结构

本题来自链表的回文结构_牛客题霸_牛客网 (nowcoder.com) 234. 回文链表 - 力扣&#xff08;LeetCode&#xff09; 题面&#xff1a; 对于一个链表&#xff0c;请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法&#xff0c;判断其是否为回文结构。 给定一个链表的头…