本节内容会细致深入地讲解Hadoop系统的各个组成部分。我们先介绍构成Hadoop 1.x 系统的组件,再介绍构成Hadoop 2.x 系统的新组件。宏观上说,Hadoop 1.x系统有以下几个守护进程:
名称节点(NameNode):维护着存储在HDFS上的所有文件的元数据信息。这些元数据信息包括组成文件的数据块信息,及这些数据块在数据节点上的位置。正如你将看到的,这个组件正是使用Hadoop 1.x搭建大型计算集群系统的瓶颈所在。
辅助名称节点(Secondary NameNode):这不是名称节点的热备份。实际上,它作为Hadoop平台的一个组件,其命名不是很恰当。它为名称节点组件执行一些内务处理功能(housekeeping functions)。
数据节点(DataNode):把真正的数据块存放在本地硬盘上,这些数据块组成了保存在HDFS上的每个文件。
作业跟踪器(JobTracker):这是Hadoop系统的主要组件之一,它负责一个任务的整个执行过程。它的具体功能包括:调度各个子任务(Mapper任务和Reducer任务各自的子任务)到各自的计算节点运行,时刻监控任务运行和计算节点的健康状况,对失败的子任务重新调度执行。正如我们即将演示的,就像名称节点一样,这个组件是使用Hadoop 1.x搭建大型计算集群系统的瓶颈所在。
任务跟踪器(TaskTracker):运行在各个数据节点上,用来启动和管理各个Map/Reduce任务。与作业跟踪器进行通信。
Hadoop 1.x集群有两种类型的节点:主节点(master nodes)和从节点(slave nodes)。
主节点负责执行如下几个守护进程:
名称节点进程
辅助名称节点进程
作业跟踪器进程
从节点分布在整个集群上并执行如下几个守护进程:
数据节点进程
任务跟踪器进程
在整个集群上,虽然每种主节点守护进程只有一个运行实例,但是其数据节点进程和任务跟踪器进程有多个运行实例。在一个规模较小的或者用于开发/测试的集群上,三个主节点进程全部运行在一台服务器上。对于生产环境系统或者规模较大的集群,三个主节点进程分别运行在不同的服务器上是明智的选择。