HDFS Federation(HDFS 联邦)(Hadoop2.3)

简介: 最早接触Federation这个词还是第一家公司用的DB2联邦数据库。 第一代Hadoop HDFS:   结构上由一个namenode和众多datanode组成。

最早接触Federation这个词还是第一家公司用的DB2联邦数据库。

第一代Hadoop HDFS:


 

结构上由一个namenode和众多datanode组成。

功能上划分为namespace和block storage service 两部分。

 

所谓的HDFS Federation就是有多个namenode(或者说namespace)。

如图:


 

这里有block pool的概念,每一个namespace都有一个pool,datanodes会存储集群中所有的pool,block pool之间的管理是独立的,一个namespace生成一个block id时不需要跟其它namespace协调,一个namenode的失败也不会影响到datanode对其它namenodes的服务。

一个namespace和它的blockpool作为一个管理单元,删除后,对应于datanodes中的pool也会被删除。集群升级时,这个管理单元也独立升级。

这里引入clusterID来标示集群所有节点。当一个namenode format之后,这个id生成,集群中其它namenode的format也用这个id。

多namenode的好处:

1、namespace可扩展性。原来只有hdfs存储可以水平扩展,现在namenode也可以做到了,减轻单namenode的内存和服务压力。

2、性能方面。多个namenode可以提高读写时的吞吐量。

3、隔离性。隔离不同类型的程序,一定程度上控制资源的分配。

联邦的配置:

联邦的配置是向后兼容的,允许在不改变任何配置的情况下让当前运行的单节点环境转换成联邦环境。新的配置方案确保了在集群环境中的所有节点的配置文件都是相同的。

这里引入了NameServiceID概念,作为namenodes们的后缀。

第一步:配置属性dfs.nameservices,用于datanodes们识别namenodes。

第二步:为每个namenode加入这个后缀。

例子:

 

<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.secondaryhttp-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.secondaryhttp-address.ns2</name>
    <value>snn-host2:http-port</value>
  </property>

  .... Other common configuration ...
</configuration>

 

 

管理集群:

启动和停止用start-dfs.sh和stop-dfs.sh

跟第一代hadoop不同的是:这里允许集群中任何一台有效节点运行这两个命令,根据配置启动namenode和datanode,而第一代hadoop则是以运行启动脚本的节点为单一namenode。

均衡器:

由于多namenode了,均衡器也做了改变,运行命令:

 

"$HADOOP_PREFIX"/bin/hadoop-daemon.sh --config $HADOOP_CONF_DIR --script "$bin"/hdfs start balancer [-policy <policy>]

策略可以是node,之前也有的,增加了block pool,既在datanode级别又在block pool级别均衡。

下线节点:

跟之前版本的类似,把需要下线的节点添加到每台namenode的exclude文件中。

第一步:

"$HADOOP_PREFIX"/bin/distributed-exclude.sh <exclude_file>
第二步:
"$HADOOP_PREFIX"/bin/refresh-namenodes.sh
 
集群控制台:
 
http://<any_nn_host:port>/dfsclusterhealth.jsp
相关文章
|
存储 机器学习/深度学习 分布式计算
HDFS Federation简介
背景 熟悉大数据的人应该都知道,HDFS 是一个分布式文件系统,它是基于谷歌的 GFS 思路实现的开源系统,它的设计目的就是提供一个高度容错性和高吞吐量的海量数据存储解决方案。在经典的 HDFS 架构中有2个 NameNode 和多个 DataNode 的,如下: 从上面可以看出 HDFS 的架构其实大致可以分为两层: Namespace:由目录,文件和数据块组成,支持常见的文件系统操作,例如创建,删除,修改和列出文件和目录。
|
8月前
|
存储 块存储
HDFS Federation联邦机制
HDFS Federation联邦机制
207 1
|
机器学习/深度学习 分布式计算 Hadoop
Hadoop 容错之1.X的单点故障 到 2.X的HA和HDFS Federation
转载请注明出处:@http://blog.csdn.net/gamer_gyt,Thinkagmer 撰写 博主微博:http://weibo.com/234654758 (欢迎互撩)私人博客:http://blog.
1077 0
HDFS Federation
HDFS Federation.pdf 目录 目录 1 1. 前言 1 2. 背景 1 3. 解析 1   1. 前言 Federation翻译成中文是联盟或联邦的意思,网上有很多介绍HDFS Federation的文章,官网上的Federation.html也做了专门的介绍。
834 0
|
1月前
|
存储 分布式计算 Hadoop
【Hadoop】HDFS中的块是什么?
【4月更文挑战第9天】【Hadoop】HDFS中的块是什么?
|
1月前
|
存储 分布式计算 Hadoop
【Hadoop】HDFS仅支持独占写入?
【4月更文挑战第9天】【Hadoop】HDFS仅支持独占写入?
|
1月前
|
存储 分布式计算 Hadoop
【Hadoop】区分HDFS块和输入拆分
【4月更文挑战第9天】【Hadoop】区分HDFS块和输入拆分
|
5月前
|
存储 分布式计算 Hadoop
Hadoop系列HDFS详解
Hadoop系列HDFS详解
42 0
|
1月前
|
存储 分布式计算 Hadoop
Hadoop【基础知识 01】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)
【4月更文挑战第3天】Hadoop【基础知识 01】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)
43 3
|
1月前
|
存储 分布式计算 监控
Hadoop【基础知识 01+02】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
【4月更文挑战第3天】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
76 2

相关实验场景

更多