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、序列化机制、日志操作)