zoukankan      html  css  js  c++  java
  • 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管理。

      

  • 相关阅读:
    AngularJS中$http服务的简单用法
    js变量作用域及访问权限的探讨(2)
    javascript中类的属性访问权限研究(1)
    zoom:1-hasLayout
    JS 继承(类式 与 原型式)
    迷你版jQuery——zepto核心源码分析
    移动互联网终端的touch事件,touchstart, touchend, touchmove
    WEBAPP开发技巧总结
    JQuery flot API文档 中文版
    jQuery插件Flot实战Demo
  • 原文地址:https://www.cnblogs.com/juncaoit/p/6018543.html
Copyright © 2011-2022 走看看