HDFS Federation
2015-07-23 14:00
369 查看
在Hadoop 2.0之前,也有若干技术试图解决单点故障的问题:
Secondary NameNode。
它不是HA,它只是阶段性的合并edits和fsimage,以缩短集群启动的时间。
当NameNode失效的时候,Secondary NN并无法立刻提供服务,Secondary NN甚至无法保证数据完整性:
如果NN数据丢失的话,在上一次合并后的文件系统的改动会丢失。
Backup NameNode 。
它在内存中复制了NN的当前状态,算是Warm Standby,可也就仅限于此,并没有failover等。
它同样是阶段性的做checkpoint,也无法保证数据完整性。
手动把name.dir指向NFS。安全的Cold Standby,可以保证元数据不丢失,但集群的恢复则完全靠手动。
单NN的架构使得HDFS在集群扩展性和性能上都有潜在的问题,当集群大到一定程度后,NN进程使用的内存可能会达到上百G,常用的估算公式为1G对应1百万个块,按缺省块大小计算的话,大概是64T。同时,所有的元数据信息的读取和操作都需要与NN进行通信,譬如客户端的addBlock、getBlockLocations,还有DataNode的blockRecieved、sendHeartbeat、blockReport,在集群规模变大后,NN成为了性能的瓶颈。
HDFS Federation是为解决HDFS单点故障而提出的NameNode水平扩展方案。
允许HDFS创建多个NameSpace以提高集群扩展性和隔离性。
当前HDFS包含两层结构:
(1) Namespace 管理目录,文件和数据块。它支持常见的文件系统操作,如创建文件,修改文件,删除文件等。
(2)Block Storage有两部分组成: Block Management维护集群中datanode的基本关系,它支持数据块相关的操作,如:创建数据块,删除数据块等,同时,它也会管理副本的复制和存放。 Physical Storage存储实际的数据块并提供针对数据块的读写服务。
HDFS架构只允许整个集群中存在一个namespace,而该namespace被仅有的一个namenode管理。这个架构使得HDFS非常容易实现,但是,它(见上图)在具体实现过程中会出现一些模糊点,进而导致了很多局限性
![](http://static.oschina.net/uploads/img/201507/23140029_BErb.gif)
参考文献:
[0] HDFS Federation
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/Federation.html
[1] An Introduction to HDFS Federation
http://zh.hortonworks.com/blog/an-introduction-to-hdfs-federation/
Secondary NameNode。
它不是HA,它只是阶段性的合并edits和fsimage,以缩短集群启动的时间。
当NameNode失效的时候,Secondary NN并无法立刻提供服务,Secondary NN甚至无法保证数据完整性:
如果NN数据丢失的话,在上一次合并后的文件系统的改动会丢失。
Backup NameNode 。
它在内存中复制了NN的当前状态,算是Warm Standby,可也就仅限于此,并没有failover等。
它同样是阶段性的做checkpoint,也无法保证数据完整性。
手动把name.dir指向NFS。安全的Cold Standby,可以保证元数据不丢失,但集群的恢复则完全靠手动。
单NN的架构使得HDFS在集群扩展性和性能上都有潜在的问题,当集群大到一定程度后,NN进程使用的内存可能会达到上百G,常用的估算公式为1G对应1百万个块,按缺省块大小计算的话,大概是64T。同时,所有的元数据信息的读取和操作都需要与NN进行通信,譬如客户端的addBlock、getBlockLocations,还有DataNode的blockRecieved、sendHeartbeat、blockReport,在集群规模变大后,NN成为了性能的瓶颈。
HDFS Federation是为解决HDFS单点故障而提出的NameNode水平扩展方案。
允许HDFS创建多个NameSpace以提高集群扩展性和隔离性。
当前HDFS包含两层结构:
(1) Namespace 管理目录,文件和数据块。它支持常见的文件系统操作,如创建文件,修改文件,删除文件等。
(2)Block Storage有两部分组成: Block Management维护集群中datanode的基本关系,它支持数据块相关的操作,如:创建数据块,删除数据块等,同时,它也会管理副本的复制和存放。 Physical Storage存储实际的数据块并提供针对数据块的读写服务。
HDFS架构只允许整个集群中存在一个namespace,而该namespace被仅有的一个namenode管理。这个架构使得HDFS非常容易实现,但是,它(见上图)在具体实现过程中会出现一些模糊点,进而导致了很多局限性
![](http://static.oschina.net/uploads/img/201507/23140029_BErb.gif)
参考文献:
[0] HDFS Federation
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/Federation.html
[1] An Introduction to HDFS Federation
http://zh.hortonworks.com/blog/an-introduction-to-hdfs-federation/
相关文章推荐
- HDFS HA QJM
- flume-ng+Kafka+Storm+HDFS 实时系统搭建
- Flume监听文件目录sink至hdfs配置
- hadoop1.x和2.x版本配置的区别
- hadoop集群配置与MapReduce性能调优
- hive 查询结果导入到hdfs中 row format 报错
- 在Ubuntu下使用Eclispe连接HDFS时拒绝链接解决方案
- HDFS客户端的权限错误:Permission denied
- hdfs 文件的追加
- HDFS, YARN, HBase, Hive, ZooKeeper端口说明
- hadoop:简单的测试例子
- HDFS元数据管理
- 浅析hadoop 简历就写这个了
- hive 报错/tmp/hive on HDFS should be writable. Current permissions are: rwx--x--x
- Hadoop集群硬盘故障分析与自动化修复
- 【排错】Could not reseek StoreFileScanner[HFileScanner for reader reader=hdfs://dmp-nn-1:8020/hbase/...
- hadoop2.4.0集群安装spark1.3.0
- Hadoop 2.4安装与配置
- hadoop2.7+Spark1.4环境搭建
- Hadoop single node setup