zoukankan      html  css  js  c++  java
  • hadoop中NameNode、DataNode、Secondary、NameNode、ResourceManager、NodeManager 介绍

    1:NameNode

    2:SecondNameNode

    3:DataNode

    4:ResourceManager

    5:NodeManager

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    参考博客:

    http://dongxicheng.org/mapreduce-nextgen/nodemanager-architecture/

    http://dongxicheng.org/mapreduce-nextgen/yarnmrv2-resource-manager-infrastructure/

    http://www.aboutyun.com/thread-7778-1-1.html

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    1、NameNode介绍
           Namenode 管理者文件系统的Namespace。它维护着文件系统树(filesystem tree)以及文件树中所有的文件和文件夹的元数据(metadata)。管理这些信息的文件有两个,分别是Namespace 镜像文件(Namespace image)和操作日志文件(edit log),这些信息被Cache在RAM中,当然,这两个文件也会被持久化存储在本地硬盘。Namenode记录着每个文件中各个块所在的数据节点的位置信息,但是他并不持久化存储这些信息,因为这些信息会在系统启动时从数据节点重建。

    Namenode结构图课抽象为如图:

    客户端(client)代表用户与namenode和datanode交互来访问整个文件系统。客户端提供了一些列的文件系统接口,因此我们在编程时,几乎无须知道datanode和namenode,即可完成我们所需要的功能。

    1.1Namenode容错机制


    没有Namenode,HDFS就不能工作。事实上,如果运行namenode的机器坏掉的话,系统中的文件将会完全丢失,因为没有其他方法能够将位于不同datanode上的文件块(blocks)重建文件。因此,namenode的容错机制非常重要,Hadoop提供了两种机制。

    第一种方式是将持久化存储在本地硬盘的文件系统元数据备份。Hadoop可以通过配置来让Namenode将他的持久化状态文件写到不同的文件系统中。这种写操作是同步并且是原子化的。比较常见的配置是在将持久化状态写到本地硬盘的同时,也写入到一个远程挂载的网络文件系统。

    第二种方式是运行一个辅助的Namenode(Secondary Namenode)。 事实上Secondary Namenode并不能被用作Namenode它的主要作用是定期的将Namespace镜像与操作日志文件(edit log)合并,以防止操作日志文件(edit log)变得过大。通常,Secondary Namenode 运行在一个单独的物理机上,因为合并操作需要占用大量的CPU时间以及和Namenode相当的内存。辅助Namenode保存着合并后的Namespace镜像的一个备份,万一哪天Namenode宕机了,这个备份就可以用上了。

    但是辅助Namenode总是落后于主Namenode,所以在Namenode宕机时,数据丢失是不可避免的。在这种情况下,一般的,要结合第一种方式中提到的远程挂载的网络文件系统(NFS)中的Namenode的元数据文件来使用,把NFS中的Namenode元数据文件,拷贝到辅助Namenode,并把辅助Namenode作为主Namenode来运行。

    当然在hadoop 2.x 中,已经有了新的解决方案,那就是NameNode HA(因为Hadoop还包括 ResourceManage HA),hadoop联邦, Hadoop HA是指同时启动两个NameNode,一个处于工作状态,另外一个处于随时待命状态,这样在处于工作状态的NameNode所在的服务器宕机时,可在数据不丢失的情况下,手工或者自动切换到另外一个NameNode提供服务。

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    2、Datanode介绍
    Datanode是文件系统的工作节点,他们根据客户端或者是namenode的调度存储和检索数据,并且定期向namenode发送他们所存储的块(block)的列表。

    集群中的每个服务器都运行一个DataNode后台程序,这个后台程序负责把HDFS数据块读写到本地的文件系统。当需要通过客户端读/写某个 数据时,先由NameNode告诉客户端去哪个DataNode进行具体的读/写操作,然后,客户端直接与这个DataNode服务器上的后台程序进行通 信,并且对相关的数据块进行读/写操作。

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    3、Secondary NameNode介绍
       另外一篇关于Secondary NameNode 的博客,描述的也十分清晰:点击阅读

     Secondary  NameNode是一个用来监控HDFS状态
    ————————————————
    版权声明:本文为CSDN博主「Thinkgamer_」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/Gamer_gyt/article/details/51758881

  • 相关阅读:
    Pytorch学习笔记14----torch中相关函数使用:view函数、max()函数、squeeze()函数
    Pytorch学习笔记13----LSTM+CRF模型的CRF层原理与代码理解
    Pytorch学习笔记12----损失函数nn.CrossEntropyLoss()、nn.NLLLoss()
    Pytorch学习笔记12---- Pytorch的LSTM的理解及入门小案例
    Pytorch学习笔记11----model.train()与model.eval()的用法、Dropout原理、relu,sigmiod,tanh激活函数、nn.Linear浅析、输出整个tensor的方法
    Pytorch学习笔记10----LSTM循环神经网络原理
    webpack入门
    js判断对象是否为空对象的几种方法
    js的防抖和节流
    简述http协议
  • 原文地址:https://www.cnblogs.com/ninglinglong/p/11604637.html
Copyright © 2011-2022 走看看