Hadoop权威指南_读书笔记_第11章 管理Hadoop——namenode与secondarynamenode

详解namenode与secondarynamenode

一 、NameNode

  • 1. namenode的目录结构
    • 运行中的namenode有如下所示的目录结构
      在这里插入图片描述
    • 1.VERSION文件
      • 是一个java属性文件,其中包含正在运行的HDFS的版本信息。文件一般包含以下内容
        在这里插入图片描述
      • layoutVersion:是一个负整数,描述HDFS持久性数据结构的版本。
      • namespaceID:是文件系统命名空间的唯一标识符,是在namenode首次格式化时创建的。
      • clusterID:是将HDFS集群作为一个整体赋予的唯一标识符,对联邦HDFS非常重要,这里一个集群由多个命名空间组成,每个命名空间有由一个namanode管理。
      • blockpoolID:是数据块池的唯一标识符,数据块池中包含了一个由namenode管理的命名空间中的所有文件。
      • cTime:标记了namenode在存储系统创建的时间。
      • storageType:说明该存储目录包含的是namenode的数据结构。
      • in_use.lock:是一个锁文件,避免其他namenode实例同时使用同一个存储目录的情况。
    • 2.镜像文件fsimage 和编辑日志 edits [面试重点]
      • 客户端执行更新操作时,这些事务首先被记录到编辑日志(edits文件) 中。namenode在内存中维护文件系统的元数据;当编辑日志被修改时,相关元数据也同步更新。
      • 编辑日志在概念上是单个实体,但它体现为磁盘上的多个文件。每个文件称为一个**“段”(segement)**,名称由前缀edits组成,后缀指示出该文件所包含的事务ID。任一时刻只有一个文件处于打开可写的转态,在每个事务完成之后,在向客户端发送成功代码之前,文件都需要更新和同步。
      • 每个fsimage文件都是文件系统元数据的一个完整的永久性的检查点。并非每一个写操作都会更新fsimage文件,因为它是一个大型的文件(可高达几个GB)。如果频繁的执行写操作,会事系统运行极为缓慢。

        每个fsimage文件包含文件系统中的所有目录和文件inode的序列化信息。每个inode是一个文件或者目录的元数据的内部描述方式。
        数据块block存储在datanode中,但是fsimage文件并不描述datanode。但是namenode会将数据块的映射关系放在内存中。当DataNode加入集群时,namenode想datanode索取块列表以建立块映射关系。

      • 如果namenode发生故障,最近的fsimage文件将被载入到内存中,以重构元数据的最近状态,再从相关点开始向前 执行**编辑日志(edits文件)**中的每个事务。
      • 如上所述,编辑日志edits会无限增长,尽管这种情况对于namenode的运行没有任何影响,但是由于需要恢复编辑日志的各种事务,namenode的重启操作比较耗时。在这段时间内,文件系统(HDFS)将处于离线状态服务不可用。为了解决namenode重启耗时问题,引入了 secondarynamenode

二、Secondary Namenode

  • 1. Secondary Namenode的目录结构

    • Secondary Namenode的检查点目录结构与namenode相同,这种设计的好处是,在主namenode发生故障时,可以从Secondary Namenode恢复数据。
  • 2. Secondary Namenode作用

    • 解决namenode重启耗时问题,减少namenode的工作压力,定期合并fsimage文件和编辑日志。为namenode内存中的文件元数据创建检查点
  • 3. 创建检查点,合并流程
    在这里插入图片描述

    • ① Secondary Namenode 请求 namenode停止使用正在进行中的edits文件,这样以后新的编辑操作记录到一个新文件中,namenode还会更新所有存储目录中的seen_txid文件。
    • ② Secondary Namenode 从 namenode获取最近 fsimage 和 edits文件
    • ③ Secondary Namenode将 fsiamge文件载入内存,逐一执行edtis文件的事务操作创建新的合并后的fsimage文件(_.ckpt结尾)
    • ④ Secondary Namenode 将新的fsimage发送回namenode ,namenode其保存为临时的.ckpt文件
    • ⑤ namenode重新命名临时的fsimage文件,便于日后使用。最终,那么namenode拥有新的fsimage文件和一个小的正在进行中的edtis文件。

      Secondary Namenode 和 namenode 拥有相近的内存需求,因此Secondary Namenode需要运行在一台专用机器上,与 namenode 分开。

  • 4. 创建检查点的条件
    在这里插入图片描述

这本书很全,是Hadoop中的圣经级教材,不过看起来挺累。 内容简介 Discover how Apache Hadoop can unleash the power of your data. This comprehensive resource shows you how to build and maintain reliable, scalable, distributed systems with the Hadoop framework -- an open source implementation of MapReduce, the algorithm on which Google built its empire. Programmers will find details for analyzing datasets of any size, and administrators will learn how to set up and run Hadoop clusters. This revised edition covers recent changes to Hadoop, including new features such as Hive, Sqoop, and Avro. It also provides illuminating case studies that illustrate how Hadoop is used to solve specific problems. Looking to get the most out of your data? This is your book. Use the Hadoop Distributed File System (HDFS) for storing large datasets, then run distributed computations over those datasets with MapReduce Become familiar with Hadoop’s data and I/O building blocks for compression, data integrity, serialization, and persistence Discover common pitfalls and advanced features for writing real-world MapReduce programs Design, build, and administer a dedicated Hadoop cluster, or run Hadoop in the cloud Use Pig, a high-level query language for large-scale data processing Analyze datasets with Hive, Hadoop’s data warehousing system Take advantage of HBase, Hadoop’s database for structured and semi-structured data Learn ZooKeeper, a toolkit of coordination primitives for building distributed systems "Now you have the opportunity to learn about Hadoop from a master -- not only of the technology, but also of common sense and plain talk."
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值