Hadoop整体架构是 分布式的主/从架构,由一组守护进程和一组宿主程序组成,守护进程有:NameNode,DataNode,Secondary NameNode,JobTracker,TaskTracker
其中NameNode,DataNode,Secondary NameNode被划分为 存储进程类,而JobTracker和TaskTracker被划分为计算进程类。
正如如下图所示:
NameNode:
NameNode是Hadoop分布式存储系统(HDFS)的主节点(master node),它自己不参与I/O任务,而是把这些任务交给它所管理的DataNode去完成。NameNode将文件系统的元数据都存储于内存中。
DataNode:
DataNode是Hadoop分布式存储系统(HDFS)的从节点(slave node),他们负责实际读写HDFS块的任务(一个大文件会被分为多个HDFS block),并持续将状态报告给NameNode.
NameNode和DataNode关系如下图:
Secondary NameNode:
Secondary NameNode 是集群中用来监控HDFS 集群状态的一个辅助进程。它也和NameNode不一样的是它不接受和记录HDFS的任何实时改变。相反,它只和NameNode打交道,并且定期收集HDFS 状态的快照(snapshot) ,它主要用于当NameNode出故障时的恢复工作。
Job Tracker:
Job Tracker是我们应用程序和Hadoop的联系人,当我们提交代码到Hadoop 集群时,它会确定执行计划,包括决定处理哪些文件,为每个节点分配不同的任务(实际上是分配给Task Tracker,然后转交),并且监控所有运行的任务。这个进程一般运行在集群的主节点上。