Hadoop深入学习:NameNode

        对于Hadoop中的所有服务器节点,从HDFS的角度来看,分为NameNode节点和DataNode节点,其中在整个集群中只有一个NameNode节点,其他都是DataNode节点;从MapReduce的角度看,分为JobTracker节点和TaskTracker节点,其中只有一个JobTracker节点,其他所有节点都是TaskTracker节点。
        NameNode节点和JobTracker节点在集群中都由单一节点故障的问题,即这样的节点停机或失效后整个集群这都会出问题。
     
        NameNode节点中不会保存数据块,数据全都在DateNode节点上保存。
        
        本节我们主要学些NameNode节点及其相关的信息。
        NameNode节点维护着HDFS文件系统中两个最重要的两个关系:
        1)、HDFS的文件目录树,以及文件的数据块索引,即每个文件对应的数据块列表;
        2)、数据块和DataNode数据节点的对应关系,即某一数据块保存在哪些数据节点上的信息。
        其中,HDFS文件系统的文件目录树、元信息和数据块索引等信息会持久化到磁盘上,具体的就是保存在命名空间镜像FSImage文件和Edit Log编辑日志文件;数据块和数据节点的对应关系则在NameNode节点启动后,由DataNode节点通过“心跳”上报给NameNode节点,动态建立。
       
        NameNode节点的主要作用:管理DataNode节点,接受DataNode节点的注册、心跳、数据块提交等信息的上报,发送数据块复制、删除恢复等名字节点的指令,同时名字节点还为客户端为文件目录上的操作和对文件数据读写、对HDFS系统进行管理提供支持。

        NameNode节点和DataNode节点之间主要是通过数据节点向NameNode发送的“心跳”来交互信息,然后在对心跳的回复中将操作命令返回给DateNode节点,然后DataNode节点执行操作命令。

        在第一次启动NameNode节点时,必须先格式化名字节点,命令行操作如下:
              hadoop namenode -format
        

       
        NameNode的安全模式
        在NameNode节点,内存中一片空白,第一要紧的是就是将命名空间镜像文件加载到内存,并应用镜像编辑日志,站在这个过程结束后,会创建一个新的检查点,包括新的命名空间镜像和一个空的编辑日志。完成上述工作后,名字节点已经可以对Client提供服务,但是只是只读模式,接着名字节点开始处理DataNode节点,在内存中保存DataNode节点“汇报”给NameNode节点的数据块信息,以高效的运行整个分布式文件系统,然后名字节点就会离开安全模式,进入工作状态。

        HDFS安全模式的特点总结:
        1)、在安全模式下,HDFS只提供系统的只读模式,不能进行修改;
        2)、NameNode名字节点启动时,根据配置,检查第二关系中数据块的副本信息,满足条件后才离开安全模式;
        3)、可以通过命令行支持安全膜的状态查询及设置。

       
              //查看NameNode节点是否处于安全模式
              hadoop dfsadmin -safemode get

              //等待名字节点离开安全模式
              hadoop dfsadmin -safemode wait

              //命令HDSF进入安全模式
              hadoop dfsadmin -safemode enter

              //让名字节点离开安全模式
              hadoop dfsadmin -safemode leave
        


        注:在安全模式下,名字节点也会对数据节点进行心跳检查。

猜你喜欢

转载自flyingdutchman.iteye.com/blog/1874875