HDFS Federation联邦机制

简介: HDFS Federation联邦机制

1 当前HDFS体系架构

1.1 简介

当前的HDFS架构有两个主要的层:

➢ 命名空间 ( namespace )

HDFS体系结构中的命名空间层由文件,块和目录组成。该层支持与名称空间相关的文件系统操作,例如创建,删除,修改和列出文件和目录。

➢ 块存储层 ( Block Storage )

块存储层包括两个部分:

块管理: NameNode执行块管理。块管理通过处理注册和定期心跳来提供DataNode群集成员身份。它处理块报告并支持与块相关的操作,如创建,删除,修改或获取块位置。它还维护块的位置,副本位置。为未复制的块管理块复制,并在已复制的块中删除。

存储: DataNode通过在本地文件系统上存储块并提供读/写访问权限来管理存储空间。


6.1.2 局限性

当下的HDFS体系结构仅允许单个NameNode维护文件系统名称空间。注意HA体系中虽然说允许多个NameNode,但是他们所维护的是同一套文件系统名称空间。这种体系目前存在着一些弊端和局限性:

➢ DataNode磁盘存储空间不够增加节点,NameNode内存不够是否可以无限扩容。一种

是DataNode横向扩展机器增加节点,一种是纵向扩展单机加内存。

➢ 由于名称空间和存储层的紧密耦合,NameNode的替代实现很困难。这限制了其他服务直接使用块存储。唯一的NameNode成了唯一入口。

➢ 文件系统的操作还限于NameNode一次处理的任务数。因此,群集的性能取决于NameNode吞吐量。

➢ 同样,由于使用单个名称空间,因此使用群集的占用者组织之间没有隔离。


2 HDFS Federation架构

2.1 简介

Federation中文意思为联邦,联盟,是NameNode之间的Federation,也就是集群中会有多个NameNode。多个NameNode的情况意味着有多个namespace。

注意,这区别于HA模式下的多NameNode,HA中它们是拥有着同一个namespace。


Federation体系中多个namenode之间相互独立且不需要互相协调,各自分工,管理自己的区域。每个DataNode要向集群中所有的namenode注册,且周期性地向所有namenode发送心跳和块报告,并执行来自所有namenode的命令。

42a4cff537f545178db41b844af031b6.png

上图中,有多个NameNode,分别表示为NN1,NN2,… NNn。NS1,NS2等是由它们各自的NameNode管理的多个名称空间。

每个名称空间都有其自己的块池(block pool)(NS1具有Pool1,NS2具有Pool2,依此类推)。每个DataNode存储集群中所有块池的块。HDFS Federation体系结构中的 块池是属于单个名称空间的块的集合。每个块池彼此独立地进行管理。在删除NameNode或名称空间时,DataNode中存在的相应块池也将

被删除。在升级群集时,每个名称空间卷都作为一个单元进行升级。


2.2 好处

➢ 命名空间可伸缩性

使用Federation,可以水平扩展名称空间。这对大型群集或包含太多小文件的群集有利,因为向群集添加了更多的NameNode。

➢ 性能

由于文件系统操作不受单个NameNode吞吐量的限制,因此可以提高文件系统的性能。

➢ 隔离

由于有多个名称空间,它可以为使用群集的占用者组织提供隔离。


3 HDFS Federation配置示例

<configuration>
<property>
<name>dfs.nameservices</name>
<value>ns1,ns2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns1</name>
<value>nn-host1:rpc-port</value>
</property>
<property>
<name>dfs.namenode.http-address.ns1</name>
<value>nn-host1:http-port</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address.ns1</name>
<value>snn-host1:http-port</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns2</name>
<value>nn-host2:rpc-port</value>
</property>
<property>
<name>dfs.namenode.http-address.ns2</name>
<value>nn-host2:http-port</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address.ns2</name>
<value>snn-host2:http-port</value>
</property>
.... Other common configuration ...
</configuration>
相关实践学习
基于EBS部署高性能的MySQL服务
如果您通常是通过ECS实例部署MySQL来使用数据库服务,您可以参考本实验操作来搭建高性能的MySQL服务。本实验为您演示如何通过EBS ESSD云盘部署一个高性能的MySQL服务。
目录
相关文章
|
存储 机器学习/深度学习 分布式计算
HDFS Federation简介
背景 熟悉大数据的人应该都知道,HDFS 是一个分布式文件系统,它是基于谷歌的 GFS 思路实现的开源系统,它的设计目的就是提供一个高度容错性和高吞吐量的海量数据存储解决方案。在经典的 HDFS 架构中有2个 NameNode 和多个 DataNode 的,如下: 从上面可以看出 HDFS 的架构其实大致可以分为两层: Namespace:由目录,文件和数据块组成,支持常见的文件系统操作,例如创建,删除,修改和列出文件和目录。
|
机器学习/深度学习 分布式计算 Hadoop
Hadoop 容错之1.X的单点故障 到 2.X的HA和HDFS Federation
转载请注明出处:@http://blog.csdn.net/gamer_gyt,Thinkagmer 撰写 博主微博:http://weibo.com/234654758 (欢迎互撩)私人博客:http://blog.
1074 0
|
分布式计算 Hadoop
HDFS Federation(HDFS 联邦)(Hadoop2.3)
最早接触Federation这个词还是第一家公司用的DB2联邦数据库。 第一代Hadoop HDFS:   结构上由一个namenode和众多datanode组成。
1098 0
HDFS Federation
HDFS Federation.pdf 目录 目录 1 1. 前言 1 2. 背景 1 3. 解析 1   1. 前言 Federation翻译成中文是联盟或联邦的意思,网上有很多介绍HDFS Federation的文章,官网上的Federation.html也做了专门的介绍。
830 0
|
4月前
|
存储 分布式计算 Hadoop
Hadoop系列HDFS详解
Hadoop系列HDFS详解
41 0
|
4月前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
219 0
|
5月前
|
存储 分布式计算 Hadoop
aws s3常用命令、hdfs dfs/hadoop fs常用命令
aws s3常用命令、hdfs dfs/hadoop fs常用命令
416 0
|
4月前
|
存储 分布式计算 Hadoop
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
122 0
|
13天前
|
分布式计算 Hadoop 测试技术
Hadoop【基础知识 05】【HDFS的JavaAPI】(集成及测试)
【4月更文挑战第5天】Hadoop【基础知识 05】【HDFS的JavaAPI】(集成及测试)
40 8
|
13天前
|
分布式计算 资源调度 Hadoop
Hadoop【基础知识 03+04】【Hadoop集群资源管理器yarn】(图片来源于网络)(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第5天】Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
41 9