Chapter3_Hadoop 分布式文件系统
分布式文件系统:跨多台计算机存储的文件系统
3.1 HDFS 的设计
超大文件
流式数据访问:一次写入、多次读取
商用硬件
低时间延迟的数据访问
大量的小文件
多用户写入、任意修改文件
3.2 HDFS 的概念
3.2.1 数据块
block,默认 128MB。
HDFS 中的块为什么这么大?
最小化寻址开销。使寻址时间仅占传输时间的 1%。如果寻址时间约为 10ms,而传输速率为 100MB/s,为了使寻址时间仅占传输时间的 1%,我们要将块大小设置约为100MB。默认的块大小 128MB。 块的大小:10ms×100×100M/s = 100M。
列出文件系统中各个文件由哪些块构成 hdfs fsck / -files -blocks
3.2.2 namenode 和 datanode
namenode:管理文件系统的命名空间;维护文件系统树及整棵树内所有的文件和目录;记录每个文件中各个块所在的数据节点信息
client:代表用户通过与 namenode 和 datanode 交互来访问整个文件系统
datanode:文件系统的工作节点。根据需要存储并检索数据块,定期向 namenode 发送它们所存储的数据块列表
运行 namenode 服务的机器毁坏,文件系统上所有的文件将会丢失,因此,对 namenode 实现容错非常重要。 Hadoop 的容错机制:
- 备份组成文件系统元数据持久状态的文件。将持久状态写入本地磁盘的同时,写入一个远程挂载的网络文件系统(NFS)
- 运行一个辅助的 namenode。定期合并编辑日志与命名空间镜像,防止编辑日志过大。
3.2.3 块缓存
对于频繁访问的 datanode 磁盘上的文件,可以将对应的块缓存在 datanode 的内存中。
3.2.4 联邦 HDFS
添加 namenode 扩展,每个 namenode 管理文件系统命名空间中的一部分(命名空间卷 namespace volume),命名空间卷由命名空间的元数据和一个数据块池(block pool)组成,数据块池下包含该命名空间下文件的所有数据块。
集群中的 datanode 需要注册到每个 namenode,并且存储着来自多个数据块池中的数据块。
3.2.5 HDFS 的高可用性
Hadoop2: 活动 namenode 、备用 namenode
3.3 命令行接口
fs.defaultFS
设置为 hdfs://localhost/ 用于设置 Hadoop 的默认文件系统
dfs.replication
文件副本个数
3.4 Hadoop 文件系统
列出本地文件系统根目录下的文件:hadoop fs -ls file:///
3.6 数据流
- 本文作者: Kelly Liu
- 本文链接: http://tiantianliu2018.github.io/2021/03/22/Hadoop权威指南-Chapter3-Hadoop分布式文件系统/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!