zoukankan      html  css  js  c++  java
  • 下一代hadoop

    1,hadoop 2.0 产生背景
    2,hadoop 2.0 基本构成
    3,HDFS 2.0
    4 YARN
    5 MapReduce On YARN
    6 Hadoop 2.0初体验
    7 总结

    1,hadoop 2.0产生背景:
    两个概念
    hadoop生态系统:由hadoop,hbase,hive,pig,sqoop,flume,mahout,zookeeper等构成。
    hadoop:hadoop只是hadoop生态系统的一个组成部分,由分布式文件系统hdfs和分布式计算框架MapReduce组成。hadoop2.0由hdfs,yarn,mr组成
    通俗的hadoop是指hadoop生态系统。
    hdfs存在的问题:
    NameNode单点故障,难以应用于在线场景(不能提供“服务”这样的长期在线,程序一旦挂掉没有备用方案
    NameNode压力过大(所有通信都通过namenode转向其他服务),且内存受限(元数据信息),影响系统扩展性(内存小,hdfs就不能随意加datanode)。
    MapReduce存在的问题:
    JobTracker单点故障
    JobTracker访问压力大,影响系统扩展性
    难以支持除Mapreduce之外的计算框架,比如Spark,Storm,Tez(资源调度,和计算在一起的架构不好)等

    2 hadoop 2.0基本构成
    注解1:MapReduce同时负责资源管理和任务调度,hadoop 2.0将资源管理独立出来成为yarn,mr2.0仅仅是运行在yarn上的框架之一。
    Hadoop 2.0由HDFS,Mapreduce和Yarn三个分支构成;
    HDFS:NN Federation(分目录管理),HA(多个NameNode
    Mapreduce:运行在yarn上的mr
    yarn:资源管理器。

    下载地址:http://hadoop.apache.org/releases.html
    svn:http://svn.apache.org/repos/asf/hadoop/common/branches/ 这里只有源代码,需编译才可使用

    3 HDFS2.0

    解决单点故障
    通过主备NameNode解决
    如果主NameNode发生故障,则切换到备NameNode上。

    解决内存受限问题,(含并发过大)
    水平扩展,支持多个NameNode
    每个NameNode分管一部分目录;(每个namenode管理的文件数减少)
    所有NameNode共享所有DataNode存储资源

    4 Yarn
    Yet Another Resource Negotiator
    核心思想:将mrv1中JobTracker的资源管理和任务调度两个功能分开。分别由ResourceManager和ApplicationMaster进程实现。
    ResourceManager:负责整个集群的资源管理和调度
    ApplicationMaster:负责应用程序相关的事务,比如任务调度,任务监控和容错

    Yarn的引入,使得多个计算框架可运行在一个集群中;
    :每个应用程序对应一个ApplicationMaster
    :目前多个计算框架可以运行在yarn上,比如Mapreduce,spark,storm等

    5 Mapreduce on yarn(mrv2)
    将Mapreduce作业直接运行在yarn上,而不是由JobTracker和TaskTracker构建在MRv1系统中;

    基本功能模块:
    yarn:负责资源管理和调度
    MRAppMaster:负责任务切分,任务调度,任务监控和容错等
    MapTask/ReduceTask:任务驱动引擎,与MRv1一致
    每个应用程序对应一个MRAppMaster
    单个应用程序运行失败,不会影响其他应用程序。
    负责应用程序相关的事情,包括将yarn分配的资源二次分配给内部的任务,任务切分,监控容错等。


    HDSF 2.0 HA 架构图
    详细解释hdfs 2.0 -ha
    1 主备namenode
    主namenode对外提供服务,备namenode同步主nn元数据,以待切换
    所有datanode同时向两个namenode汇报数据块信息
    2 两种切换选择
    手动切换:通过命令实现主备之间的切换,可以用于hdfs(namenode升级)升级等场合
    自动切换:基于zookeeper实现 (降低运维成本
    3 基于zookeeper切换方案:
    zookeeper failover controller(简称zkfc,以后会经常遇到):监控namenode健康状态,并向zookeeper注册namenode
    namenode挂掉后,zkfc为namenode竞争锁(竞争锁,zookeeper用语),获得zkfc锁的namenode变为active

    多种共享存储系统可供选择:
    NFS
    奇数个JournalNode构成集群
    Bookeeper(这个跟Journal差不多)


    推荐Journal Node方案:
    基本原理,数据同时写入所有JournalNode,多数写入成功,则认为写成功
    一般配置奇数个JournalNode,越多,容错性越好
    比如3个JournalNode,只要两个写成功,则数据写成功,最多允许一个JournalNode挂掉。如果是7台电脑,最多允许3台挂掉










  • 相关阅读:
    2013-8-14大一大二暑期组队训练赛
    注重实效的程序员——哲学篇
    读《企业应用架构模式》-锁
    OpenCV 编码样式指南
    Offer_1
    μC/OS学习资料(附Ebook)
    poj 1990
    POJ 2455 网络流 基础题 二分+网络流 dicnic 以及 sap算法
    ViewPageAsImage
    win7下wordPress本地搭建博客详解(深度亲测整理---傻瓜式详细教程)
  • 原文地址:https://www.cnblogs.com/i80386/p/3613666.html
Copyright © 2011-2022 走看看