hadoop2.0的新特性

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/firstchange/article/details/78567770

Hadoop2.0

  • 产生背景

    1、Hadoop 1.0中HDFS和MapReduce在高可用、扩展性等方面存在问题
    2、HDFS存在的问题
        NameNode单点故障,难以应用于在线场景
        NameNode压力过大,且内存受限,影响系统扩展性
    3、MapReduce存在的问题
        JobTracker访问压力大,影响系统扩展性
        难以支持除MapReduce之外的计算框架,比如Spark、Storm等
    
  • hadoop1.x和hadoop2.x的比较

    Hadoop 2.x由HDFS、MapReduce和YARN三个分支构成;
        HDFS:NN Federation(联邦)、HA;
            2.X:只支持2个节点HA,3.0实现了一主多从
        MapReduce:运行在YARN上的MR;
            离线计算,基于磁盘I/O计算
        YARN:资源管理系统
    
  • HDFS2.x

    解决HDFS 1.0中单点故障和内存受限问题。
    解决单点故障
        HDFS HA:通过主备NameNode解决
        如果主NameNode发生故障,则切换到备NameNode上
    解决内存受限问题
        HDFS Federation(联邦)
        水平扩展,支持多个NameNode;
        (1)所有NameNode共享所有DataNode存储资源
        (2)每个NameNode分管一部分目录;
    2.x仅是架构上发生了变化,使用方式不变
    对HDFS使用者透明
    HDFS 1.x中的命令和API仍可以使用
    

详细展开

  • HDFS2.0如何解决主备问题

    主备服务器,主服务器主要是和客户端通讯,备服务器同步主服务器信息,将edits log存到journalNodes集群上,备服务器和journalnodes服务器的edits log同步
    HA为了扩展NameNode需要处理元数据信息
    元数据信息可以分为动态元数据和静态元数据
        动态元数据需要通过DataNode分别和两台NameNode传信息
        静态元数据可以通过NFS创建共享服务器,将edits log放进去,两台NameNode都可以和共享服务器通讯,达到同步数据的结果
        最好用journalnode集群放置edits log,让两台NameNode可以和jn进行通讯,更新内存信息
    NameNode自动切换主备
        zookeeper
            维护树
            事务处理
            控制
                控制NameNode心跳
    
  • HDFS2.0 HA

    主备NameNode
    解决单点故障(属性,位置)
        主NameNode对外提供服务,备NameNode同步主NameNode元数据,以待切换
            所有DataNode同时向两个NameNode汇报数据块信息(位置)
            JNN:集群(属性)
        standby:备,完成了edits.log文件的合并产生新的image,推送回ANN
    两种切换选择
        手动切换:通过命令实现主备之间的切换,可以用HDFS升级等场合
        自动切换:基于Zookeeper实现
    基于Zookeeper自动切换方案
        ZooKeeper Failover Controller:监控NameNode健康状态,
        并向Zookeeper注册NameNode
        NameNode挂掉后,ZKFC为NameNode竞争锁,获得ZKFC 锁的NameNode变为active
    
  • HDFS 2.x Federation(联邦机制)

    通过多个namenode/namespace把元数据的存储和管理分散到多个节点中,使到namenode/namespace可以通过增加机器来进行水平扩展。
    能把单个namenode的负载分散到多个节点中,在HDFS数据规模较大的时候不会也降低HDFS的性能。可以通过多个namespace来隔离不同类型的应用,把不同类型应用的HDFS元数据的存储和管理分派到不同的namenode中。
    

猜你喜欢

转载自blog.csdn.net/firstchange/article/details/78567770