本文共 556 字,大约阅读时间需要 1 分钟。
- 单Active NN的架构使得HDFS在集群扩展性和性能上都有潜在的问题,当集群大到一定程度后,NN进程使用的内存可能会达到上百G,NN成为了性能的瓶颈
- 常用的估算公式为1G对应1百万个块,按缺省块大小计算的话,大概是64T (这个估算比例是有比较大的富裕的,其实,即使是每个文件只有一个块,所有元数据信息也不会有1KB/block)
- 为了解决这个问题,Hadoop 2.x提供了HDFS Federation, 示意图如下:
- 多个NN共用一个集群里的存储资源,每个NN都可以单独对外提供服务
- 每个NN都会定义一个存储池,有单独的id,每个DN都为所有存储池提供存储
- DN会按照存储池id向其对应的NN汇报块信息,同时,DN会向所有NN汇报本地存储可用资源情况
- 如果需要在客户端方便的访问若干个NN上的资源,可以使用客户端挂载表,把不同的目录映射到不同的NN,但NN上必须存在相应的目录
- 设计优势:
-
- 改动最小,向前兼容;现有的NN无需任何配置改动;如果现有的客户端只连某台NN的话,代码和配置也无需改动
- 分离命名空间管理和块存储管理
- 客户端挂载表:通过路径自动对应NN、使Federation的配置改动对应用透明
转载于:https://www.cnblogs.com/itboys/p/6970770.html