HDFS分布式存储中NameNode 和DataNode 有什么区别?

时间:2022-06-13 13:41:45

随着互联网不断得突飞猛进, 数据就逐渐演变为科技和经济发展的核心 。更是 对于互联网时代的人类和企业来说,是至关重要的,可能对于普通人来说没有太大影响,但是对于国家和大型企业来说,数据就是其命脉,人工智能就是对数据海量化的最好证明之一。

所以,数据存储的稳定在一定程度上就可以决定人类经济的高度。

HDFS分布式存储中NameNode 和DataNode 有什么区别?

“但是, 许多人还没有搞清楚个人电脑互联网是什么,移动互联网在这里,当我们还没搞清楚移动互联网的时候,大数据时代又来了, " 马云在离任时说。大数据的应用已经进入了一个快速发展的时期,未来一种新的商业模式的出现有望带来更大的发展。

由于以人工智能、5G 和物联网为主导的新一轮信息技术革命,数据中心的迅速增长导致存储产业链的需求大幅增加。在全球和中国数据存储需求迅速增长的背后,必然伴随着产业链的繁荣。

目前市场中,HDFS分布式存储系统是很热门的讨论话题,各种企业也倾向于搭建分布式存储系统。

那么,什么是HDFS 分布式存储?

HDFS分布式存储公链是一套完整的个人数据存储解决方案,它由无数的节点以 p2p的形式组成一个数据存储阵列,采用POC+POST的双重共识机制来识别及分配奖励,采用加密机制对数据传输及存储过程进行保护形成一套安全、高效、经济的个人数据存储全套解决方案。

分布式存储框架

分布式存储技术的实现,往往离不开底层的分布式存储框架。根据其存储的类型,可分为块存储,对象存储和文件存储。在主流的分布式存储技术中,HDFS 属于文件存储,Swift 属于对象存储,而Ceph 可支持块存储、对象存储和文件存储,故称为统一存储。

HDFS分布式存储中NameNode 和DataNode 有什么区别?

HDFS 是Hadoop 核心组成之一,是分布式计算中数据存储管理的基础,被设计成适合运行在通用硬件上的分布式文件系统。

HDFS 的功能模块

(1) Client

Client 是用户与HDFS 交互的手段,当文件上传 HDFS 的时候,Client 将文件切分成一个一个的 Block ,然后进行上传;Client通过与NameNode 交互,来获取文件的位置信息;与 DataNode 交互,读取或者写入数据;Client 还可以提供NameNode 格式化等一些命令来管理HDFS ;同时,Client 可以通过对HDFS 的增删改查等操作来访问HDFS 。

(2) NameNode

NameNode 就是HDFS 的Master 架构,它维护着文件系统树及整棵树内所有的文件和目录,HDFS 文件系统中处理客服端读写请求、管理数据块(Block )的映射信息、配置副本策略等管理工作由NameNode 来完成。

(3) DataNode

NameNode 下达命令,DataNode 执行实际操作。DataNode 表示实际存储的数据块,同时可以执行数据块的读写操作。

(4) Secondary NameNode

Secondary NameNode 的功能主要是辅助NameNode ,分担其工作量;在紧急情况下可以辅助恢复NameNode ,但是它不能替换NameNode 并提供服务。

HDFS 的优势

  • 容错性:数据自动保存多个副本。通过增加副本的形式,提高容错性。其中一个副本丢失以后,可以自动恢复。
  • 可以处理大数据:能够处理数据规模达到GB 、TB 甚至PB 级别的数据;能够处理百万规模以上的文件数量。
  • 可以构建在廉价的机器上,通过多副本机制,提高可靠性。

HDFS 的特点

  • 故障检测和恢复 – 由于 HDFS 包含大量产品硬件,组件故障频繁。因此, HDFS 应具有快速自动故障检测和恢复的机制。
  • 数据集的管理 – HDFS 每个群集都有数百个节点来管理具有大型数据集的应用程序。
  • 数据硬件处理 – 当计算在数据物理附近时,可以高效地完成请求的任务。特别是在涉及大量数据集时,它减少了网络流量并提高了吞吐量。

HDFS分布式存储中NameNode 和DataNode 有什么区别?

HDFS 的功能

  • 数据的分布式存储和处理。
  • Hadoop 提供了一个命令接口来与 HDFS 进行交互。
  • namenode 和 datanode 的内置服务器可帮助用户轻松检查群集的状态。
  • 对文件系统数据的流式处理访问。
  • HDFS 提供文件权限和身份验证。

HDFS的架构

下面给出的是 Hadoop 文件系统的体系结构:

HDFS 的元素:

(1) Namenod

Namenode 是包含 GNU/Linux 操作系统的产品硬件。它是一种可以在产品硬件上运行的软件。具有 Namenode 的系统充当主服务器,并执行以下任务。

  • 管理文件系统命名空间
  • 调节客户端对文件的访问
  • 执行文件系统操作,如重命名、关闭和打开文件和目录。

(2) Datanode

Datanode 是具有 GNU/Linux 操作系统和数据内核软件的产品硬件。对于 cluster (群集)中的每个产品硬件 / 系统,都将有一个数据节点,这些节点管理其系统的数据存储。

根据客户端请求在文件系统上执行读写操作。

根据 namenode 的说明执行块创建、删除和复制等操作。

(3) Block

通常,用户数据存储在 HDFS 的文件中。文件系统中的文件将分为一个或多个片段存储在单个数据节点中。这些文件段称为block 。换句话说, HDFS 可以读取或写入的最小数据量称为 block 。默认块大小为 64MB ,可以根据 HDFS 配置进行更改。