Hadoop架构组成

Hadoop架构

Hadoop架构组成_第1张图片 

HDFS架构

概念:HDFS架构采用主从式架构,是一种Master-Slave结构

  • Master------NameNode

  • Slave------DataNode

结构:

  • Client(客户端)

    作为资源请求的载体,想Hadoop集群发送请求

    具体作用:

    • 切分文件:文件上传HDFS的时候,将文件切成一个个Block再进行存储

    • 与NameNode交互,获取文件的位置信息

    • 与DataNode交互,读取或者写入数据

    • Client提供一些命令

      • 管理HDFS

         start-all.sh //启动Hadoop集群
      • 访问HDFS

         hdfs dfs -put //想hdfs文件系统上传文件
  • NameNode(名称结点)

    HDFS的管理者,接受并处理Client向Hadoop发送请求以及接收来自DataNode的周期性的信息

    具体作用:

    • 配置副本策略

    • 处理客户端读写请求

    • 管理Block的映射信息,以元数据的形式存储于Fsimage 镜像文件中

    • 管理HDFS 的名称空间

  • DataNode(数据结点)

    接收来自NameNode的命令,DataNode执行具体命令

    具体作用:

    • 存储实际的数据块

    • 执行数据块的读写操作

  • SecondaryNameNode(第二名称结点)

    在Nameode宕机时存储集群的快照,便于其恢复此前的集群状态

    (不是NameNode的热备,NameNode宕机是无法替换NameNode并执行其功能提供服务)

    具体作用:

    • 辅助NameNode,分担其工作量

    • 定期合并Fsimage 和 Edits,并推送给NameNode

    • 在紧急情况下,可辅助恢复NameNode

HDFS架构优缺点

优点

  • 高容错

    • 数据自动保存多个副本,提高容错

    • 副本丢失可自动恢复

  • 可处理数据容量大

    • 数据规模大。GB\TB甚至PB

    • 文件规模大,可处理百万规模的文件

  • 支持流式数据访问,保证数据的一致性

  • 可以运行在廉价服务器(多副本,更可靠)

缺点

  • 不适合低延时的数据访问

  • 无法高效的对大量小文件存储

    • 占用NameNode大量内存存储文件(NameNode内存有限)

    • 小文件存储寻道时间会超过读取时间

  • 不能并发写入和文件随机修改

    • 不能多个线程同时写

    • 仅支持数据append(追加),无法随机修改

YARN架构

概念:HDFS架构采用主从式架构,是一种Master-Slave结构

基本组成:主要由 ResourceManager 、 NodeManager 、Applica- tionMaster(MRAppMstr/MPIAppMstr)和 Container等组件构成

  • Master------ResourceManager

  • Slave------NodeManager

    ResourceManager:对每个 NodeManager上的资源进行统一管理和调度

基本组成:主要由 ResourceManager 、 NodeManager 、Applica- tionMaster(MRAppMstr/MPIAppMstr)和 Container等组件构成

  • ResourceManager(RM):全局资源管理器,对每个 NodeManager上的资源进行统一管理和调度

    • RM由调度器(Scheduler)和应用程序管理器(ASM,Applications Manager)

  • 调度器:根据容量、队列等条件将系统的资源分配给运行的应用程序(纯调度器)

  • 应用程序管理器:负责管理整个系统的所有应用程序

  • ApplicationMaster(AM):用户提交的每个应用程序都包含一个AM

    • 与RM协商获取资源(Container表示)

    • 将得到的任务进一步分配给内部任务

    • 与NM通信以启动/停止任务

    • 监控所有任务运行状态,任务运行失败重新申请资源重启任务

  • NodeMaster(NM):是每个节点上的资源和任务管理器

    • 定时想RM汇报本节点的资源占用情况和Containter的运行状态

    • 接收并处理来自AM的Containter启动/停止的各种请求

  • Containter:YARN的资源抽象,封装了各个节点的多维度资源

你可能感兴趣的:(大数据,hadoop,hbase,hive)