HDFS学习2.0

3.4  HDFS体系结构

 3.4.1 HDFS体系结构概述

HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群包括一个名称节点(NameNode)和若干个数据节点(DataNode)。

名称节点作为中心服务器,负责管理文件系统的命名空间及客户端对文件的访问。
集群中的数据节点一般是一个节点运行一个数据节点进程,负责处理文件系统客户端的读 / 写请求,在名称节点的统一调度下进行数据块的创建、删除和复制等操作。每个数据节点的数据实际上是保存在本地 Linux 文件系统中的。

 3.4.2 HDFS命名空间管理

HDFS的命名空间包含目录、文件和块。

HDFS1.0体系结构中,在整个HDFS集群中只有一个命名空间,并且只有唯一一个名称节点,该节点负责对这个命名空间进行管理。

HDFS使用的是传统的分级文件体系,因此,用户可以像使用普通文件系统一样,创建、删除目录和文件,在目录间转移文件,重命名文件等。

 3.4.3 通信协议

HDFS 是一个部署在集群上的分布式文件系统,很多数据需要通过网络进行传输 :
所有的 HDFS 通信协议都是构建在 TCP/IP 协议 基础之上的
客户端通过一个可配置的端口向名称节点主动发起 TCP 连接,并使用 客户端协议 与名称节点进行交互
名称节点和数据节点之间则使用 数据节点协议 进行交互
客户端与数据节点的交互是通过 RPCRemote Procedure Call 来实现的。在设计上, 名称节点不会主动发起 RPC ,而是响应来自客户端和数据节点的 RPC 请求

通信方式

1)客户端与名字节点、数据节点之间主要是通过RPC的方式进行通信

2)名字节点与第二名字节点之间主要通过http的方式进行通信

3)数据节点之间主要是通过socket的方式进行通信传输数据

 3.4.4 客户端

客户端是用户操作 HDFS 最常用的方式, HDFS 在部署时都提供了客户端
HDFS 客户端是一个库,暴露了 HDFS 文件系统接口,这些接口隐藏了 HDFS 实现中的大部分复杂性
严格来说,客户端并不算是 HDFS 的一部分
客户端可以支持打开、读取、写入等常见的操作,并且提供了类似 Shell 的命令行方式来访问 HDFS 中的数据
此外, HDFS 也提供了 Java API ,作为应用程序访问文件系统客户端编程接口

 3.4.5 HDFS体系结构的局限性

HDFS只设置唯一一个名称节点,这样做虽然大大简化了系统设计,但也带来了一些明显的局限性,具体如下:

1命名空间的限制:名称节点是保存在内存中的,因此,名称节点能够容纳的对象(文件、块)的个数会受到内存空间大小的限制。

2性能的瓶颈:整个分布式文件系统的吞吐量,受限于单个名称节点的吞吐量。

3隔离问题:由于集群中只有一个名称节点,只有一个命名空间,因此,无法对不同应用程序进行隔离。

4集群的可用性:一旦这个唯一的名称节点发生故障,会导致整个集群变得不可用。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值