• 035 HDFS的联盟Federation


    一:概述

    1.单个namenode的局限性

      namespace的限制

        单个namenode所能存储的对象受到JVM中的heap size的限制

      namenode的扩张性

        不可以水平扩张

      隔离性

        单个namenode难以提供隔离性,各自管理自己的数据,只是共享一个存储领域。

      截图:

      

    2.好处(可以与HA兼容)

      各自管理各自的数据

      共享数据空间

      

    二:配置hdfs-site.xml

    1.配置

      配置三台namenode,但是这里只有第一台的配置,将下面的配置再拷贝两份,修改成对应的namenode的机器。

      8022,可以减缓端口号的压力。

      

    2.分发

    3.格式化namenodes 

    $HADOOP_PREFIX_HOME/bin/hdfs namenode -format [-clusterId <cluster_id>]

      需要格式化三台namenode。

      需要有相同的集群名,就是上面的<cluster_id>,就是说namenode所在的机器的格式化语句都是相同的。

      

    4.启动集群

      三台机器都可以启动namenode与datanode。

      会发现三台机器都是active。

    三:观察效果

      证明,各个namenode互不影响

    1.测试一

      

    2.在第一台虚拟机上新建目录

      会在第一台上看见这个目录,但是在第二台虚拟机上看不到这个目录。

      

    3.然后,修改core

      

    4.在第一台虚拟机上新建目录

      但是因为配置文件改成第二台虚拟机,所以,第二台上可以看见被修改了。

      

    5.结论

      说名上面的操作结论。

      现在只是修改第一台机器的core,以及操作第一台机器。

      但是在页面上的结果变化需要到core文件中修改的对应的机器上观看datanode的文件变化情况。

      说明,第一台机器可以随意操作集群中想要操作的那个datanode。

      同理,第二台上可以通过配置core中的namenode所在主机,进行修改对应的datanode。

      所以,这样就完成了想要的结果。

      每个namenode都可以操作不同的datanode。

    四:结论

      不管操作的是哪台虚拟机,core中的namenode定义的哪台虚拟机,新建的HDFS就属于哪个namenode管理。

      

  • 相关阅读:
    Linux 查看CPU个数和磁盘个数
    springboot 文件上传大小配置
    Netty(一):初识Netty
    Java 8里 Stream和parallelStream的区别
    Logstash filter 的使用
    logstash过滤器插件filter详解及实例
    Linux下如何不停止服务,清空nohup.out文件
    logstash收集Nginx日志,转换为JSON格式
    Logstash add_field 参数应用
    Logstash处理json格式日志文件的三种方法
  • 原文地址:https://www.cnblogs.com/juncaoit/p/6018543.html
Copyright © 2020-2023  润新知