首页 > 其他分享 >haddoob分布式文件系统架构

haddoob分布式文件系统架构

时间:2022-08-22 19:44:23浏览次数:80  
标签:文件 存储 架构 数据 数组 分布式文件系统 haddoob 节点

一、apache

Apache基金会 是专门为支持开源软件项目而办的一个非盈利性组织

二、分布式文件系统

1、FS File System

文件系统时极域硬盘之上的文件管理的工具

我们用户操作文件系统可以和硬盘进行解耦

2、DFS Distributed File System

分布式文件系统

将我们的数据存放在多台电脑上存储

分布式文件系统有很多,HDFS(Hadoop Distributed FileSyetem)是Hadoop自带的分布式文件系统

HDFS是mapreduce计算的基础

三、文件切分的思想(引出分而治之的思想 第一个核心思想)

a. 文件存放在一个磁盘上效率肯定是最低的

读取效率低

如果文件特别大会超出单机的存储范围

b. 字节数组

文件在磁盘真实存储文件的抽象概念

数组可以进行拆分和组装,源文件不会收到影响

c. 切分数据

对字节数组进行切分

d. 拼接数据

按照数组的偏移量将数据连接到一起,将字节数组连接到一起

e. 偏移量

当前数据在数组中的相对位置,可以理解为下标

数组都有对应的索引,可以快速定位数据

f. 数据存储的原理:

不管文件的大小,所有的文件都是由字节数组构成

如果我们要切分文件,就是将一个字节数组分成多份

我们将切分后的数据拼接到一起,数据还可以继续使用

我们需要根据数据的偏移量将他们重新拼接到一起

四、Block拆分标准

数据块Block

a. 是磁盘进行数据 读/写的最小单位,数据被切分后的一个整体被称之为块 ​ b. 在Hadoop 1默认大小为64M,在Hadoop 2及其之后默认大小为128M块,这么大是为了最小化寻址开销 ​ c. 同一个文件中,每个数据块的大小要一致除了最后一个节点外 ​ 不同文件中,块的大小可以不一致 ​ 文件大小不同可以设置不同的块的数量 ​ HDFS中小于一个块的大小的文件不会占据整个块的空间 ​ d. 真实情况下,会根据文件大小和集群节点的数量综合考虑块的大小 ​ e. 数据块的个数=Ceil(文件大小/每个块的大小)

拆分的数据块需要等大

a. 数据计算的时候简化问题的复杂度(否则进行分布式算法设计的时候会因为数据量不一很难设计) ​ b. 数据拉取的时候时间相对一致 ​ c. 通过偏移量就知道这个块的位置 ​ d. 相同文件分成的数据块大小应该相等

注意事项

a. 只要有任意一个块丢失,整个数据文件被损坏 ​ b. HDFS中一旦文件被存储,数据不允许被修改 ​ 修改会影响偏移量

修改会导致数据倾斜(单节点数据量过多)

修改数据会导致蝴蝶效应 ​ c. 但是可以被追加(一般不推荐) ​ 追加设置需要手动打开 ​ d. 一般HDFS存储的都是历史数据.所以将来Map Reduce都用来进行离线数据的处理 ​ f. 块的大小一旦文件上传之后就不允许被修改 128M-512M

五、Block数据安全

a. 只要有任意一个块丢失,整个数据文件被损坏 ​ b. 肯定要对存储数据做备份 ​ c. HDFS是直接对原始数据进行备份的,这样能保证恢复效率和读取效率 ​ d. 备份的数据肯定不能存放在一个节点上,使用数据的时候可以就近获取数据 ​ f. 备份的数量要小于等于节点的数量 ​ g. 每个数据块默认会有三个副本,相同副本是不会存放在同一个节点上 ​ h. 副本的数量可以变更 ​ 可能近期数据被分析的可能性很大,副本数可以多设置几个 ​ 后期数据很少被分析,可以减少副本数

六、Block的管理效率

需要专门给节点进行分工

  • 存储 DataNode 实际存储数据的节点

  • 记录 NameNode

  • 日志 Secondary NameNode

标签:文件,存储,架构,数据,数组,分布式文件系统,haddoob,节点
From: https://www.cnblogs.com/Nana7mi/p/16614024.html

相关文章

  • 架构图
    最近在画项目的技术架构图,找到了一些不错的模板,分享给大家~画图工具:ProcessOn。本文内容如下:   业务架构图定义:描述系统对用户提供了什么业务功能,画的时候偏向......
  • 系统架构师:软件工程
    1.GB8566-88(《软件工程国家标准——计算机软件开发规范》)中将软件生命周期划分为8个阶段:1. 可行性研究与计划确定开发此软件的必要性确定软件的目标、范围、风......
  • Spring 05: 用DI(依赖注入)优化Spring接管下的三层项目架构
    背景用注解改造前面Spring博客集里(指Spring02)Spring接管下的三层项目架构对前面Spring博客集里(指Spring04)@Controller+@Service+@Repository3个注解的用法......
  • 【系统架构设计师】系统架构师的知识结构
                      ......
  • 单体架构(Monolithic Architecture)
    一、软件发展趋势模块化(Modular)模块化编程是在20世纪60年代末和70年代提出的解决方案。它是从类到更粗粒度的代码单元显式定义的演变。编程语言以不同的显式等级实现模......
  • 现代企业架构框架-技术架构
    现代企业架构框架:https://mp.weixin.qq.com/s/SlrEu0_t0slijrNZ6DP4Ng业务架构:https://mp.weixin.qq.com/s/zQCjiHuxFvAg5QiOAuLAcQ应用架构:https://mp.weixin.qq.com......
  • 现代企业架构框架-数据架构
    现代企业架构框架:https://mp.weixin.qq.com/s/SlrEu0_t0slijrNZ6DP4Ng业务架构:https://mp.weixin.qq.com/s/zQCjiHuxFvAg5QiOAuLAcQ应用架构:https://mp.weixin.qq.com......
  • Spring 02: Spring接管下的三层项目架构
    业务背景需求:使用三层架构开发,将用户信息导入到数据库中目标:初步熟悉三层架构开发核心操作:开发两套项目,对比Spring接管下的三层项目构建和传统三层项目构建的区别注意......
  • 对保温系统与电梯系统进行架构设计
    一、 实验内容使用面向对象设计方法对保温系统与电梯系统进行架构设计。二、实验目的 学会如何分析一个系统的架构并进行设计,学会用面向对象方法实现架构设......
  • 集群架构的配置
    集群架构之准备工作(1)原创 Cloud研习社 Cloud研习社 2022-08-1607:31 发表于山东收录于合集#一站式教程121个#云计算33个#计算机37个#linux49个在对各......