Hadoop -- 分布式文件系统

1、分布式文件系统的思想:文件切分的思想(分而治之)

当文件存储在磁盘中,不仅效率比较低,并且文件的大小可能会超出单机的存储的范围。

所以分而治之的思想就是:

不管文件有多大,所有的文件都是由字节数组构成,当想要切分文件的时候,就是将一个字节数组切分成多份,当需要使用这份数据的时候,就可以根据偏移量将字节数据拼接在一起,此时数据又可以继续使用。

2、Block的拆分标准:

1、block是磁盘进行数据读/写的最小单元,数据被切分后的一个整体叫做块。在Hadoop1.0的版本中,默认的大小是64M,在Hadoop2.0以及后面的版本中,默认的大小是128M,这样的目的是达到最小的寻址开销。

2、在同一文件中,每一个block的大小是基本一致的,除了最后节点之外。然么对于不同的文件的block的大小是可以不一样的,不同的文件的大小可以设置成不同数量的block数量。

3、数据块的个数=Ceil(文件大小/每个块的大小)

3、对于block需要等大的原因:

1、可以达到最小的寻址的开销。

2、可以再计算的时候降低计算的复杂度。

3、可以通过偏移量来确定block的位置,并来拉取数据。

4、对于相同的文件block因该是等大的。

5、对于拉去的时间会基本一致。

注意事项

a. 只要有任意一个块丢失,整个数据文件被损坏

​ b. HDFS中一旦文件被存储,数据不允许被修改 ​ 修改会影响偏移量,修改会导致数据倾斜(单节点数据量过多),修改数据会导致蝴蝶效应 ​

c. 但是可以被追加(一般不推荐) ​ 追加设置需要手动打开 ​

d. 一般HDFS存储的都是历史数据.所以将来Map Reduce都用来进行离线数据的处理 ​

f. 块的大小一旦文件上传之后就不允许被修改 128M-512M

4、block保证数据的安全:

a. 只要有任意一个块丢失,整个数据文件被损坏 ​

b. 肯定要对存储数据做备份 ​

c. HDFS是直接对原始数据进行备份的,这样能保证恢复效率和读取效率 ​

d. 备份的数据肯定不能存放在一个节点上,使用数据的时候可以就近获取数据 ​

f. 备份的数量要小于等于节点的数量

g. 每个数据块默认会有三个副本,相同副本是不会存放在同一个节点上 ​

h. 副本的数量可以变更 ​ 可能近期数据被分析的可能性很大,副本数可以多设置几个 ​ 后期数据很少被分析,可以减少副本数

相关推荐
一只栖枝2 小时前
华为 HCIE 大数据认证中 Linux 命令行的运用及价值
大数据·linux·运维·华为·华为认证·hcie·it
喂完待续6 小时前
Apache Hudi:数据湖的实时革命
大数据·数据仓库·分布式·架构·apache·数据库架构
青云交6 小时前
Java 大视界 -- 基于 Java 的大数据可视化在城市交通拥堵治理与出行效率提升中的应用(398)
java·大数据·flink·大数据可视化·拥堵预测·城市交通治理·实时热力图
计艺回忆路8 小时前
从Podman开始一步步构建Hadoop开发集群
hadoop
还是大剑师兰特12 小时前
Flink面试题及详细答案100道(1-20)- 基础概念与架构
大数据·flink·大剑师·flink面试题
yh云想14 小时前
《从入门到精通:Kafka核心原理全解析》
分布式·kafka
1892280486115 小时前
NY243NY253美光固态闪存NY257NY260
大数据·网络·人工智能·缓存
武子康16 小时前
大数据-70 Kafka 日志清理:删除、压缩及混合模式最佳实践
大数据·后端·kafka
CCF_NOI.17 小时前
解锁聚变密码:从微观世界到能源新未来
大数据·人工智能·计算机·聚变
杨荧18 小时前
基于Python的电影评论数据分析系统 Python+Django+Vue.js
大数据·前端·vue.js·python