hadoop之hdfs的理解

  1. hadoop的来源?node

    hadoop起源于Nutch,Nutch是一个网络搜索引擎,由 Doug Cutting 这我的建立的。Nutch主要用构建一个大型的全网搜索引擎 , 包括网页抓取 、 索引 、查询等功能 , 但随着抓取网页数量的增长 , 遇到了严重的可扩展性问题 , 即不能解决数十亿网页的存储和索引问题 。 以后 , 谷歌发表的两篇论文为该问题提供了可行的解决方案 。因为谷歌仅开源了思想而未开源代码 , Nutch 项目组便根据论
    文完成了一个开源实现 , 即 Nutch 的分布式文件系统 ( NDFS )。另外一篇是 2004 年发表的关
    于谷歌分布式计算框架 MapReduce 的论文 。 该论文描述了谷歌内部最重要的分布式计算
    框架 MapReduce 的设计艺术 , 该框架可用于处理海量网页的索引问题 。 一样 , 因为谷歌未
    开源代码 , Nutch 的开发人员完成了一个开源实现 。 因为 NDFS 和 MapReduce 不只适用于
    搜索领域 , 2006 年年初 , 开发人员便将其移出 Nutch , 成为 Lucene 的一个子项目 ,称为Hadoop 。 大约同一时间 , Doug Cutting 加入雅虎公司 , 且公司赞成组织一个专门的团队继
    续发展 Hadoop 。 同年 2 月 , Apache Hadoop 项目正式启动以支持 MapReduce 和 HDFS 的独
    立发展 。 2008 年 1 月 , Hadoop 成为 Apache 顶级项目 , 迎来了它的快速发展期 。
    服务器

  2. Hadoop包括那些核心东西?网络

    Hadoop框架中最核心的东西就是HDFS和MapReduce框架

    HDFS:(Hadoop distributed file system)分布式文件系统。分布式

    MapReduce:是一个并行计算框框架ide

  3. HDFS的存储原理是什么?oop

    HDFS是一个分布式文件系统,它将一个文件分红一个或多个块,每一个块默认大小是64M,(固然也能够本身调整大小)存储在DataNode节点上。搜索引擎

    一个标准的HDFS集群有3个守护进程组成。spa

    Namenode:集群中的数目有1个,主要用来存储文件系统的元数据信息。设计

            元数据中包含的信息有:文件的ownship和permissions;文件包含那些快,以及备份;块保存    在那些datanode上(启动时后,datanode本身会上报)。Namenode其自己是一个jetty服务器,用来进行名称查询的。在启动时候,会首先加载元数据信息至内存中,存储在磁盘文件名为fsp_w_picpath。

             可是block的位置信息不会保存到fsp_w_picpath内。这样设计的好处是即使datanode的IP地址或者主机名发生了改变,也不影响文件系统中元数据的存储。管理员只需拆下硬盘,将它们插入新的机箱,而后启动新机器,这依然不会影响元数据的存储。

    fsp_w_picpath:元数据镜像文件

    Editslog记录HDFS元数据的变化。

    DataNode:Slave节点,奴隶,干活的。负责存储client发来的数据块block;执行数据块的读写操做。

    SecondNameNode:是NameNode的冷备份;合并fsp_w_picpath和fsedits而后再发给namenode。

    冷备份:b是a的冷备份,若是a坏掉。那么b不能立刻代替a工做。可是b上存储a的一些信息,减小a坏掉以后的损失。

    热备份:b是a的热备份,若是a坏掉。那么b立刻运行代替a的工做。

    namenode内存中存储的是=fsp_w_picpath+edits。

    4.NameNode和SecondNode之间的关系?

    客户端进行HDFS文件操做(建立,修改,复制,删除)时,首先会把这个操做记录在日志文件中(EditsLog)中。在日志记录这个操做后,NameNode修改内存中的文件系统的元数据信息。这个操做成功以后,日志都会被同步到文件系统中去。fsp_w_picpath文件(命名空间印象文件)是内存中元数据在硬盘上CheckPoint的结果,不能从硬盘上直接打开修改fsp_w_picpath文件。SecondDataNode的做用就是帮助DataNode将内存中的元数据CheckPoint到硬盘上。

    CHeckPoint的过程以下。

    (1)SecondNameNode通知NameNode生成新的日志文件,之后的日志都会记录在新的日志文件中。

    (2)SecondNameNode用HTTP Get从NameNode节点得到fsp_w_picpath文件及旧的日志文件。

    (3)SecondNameNode将fsp_w_picpath加载到内存中,并执行日志文件中的全部操做,而后生成新的fsp_w_picpath文件。

    (4)  SecondNameNode用HTTP Post将fsp_w_picpath文件传送给NameNode。

    (5)NameNode这时候,就可使用新的fsp_w_picpath文件和新的日志文件,写入这次CheckPoint的时间。

    SecondNameNode周期性的合并,能够在配置文件中core-site.xml中进行设置。

    fs.checkpoint.period//时间周期    fs.checkpoint.size  //日志文件的大小。

    若是NameNode损坏,这时候就须要人工从NameNode恢复数据,会或多或少丢失一部分数据。

    因此尽可能将其SecondNameNode和NameNode分开,放在不一样的机器上。

相关文章
相关标签/搜索