文章目录
- Hadoop集群架构
在分布式存储和计算方面,Hadoop采用的是主从架构,集群主要由NameNode,DataNode,SecondaryNameNode,JobTracker,TaskTracker组成。
一、Hadoop 1.x的传统集群调度框架
经典的Hadoop 1.x 的MapReduce采用Master/Slave结构
-
Master是整个集群唯一的全局管理者,功能包括作业管理、状态监控和任务调度等(JobTracker);
- JobTracker是一个后台服务进程,启动之后,会一直监听并接收各个TaskTracker发送的心跳信息,包括资源使用情况和任务运行情况等;
- JobTracker的功能:作业控制(作用是容错和为任务调度提供决策依据)、资源管理(TaskTracker与JobTracker和Task之间采用RPC协议进行通信)。
-
Slave负责任务的执行和任务状态的回报(TaskTracker);
- TaskTracker的功能:汇报心跳(Tracker周期性地将所有节点上的各种信息【包括机器级别信息(如节点健康情况、资源使用情况)和任务级别信息(如任务执行进度、任务运行状态)】通过心跳机制汇报给JobTracker)、执行命令(主要包括启动任务、提交任务、杀死任务、杀死作业和重新初始化)。
-
JobTracker对应于 Hadoop的HDFS架构中的NameNode节点;
- JobTracker是一个Mater服务,软件启动之后JobTracker接收Job,负责调度Job的每一个子任务Task,使其运行于TaskTracker上,并监控它们。一般情况下应该把JobTracker部署在单独的机器上
-
TaskTracker对应于 Hadoop的HDFS架构中的DataNode节点;
- TaskTracker是运行在多个节点上的Slave服务;TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务。TaskTracker需要运行在HDFS的DataNode上。
- TaskTracker是运行在多个节点上的Slave服务;TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务。TaskTracker需要运行在HDFS的DataNode上。
二、Hadoop/MapReduce 1.x的架构问题
在传统的MapReduce中,JobTracker同时负责作业调度和任务进度管理,JobTracker节点成为整个平台的瓶颈。
- 单点故障&节点压力大&不易扩展
- JobTracker受内存限制,导致扩展性受限
- 中心化架构的通病,一旦JobTracker崩溃,整个集群都会崩溃
- TaskTracker的Map Slot和Reduce Slot