Hadoop的优缺点

优点

  • Hadoop具有存储和处理数据能力的高可靠性.
  • Hadoop通过可用的计算机集群分配数据, 完成存储和计算任务, 这些集群可以方便地扩展到数以千计的节点中, 具有高扩展性.
  • Hadoop能够在节点之间进行动态地移动数据, 并保证各个节点的动态平衡, 处理速度非常快, 具有高效性.
  • Hadoop能够自动保存数据的多个副本, 并且能够自动将失败的任务重新分配, 具有高容错性.

    缺点

  • Hadoop不适用于低延迟数据访问.

  • Hadoop不能高效存储大量小文件.
  • Hadoop不支持多用户写入并任意修改文件.

    Hadoop角色组成

    HDFS

    Hadoop Distribute File System, 一个高可靠、高吞吐量的分布式文件系统
    NameNode:
    管理HDFS的命名空间, 配置副本策略, 管理数据款
    存储文件的元数据, 比如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限), 以及每个文件的块列表和块所在的DataNode等.
    SecondaryNameNode:
    辅助NameNode工作, 监控HDFS状态的辅助后台程序, 每隔一段时间获取HDFS元数据快照. 紧急情况下, 可辅助恢复NameNode
    DataNode:
    数据存储节点, 主要的工作是存储与执行读写操作

    YARN

    ResourceManager
    处理客户端请求, 启动/监控ApplicationMaster, 监控NodeManager, 资源分配与调度
    NodeManager
    单个节点上的资源管理, 处理来自ResourceManager的命令, 处理来自ApplicationMaster的命令
    ApplicationManager
    数据切分, 为应用程序申请资源, 并分配给内部任务, 任务监控与容错.
    Container
    对任务运行环境的抽象, 封装了CPU, 内存等多维资源以及环境变量, 启动命令等任务运行相关的信息.

    Common

    支持其他模块的工具模块(Configuration、RPC、序列化机制、日志操作)