Hadoop实战 HDFS基础&HDFS架构

本文深入解析HDFS(Hadoop分布式文件系统)的基础架构,包括数据块(Block)、元数据节点(NameNode)、数据节点(DataNode)及从元数据节点(Secondary NameNode)的功能与作用。阐述了HDFS采用的master/slave架构,以及NameNode和DataNode如何协同工作,确保文件系统的高效运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

目录

  1. HDFS基础
  2. HDFS架构

1.HDFS基础

  • 数据块(BLOCK)

       HDFS默认的最基本的存储单位是数据块(Block),默认块大小是64MB。

  •  元数据节点(NameNode)

        NameNode的职责是管理文件系统的命名空间,他将所有的文件和文件夹的元数据保存在一个文件系统树里,如一个文件包括哪些数据块,这些数据块分布在哪些数据节点上,这些数据都要存储下来。 

  • 数据节点(DataNode)

         DataNode是文件系统中真正存储数据的地方,一个文件被拆分成对个Block后,会将这些Block存储在对应的数据节点上。客户端向NameNode发起请求,然后到对应的数据节点上写入或读出对应的数据Block。 

  • 从元数据节点(Secondary  NameNode)         

       Secondary NameNode 并不是NameNode节点出现问题时的备用节点,他和元数据节点分别负责不同的功能。其主要的功能就是周期性的将NameNode的namespace image和edit log合并,以防日志文件过大。合并后的namespace image也在元数据节点保存了一份,以防在NameNode失效的时候进行恢复。

2.HDFS架构

                                             

 

 
  •  概述

        HDFS采用master/slave架构。一个HDFS集群由一个NameNode和一定数量的DataNode组成。NameNode是一个中心服务器,负责管理文件系统的命名空间(namespace)以及客户端对文件的访问。集群中的DataNode一般输一个节点对应一个,负责管理他所在节点上的存储数据。HDFS暴露了文件系统的命名空间,用户能够以文件的形式在上面存储数据。

       从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组的DataNode上。NameNode执行文件系统的命名空间操作,比如打开,关闭,重命名文件或目录。他也负责确定数据块到具体DataNode的映射。DataNode负责处理文件系统客户端的读写请求,在NameNode的同一调度下进行数据块的创建删除和复制。

  • 架构组件功能

       NameNode和DataNode被设计成可以在普通的商用机器上运行,这些机器一般云形成GNU/Linux操作系统。由于采用了可以执行极强的Java语言,HDFS可以部署到多种类型的机器上,任何支持Java的机器都可以部署NameNode和DataNode。(一个典型的部署场景时一台机器上只运行一个NameNode实例,而集群中的其他机器分别运行一个DataNode实例。)

       文件系统的命名空间:HDFS支持传统的层次型文件组织结构。用户或者应用程序可以创建目录,然后将文件保存在这些目录里。文件系统的命名空间的层次结构大多数现有的文件系统类似,用户可以创建删除移动和重命名文件。当前,HDFS不支持用户磁盘配额和访问权限控制,也不支持硬链接和软链接。但是HDFS架构并不妨碍对这些特性的实现。

       NameNode负责维护文件系统的命名空间,任何对文件系统命名空间或属性的修改都将被NameNode记录下来。应用程序可以设置HDFS保存的文件的副本数目,文件副本的数目称为文件的副本洗漱,这个信息也是由NameNode保存的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值