Hadoop简介
Hadoop是一个分布式系统基础架构,主要解决海量数据的存储和海量数据的分析和计算的问题。从广义上来说,Hadoop通常是指一个更加广泛的概念——Hadoop生态圈。
Hadoop的优势
- 高可靠性:Hadoop底层维护着多个数据副本,即时Hadoop某个计算元素或者存储出现故障,也不会导致数据的丢失。
- 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
- 高效性:在MapReduce的思想下,Hadoop是并行工作的,以便加快任务的处理速度。
- 高容错性:当某个节点宕机时,能够将这个节点的正在进行的任务和未完成的任务重新进行分配。
Hadoop的组成
Hadoop1.x和Hadoop2.x的区别
HDFS架构概述
HDFS(Hadoop Distributed File System)的架构主要分为三大部分。
- NameNode:存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数量、文件权限等),以及每个文件的块列表和块所在的DataNode等。
- DataNode:在本地文件系统存储文件块数据,以及块数据的校验和。
- Secondary NameNode:依赖监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
MapReduce架构概述
MapReduce将计算过程分为两个阶段:Map和Reduce。
- Map阶段并行处理输入数据。
- Reduce阶段对Map结果进行汇总。
YARN架构概述
YARN的架构主要分为四个部分。
-
ResourceManager主要作用如下:
- 处理客户端的请求。
- 监控NodeManager。
- 启动和监控ApplicationMaster。
- 资源的分配与调度。 -
NodeManager主要作用如下:
- 管理单个节点上的资源。
- 处理来自ResourceManager的命令。
- 处理来自ApplicationMaster的命令。 -
ApplicationMaster主要作用如下:
- 负责数据的切分。
- 为应用程序申请资源。
- 任务的监控与容错。 -
Container主要作用如下:
- Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘和网络等。
- Container是为ApplicationMaster服务的。