HDFS- 架构图详细解析

HDFS:我们至少应该学习以下内容

介绍

HDFS(The Hadoop Distributed File System),是被设计成适合运行在通用硬件(commodity hardware)上的 Hadoop 的分布式文件系统。它与其他的分布式系统有非常显著的不同,首先 HDFS 具有高容错性,并且它可以被部署到廉价的硬件上。此外,HDFS 提供对应用程序数据的高吞吐量访问,适用于具有大型数据集的应用程序。

HDFS架构图

HDFS架构图

名词解释

关键词含义
namenode名字节点,管理文件系统命名空间的主服务器。
datanode数据节点,存储文件块
replication文件块的副本,目的是确保数据存储的可靠性
rack翻译为“机架”,可以理解为两个处于不同地方的机群,每个机群内部有自己的连接方式
Client凡是通过指令或代码操作的一端都是客户端
Client的Read从HDFS下载文件到本地
Client的Write上传文件到HDFS上

DataNode 中存储的不是单个文件,而是文件块(Block),在 HDFS 中,每个大文件会拆分成多个 Block,然后将这些 Block 散布存储在不同的 DataNode 中,并且每个 Block 会有多个复制,也会存储到其他的 DataNode中。

上图分别解释了“读”和“写”两种操作:

  1. 当有客户端要向 HDFS 写入文件时,图中将文件拆分的 Block 写入到了两个机架的 DataNode 中,一般情况下就是两个机架的两个物理主机中,可以看出文件数据没有经过 NameNode。数据写入的过程见(“七、数据复制流水线”)

  2. 当有客户端要从 HDFS 读取文件时,会将操作命令传向 NameNode,然后 NameNode 转为对应的数据块的操作,指挥相应的 DataNode 将所需数据返回给客户端。

注意
还有一个节点图中没有显示,叫作 Secondary Namenode,是辅助后台程序,主要负责与 NameNode 进行通信,定期保存 HDFS 元数据的快照及备份其他 NameNode 中的内容,日常 Standby,当 NameNode 故障时顶替 NameNode 使用。

NameNode & DataNodes

NameNodeDataNodeHDFS 系统的重要知识点。HDFSmaster/slave 体系结构。一个 HDFS 集群是由单个 NameNode 和众多 DataNode 组成,文件会被分成一个或多个块,这些块存储在一组 DataNode 中。

因为 HDFS是用 Java 语言搭建的,所以只要是支持 Java 语言的机器都可以运行 NameNodeDataNode。并且因为 Java 的高可移植性,HDFS 也具有非常广泛的应用范围。一种典型的 HDFS 部署模式是指定一个物理主机运行 NameNode,然后其余的机器运行 DataNode,在实际部署情况中,一般都是一台主机部署一个 DataNode

群集中存在单个 NameNode 极大地简化了系统的体系结构。 NameNode 是所有 HDFS 元数据的决定者和存储库。系统的这种设计使用户数据永远不会流经 NameNode,可理解 NameNode 为整个系统的中枢。

NameNode

NameNode(nn) 是管理文件系统命名空间的Master(主服务器),用于管理客户端对文件的访问,执行文件系统命名空间操作,如打开,关闭和重命名文件和目录。

  • 管理HDFS的名称空间
  • 配置副本策略
  • 管理数据块(Block) 映射信息
  • 处理客户端的读写请求

NameNode 做着有关块复制的所有决定,它定期从群集中的每个 DataNode 接收 HeartbeatBlockreport。收到 Heartbeat 意味着 DataNode正常运行,Blockreport 包含 DataNode 上所有块的列表。

DataNode

DataNode 是Slave。通常是群集中每个节点一个,用于存储数据,负责提供来自文件系统客户端的读写请求。NameNode下达命令,DataNode执行实际的操作。如执行块创建,删除和复制。

  • 存储实际的数据块
  • 执行数据库的读/写操作
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

piepis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值