Hadoop之NameNode Federation图文详解

 更新时间:2019年01月11日 08:43:02   作者:qq_43193797  
今天小编就为大家分享一篇关于Hadoop之NameNode Federation图文详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

一. 前言

1.NameNode架构的局限性

(1)Namespace(命名空间)的限制

由于NameNode在内存中存储所有的元数据(metadata),因此单个NameNode所能存储的对象(文件+块)数目受到NameNode所在JVM的heap size的限制。50G的heap能够存储20亿(200million)个对象,这20亿个对象支持4000个DataNode,12PB的存储(假设文件平均大小为40MB)。随着数据的飞速增长,存储的需求也随之增长。单个DataNode从4T增长到36T,集群的尺寸增长到8000个DataNode。存储的需求从12PB增长到大于100PB。

(2)隔离问题

由于HDFS仅有一个NameNode,无法隔离各个程序,因此HDFS上的一个实验程序就很有可能影响整个HDFS上运行的程序。

(3)性能的瓶颈

由于是单个NameNode的HDFS架构,因此整个HDFS文件系统的吞吐量受限于单个NameNode的吞吐量。

2.HDFS Federation架构设计,如图所示

能不能有多个NameNode

HDFS Federation架构设计

二.实现

NameNode HA是为了解决NameNode可用性的问题,而NameNode Federation则主要是为了解决NameNode扩展性,隔离性,以及单个NameNode性能方面的问题。NameNode Federation架构如下:

NameNode Federation使用了多个命名空间,这些命名空间互相独立,自制(其实是对元数据的水平切分),而集群中所有DataNode向所有NameNode都进行注册,而一个块池(block pool)有属于同一个命名空间的数据块组成,每个DataNode可能会存储集群中所有块池的数据块,每个块池互相独立,有一个挂掉了也不会影响其他块池正常工作。

同时部署了NameNode HA和NameNode Federation时,集群结构会相对复杂一点,如下图。在实际的生成环境中,NameNode HA几乎是必备,而当集群规模在1000台以下时,几乎是不需要NameNode Federation的。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • Java方法覆盖重写实现原理解析

    Java方法覆盖重写实现原理解析

    这篇文章主要介绍了Java方法覆盖重写实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • SpringBoot之如何指定配置文件启动

    SpringBoot之如何指定配置文件启动

    这篇文章主要介绍了SpringBoot之如何指定配置文件启动问题,具有很好的参考价值,希望对大家有所帮助。
    2023-04-04
  • SpringBoot实现异步任务的项目实践

    SpringBoot实现异步任务的项目实践

    本文将使用SpringBoot 去实现异步之间的调用,提高系统的并发性能、用户体验,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • Mybatis Plus批处理操作的实现示例

    Mybatis Plus批处理操作的实现示例

    MyBatis Plus 提供了强大的批处理支持,可以帮助我们高效地处理大规模数据,本文主要介绍了Mybatis Plus批处理操作的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • Java判断一个实体是不是空的简单方法

    Java判断一个实体是不是空的简单方法

    这篇文章主要给大家介绍了关于Java判断一个实体是不是空的简单方法,实际项目中我们会有很多地方需要判空校验,文中给出了详细的示例代码,需要的朋友可以参考下
    2023-07-07
  • Spring集成事务代码实例

    Spring集成事务代码实例

    这篇文章主要介绍了Spring集成事务代码实例,pring事务的本质其实就是数据库对事务的支持,使用JDBC的事务管理机制,就是利用java.sql.Connection对象完成对事务的提交,需要的朋友可以参考下
    2023-10-10
  • Java零基础教程之Windows下安装 JDK的方法图解

    Java零基础教程之Windows下安装 JDK的方法图解

    这篇文章主要介绍了Java零基础教程之Windows下安装 JDK的方法图解,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • MyBatis之insert主键自增和自定义主键详解

    MyBatis之insert主键自增和自定义主键详解

    本文介绍了如何使用MyBatis解决插入数据时因主键唯一性约束导致的错误问题,以及如何自定义主键生成规则,文中详细解释了如何在MyBatis中配置自增主键,并提供了测试示例
    2024-12-12
  • java 中 阻塞队列BlockingQueue详解及实例

    java 中 阻塞队列BlockingQueue详解及实例

    这篇文章主要介绍了java 中 阻塞队列BlockingQueue详解及实例的相关资料,需要的朋友可以参考下
    2017-03-03
  • 如何自定义MyBatis拦截器更改表名

    如何自定义MyBatis拦截器更改表名

    自定义MyBatis拦截器可以在方法执行前后插入自己的逻辑,这非常有利于扩展和定制 MyBatis 的功能,本篇文章实现自定义一个拦截器去改变要插入或者查询的数据源 ,需要的朋友可以参考下
    2023-10-10

最新评论