众所周知,在HDFS集群中,主要有两类节点,即NameNode和DataNode节点,确切的说,一个NameNode节点,其它的所有DataNode节点。那么,HDFS集群的启动就自然而然的可以看做是一个NameNode节点的启动和所有其它的DataNode节点的启动问题了。在这里我要不得不提的是,NameNode和DataNode有各自不同的启动方式,其中,NameNode的启动方式有:format、regular、upgrade、rollback、finalize、importCheckpoint六种,DataNode的启动方式有:regular、rollback两种。关于NameNode和DataNode的各种启动方式是如何工作的,我在这里不会一一讲解,但我会在以后的博文中来详细的描述。在本文中,我将主要讲解NameNode和DataNode节点最常用的也是最基本的启动方式regular。对了,稍微提一下,NameNode在第一次启动之前,一定要先以format方式启动,然后再才能以其它的方式启动,至于为什么,请感兴趣的盆友查看我前面的博文。同时,我必须要重点重申的是,NameNode节点一定要在其它的任何DataNode节点之前启动,而且,在NameNode节点启动之后,其它的DataNode也不能马上就启动。
OK,让我们先来看看NameNode节点的启动吧!对于NameNode中的属性:

现在,我们来谈谈DataNode节点的启动。在上面已经说到,DataNode节点必须要在NameNode节点启动之后的一个恰当时机才能启动,即要等到NameNode节点的Server服务开启之后,DataNode才能启动。对于DataNode主要有DataStorage、DataNodeProtocol、DataXceiverServer、Server四个组件,其中,DataStorage保存数据块信息,DataNodeProtocol负责调用NameNode的服务,DataXceiverServer负责数据的传输(客户端和其它DataNode),Server为客户端和其它DataNode节点服务。关于这四大组件的启动顺序以及是如何工作的,我们还是来看一张图吧:

上图基本描述了NameNode节点和DataNode节点各自的启动过程,同时也反映了整个HDFS集群的启动过程以及其内部节点之间的工作机制。
本文只是从宏观的角度阐述了HDFS集群从启动到正式为Client服务这一段时间内,NameNode和DataNode的工作过程,以后我还会更加深入细致的讨论这其中的细节问题。另外,我还要必须提到的是在HDFS集群中,除了NameNode节点和DataNode节点之外,还有另一类节点:SecondaryNameNode。SecondaryNameNode主要负责对NameNode节点的元数据进行备份。(未完待续)