Hadoop分布式文件系统(HDFS)的基本术语:数据块、节点、客户端和通信协议

2020年11月2日14:30:35Hadoop分布式文件系统(HDFS)的基本术语:数据块、节点、客户端和通信协议已关闭评论

HDFS的基本术语包括数据块、命名节点、数据节点、从命名节点、命名空间、客户端和通信协议。

1. 数据块

文件系统管理数据的最小单位不是字节,而是数据块。在大数据环境下,管理的文件体量大幅度增加,数据块的体量较以往也有大幅度增加,从原来的以KB为计量单位,直接跃升到以MB为计量单位。Hadoop1.×的数据块大小是64MB,Hadoop2.×的数据块大小为128MB。这样的数据块体量明显大于普通文件系统中的数据块体量(如Linux为1KB),增加数据块体量的目的是为了减少寻址开销。即使如此,对于HDFS管理的最小的GB级别文件,一个文件至少也要占数百个数据块。

2. 命名节点和数据节点

在任何一个文件管理系统中,都是将一小部分存储单元用于存储管理信息,而将绝大部分存储单元用于存储数据。在HDFS中,存储管理信息的那部分节点称为命名节点(Name Node),存储数据的那部分节点称为数据节点(Data Node)。

命名节点维护着整个文件系统的文件目录树,包括记录文件树信息和记录对文件树的各种操作信息。这两部分信息分别记录在两个文件中,即镜像文件(FsImage)和日志文件(EditLog)。

数据节点是HDFS的工作节点,负责数据的存储和读取,可以根据客户端或命名节点的调度来进行数据的存储和检索,并且向命名节点定期发送自己所存储的块的列表。

3. 从命名节点

由于文件很大,导致镜像文件开始时就很大(通常达GB级别以上),而日志文件则随着运行时不断记录所发生的文件操作而持续变大。HDFS的所有更新操作均写入日志文件,而不直接写入镜像文件,因此不能让日志文件太大,否则会影响效率,这是引入从命名节点的原因之一。

4. 命名空间

HDFS的命名空间包括目录、文件和块。命名空间管理是指对目录、文件和块进行类似文件系统的新建、修改、删除等基本操作。因此,命名空间所管理的资源是有限的。

5. 客户端

客户端可以有3种呈现形式:可以通过命令行工具访问HDFS的数据;也可以用应用程序的方式进行访问,此时HDFS提供了一套Java API,方便编程实现对文件的各种操作;还可以通过Web界面来查看整个文件系统的情况,包括集群概况,命名节点、数据节点的信息、快照、运行进程,浏览文件系统等,方法是登录http://[NameNodeIP]:50070。

6. 通信协议

HDFS部署在集群上,它们之间的通信协议是构建在TCP/IP协议基础之上的。

客户端通过一个可配置的端口向命名节点主动发起TCP链接,并使用客户端协议与命名节点进行交互;命名节点与数据节点之间则使用数据节点协议进行交互;客户端与数据节点的交互是通过远程过程调用(Remote Procedure Call,RPC)来实现的。

命名节点不会主动发起RPC,而是响应来自客户端和数据节点的RPC请求。

  • 版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。