`
GQM
  • 浏览: 24941 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[笔记]hdfs namenode FSNamesystem分析

阅读更多
NameNode在内存中维护整个文件系统的元数据镜像,用于HDFS的管理。
NameNode中元数据的管理主要由类FSNamesystem实现。
引用
/***************************************************
* FSNamesystem does the actual bookkeeping work for the
* DataNode.
*
* It tracks several important tables.
*
* 1)  valid fsname --> blocklist  (kept on disk, logged)
* 2)  Set of all valid blocks (inverted #1)
* 3)  block --> machinelist (kept in memory, rebuilt dynamically from reports)
* 4)  machine --> blocklist (inverted #2)
* 5)  LRU cache of updated-heartbeat machines
***************************************************/
public class FSNamesystem implements FSConstants, FSNamesystemMBean, FSClusterStats,
    NameNodeMXBean, MetricsSource

重要的成员:
引用
//
  // Stores the correct file name hierarchy
  //
  public FSDirectory dir;

FSDirectory实现了INode的管理。
引用
//
  // Mapping: Block -> { INode, datanodes, self ref }
  // Updated only in response to client-sent information.
  //
  final BlocksMap blocksMap = new BlocksMap(DEFAULT_INITIAL_MAP_CAPACITY,
                                            DEFAULT_MAP_LOAD_FACTOR);

BlockMap存放了整个文件系统所有的block,以及每个block对应的元数据,包括所属的INode(即文件)、每个副本的位置Datanode的信息、以及自身,通过BlockInfo封装,BlockInfo继承Block。
引用
/**
   * Stores the datanode -> block map. 
   * <p>
   * Done by storing a set of {@link DatanodeDescriptor} objects, sorted by
   * storage id. In order to keep the storage map consistent it tracks
   * all storages ever registered with the namenode.
   * A descriptor corresponding to a specific storage id can be
   * <ul>
   * <li>added to the map if it is a new storage id;</li>
   * <li>updated with a new datanode started as a replacement for the old one
   * with the same storage id; and </li>
   * <li>removed if and only if an existing datanode is restarted to serve a
   * different storage id.</li>
   * </ul> <br>
   * The list of the {@link DatanodeDescriptor}s in the map is checkpointed
   * in the namespace image file. Only the {@link DatanodeInfo} part is
   * persistent, the list of blocks is restored from the datanode block
   * reports.
   * <p>
   * Mapping: StorageID -> DatanodeDescriptor
   */
  NavigableMap<String, DatanodeDescriptor> datanodeMap =
    new TreeMap<String, DatanodeDescriptor>();

DatanodeDescriptor是类DatanodeInfo的子类,其封装了Datanode存放的block集合。

元数据主要类图:
  • 大小: 41.4 KB
分享到:
评论

相关推荐

    HDFS namenode主备安装

    最新的hdfs namenode主备安装文档,详细,命令只需要copy执行即可

    Maheshwara Rao G:HDFS NameNode的高可用性研究

    在12月1日“Hadoop生态系统”主题分论坛,华为电信与核心网产品线BigData团队的架构师Uma ...他的演讲主题是“HDFS Name Node高可用性分析”,通过对构建在Bookkeeper上的的HDFS Name Node高可用性,尤其是...

    HDFS之NameNode分析

    大家都知道HDFS的架构由NameNode,SecondaryNameNode和DataNodes组成,其源码类图如下图所示:正如上图所示,NameNode和DataNode继承了很多的protocol用于彼此间的通信,其实nameNode还实现了...实现了ClientProtocol...

    HDFS中NameNode节点的配置、备份和恢复.doc

    HDFS 中 NameNode 节点的配置、备份和恢复 HDFS(Hadoop Distributed File System)是 Hadoop 生态系统中的分布式文件系统,它提供了高效、可靠、可扩展的文件存储解决方案。 NameNode 是 HDFS 集群中的中心服务器...

    [hadoop] ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation. Starting datanodes

    在Hadoop分布式文件系统(HDFS)的运行过程中,可能会遇到一个常见的错误,即"ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation. Starting datanodes"。这个错误通常意味着系统在尝试启动...

    11_尚硅谷大数据之HDFS_NameNode和SecondaryNameNode1

    - **查看Fsimage和Edits**:可以使用`hdfs oiv`和`hdfs oev`命令来离线查看Fsimage和Edits文件的内容,以便于调试和分析。 4. 检查点触发条件: - **定时触发**:SecondaryNameNode会按照预设的时间间隔自动请求...

    ansible-hdfs:用于安装 Cloudera HDFS 的 Ansible 角色

    False ) hdfs_namenode_host - HDFS NameNode 的主机名(默认: localhost ) hdfs_namenode_port - HDFS NameNode 的端口(默认: 8020 ) hdfs_disks - HDFS DataNode 上可用的磁盘列表(默认值: [] ) hdfs_...

    HDFS体系结构(NameNode、DataNode详解)

    2. `hdfs namenode -format`:格式化NameNode,创建文件系统的命名空间。 3. `hdfs datanode`:运行DataNode,存储和管理数据块。 HDFS体系结构是Hadoop的核心组件,提供了高效、可靠、可扩展的分布式文件系统解决...

    NameNode职责.pptx

    NameNode是Hadoop分布式文件系统HDFS的核心组件之一,负责维护文件系统的元数据。下面是NameNode的职责和相关知识点: NameNode的职责 NameNode是HDFS的中心节点,负责维护文件系统的命名空间。它的主要职责包括:...

    Hadoop中HDFS源代码分析

    `FSDirectory`类管理NameNode的文件系统目录,`FSNamesystem`类封装了所有的HDFS元数据操作。 总的来说,Hadoop的HDFS源代码分析涉及了分布式文件系统的实现细节,包括文件的分块、复制策略、元数据管理、故障恢复...

    ansible-hadoop

    Ansible角色和流浪汉文件使用WebHDFS创建本地HDFS Lab跑步光盘回购无所事事流浪ssh namenode-1 须藤-s 苏哈杜普光盘/ opt / hadoop / bin / hdfs namenode -format(仅一次!!!) /opt/hadoop/sbin/start-dfs.sh &...

    hdfs源码分析整理

    hdfs源码分析整理 在分布式文件系统中,HDFS(Hadoop Distributed File System)扮演着核心角色,而HDFS的源码分析则是深入了解HDFS架构和实现机理的关键。本文将对HDFS源码进行详细的分析和整理,涵盖了HDFS的目录...

    11HDFS的读写流程&NameNode、DataNode工作机制——好程序

    Hadoop Distributed File System(HDFS)是一种基于分布式计算的文件系统,它遵循“分而治之”的原则,将大文件和大量文件分割成小块,并在多台服务器上分布式存储,以便于并行处理和分析大规模数据。在大数据处理中...

    Hadoop之HDFS源代码分析 pdf

    在Hadoop中HDFS源代码分析方面,主要功能组件、体系结构、NameNode和DataNode的实现方法是关键。HDFS的主要功能组件包括HDFS的核心类和接口,体系结构涉及HDFS的整体设计,NameNode是HDFS的核心,负责管理文件系统的...

    HadoopNameNode高可用(HighAvailability)实现解析

    在Hadoop1.0时代,Hadoop的两大核心组件HDFS ...NameNode保存了整个HDFS的元数据信息,一旦NameNode挂掉,整个HDFS就无法访问,同时 Hadoop生态系统中依赖于HDFS的各个组件,包括MapReduce、Hive、Pig以及

    HDFSNameNode重启优化

    在Hadoop集群整个生命周期里,由于调整参数、Patch、升级等多种场景需要频繁操作NameNode重启,不论采用何种架构,重启期间集群整体存在可用性和可靠性的风险,所以...在HDFS的整个运行期里,所有元数据均在NameNode

    实验项目 实战 HDFS 实验报告

    5. 分析实验结果,理解HDFS操作的底层逻辑。 七、实验总结与思考 实验结束后,学生应反思实验过程中遇到的问题,分享解决策略,并探讨未解决的问题,以加深对HDFS的理解和应用能力。 总之,这个实验项目全方位覆盖...

    hadoop格式化HDFS出现错误解决办法

    在执行hadoop namenode -format命令时,出现未知的主机名。  问题原因:  出现这种问题的原因是Hadoop在格式化HDFS的时候,通过hostname命令获取到的主机名与/etc/hosts文件中进行映射的时候,没有找到。 解决...

Global site tag (gtag.js) - Google Analytics