zoukankan      html  css  js  c++  java
  • hadoop双机热备——facebook hadoop HA的资料整理

    Facebook Hadoop HA

                               organized by aaronwxb,04.01

    一些数据

    • 21 PB of storage in a single HDFS cluster
    • 2000 machines
    • 12 TB per machine (a few machines have 24 TB each)
    • 1200 machines with 8 cores each + 800 machines with 16 cores each
    • 32 GB of RAM per machine
    • 15 map-reduce tasks per machine
    • The master had 64 GB of memory.

    70 million 文件和目录

    90 million 块

    花费6分钟加载元数据,35分钟处理datanodes的block reports

    运行情况

    硬件比较可靠,软件在部署前已做好充分测试,四年来只有一次NameNode down掉。主要的中断服务的问题是给hadoop打补丁升级,DataNode打补丁比较简单,不会造成服务中断,每次对其中的一部分DataNode部署新的代码、重启,就OK了。 问题是需要给NameNode部署新的代码时,NodeNode重启需要花费1个小时,这期间所有的Hadoop服务都不能运行。

    AvatarNode

     

    两个角色

    AvatarNode完全封装NameNode。AvatarNode运行有两种模式Active Avatar或者Standby Avatar.

    如果启动运行在Active Avatar模式,那么它就和当前NameNode功能完全一样,其实运行的代码就是NameNode的代码。运行Active Avatar模式的AvatarNode机器,保存HDFS事务日志(edit log)到一个共享的NFS。

    在另外一台机器上,启动AvatarNode的另一个实例,运行在Standby Avatar模式。 Standby AvatarNode封装了NameNode和SecondaryNameNode。Standby AvatarNode持续的从共享的NFS filer中读取HDFS edit log,并持续的把这些事务推送到Standby AvatarNode中NameNode实例。Standby AvatarNode中的NameNode运行在SafeMode。原因是不能让它负责NameNode的工作,但是必须保持和NameNode同步的NameNode Metadata信息(Standby AvatarNode从NFS中读取transaction log,同时作用在自己内存中的namespace,已使得尽量和Active AvatarNode的元数据相同)。

    切换过程

    HDFS客户端访问NameNode通过一个虚拟IP(Virtual IP Address,注:这块其实可以用zookeeper来取代).当发生故障需要快速切换时,管理员会在机器M1上杀掉Primary AvatarNode进程,然后在机器M2上设置Standby AvatarNode作为Primary Avatar。Standby AvatarNode会保证把所有提交的事务都处理完,因为Standby AvatarNode会重新打开edit log,并处理完文件中所有的事务.这个假设是基于NFS-v3支持close-to-open cache coherency semantics。Standby AvatarNode把所有NFS filer上的事务处理完之后,退出SafeMode模式。管理员将M2的VIP换为M1,这样所有的HDFS客户端的请求会提交到M2的实例上。这个failover一般情况只需要几秒钟。 另外根本不需要单独一台SecondaryNameNode。 AvatarNode在Standby avatar模式时,可以履行SecondaryNameNode的职责。Standby AvatarNode持续的处理从Primary Avatar来的所有的事务,在处理事务日志的空闲间隙会唤醒SecondaryNameNode进程,创建并上传一个新的checkpoint,Copy到Primary AvatarNode, 接着再回来处理事务日志。 

    Avatar DataNode

    DataNodes同时和 Active、Standby通信,则Standby Avatar也有DataNode的最新的block信息,因此Standby可以在很短时间内转换成Active Avatar。Avatar DataNode不使用VIP和AvatarNode连接。(HDFS客户端通过VIP连接AvatarNode)。Avatar DataNodes从Zookeeper那里知道哪个Avatar是Active的,因此只执行从Active Avatar来的删除/复制操作请求,对Standby传来的请求则忽略。

    backup node分析

    1.BackupNode在故障恢复时还需要从各个DataNodes读取块信息,需要花费一二十分钟,而故障切换允许的时间应以秒计算。如果BackupNode从DataNodes接受和处理块信息,则BackupNode就是热备了,但和AvatarNode相似了。

    2.NameNode每个事务都在BackupNode上同步更新,整个系统的可靠性就比单独的NameNode的可靠性降低了。

    3. HDFS BackupNode在Hadoop 0.20中还不能用,升级Hadoop 0.20也不是一个很好的选择。这个升级部署之前,需要花费大量时间做测试。

    缺点

    没有实现自动切换

    注:

    1. FACEBOOK的实时HADOOP系统
    2. RealtimeHadoopSigmod2011.pdf
    3. Hadoop NameNode单点问题解决方案之一 AvatarNode
    4. Hadoop AvatarNode High Availability
  • 相关阅读:
    MySQL基础_常见命令
    数据库概述
    Nginx学习笔记
    华为OSPF基础配置实验
    华为RIPv2实验
    华为三层交换实验
    web-debug-server
    花一天时间试玩vsphere6.7(EXSI)服务器版的vmware
    haproxy+keepalived练习
    mailx加163邮箱发邮件
  • 原文地址:https://www.cnblogs.com/aaronwxb/p/2434999.html
Copyright © 2011-2022 走看看