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主备安装文档,详细,命令只需要copy执行即可
在12月1日“Hadoop生态系统”主题分论坛,华为电信与核心网产品线BigData团队的架构师Uma ...他的演讲主题是“HDFS Name Node高可用性分析”,通过对构建在Bookkeeper上的的HDFS Name Node高可用性,尤其是...
大家都知道HDFS的架构由NameNode,SecondaryNameNode和DataNodes组成,其源码类图如下图所示:正如上图所示,NameNode和DataNode继承了很多的protocol用于彼此间的通信,其实nameNode还实现了...实现了ClientProtocol...
HDFS 中 NameNode 节点的配置、备份和恢复 HDFS(Hadoop Distributed File System)是 Hadoop 生态系统中的分布式文件系统,它提供了高效、可靠、可扩展的文件存储解决方案。 NameNode 是 HDFS 集群中的中心服务器...
在Hadoop分布式文件系统(HDFS)的运行过程中,可能会遇到一个常见的错误,即"ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation. Starting datanodes"。这个错误通常意味着系统在尝试启动...
- **查看Fsimage和Edits**:可以使用`hdfs oiv`和`hdfs oev`命令来离线查看Fsimage和Edits文件的内容,以便于调试和分析。 4. 检查点触发条件: - **定时触发**:SecondaryNameNode会按照预设的时间间隔自动请求...
False ) hdfs_namenode_host - HDFS NameNode 的主机名(默认: localhost ) hdfs_namenode_port - HDFS NameNode 的端口(默认: 8020 ) hdfs_disks - HDFS DataNode 上可用的磁盘列表(默认值: [] ) hdfs_...
2. `hdfs namenode -format`:格式化NameNode,创建文件系统的命名空间。 3. `hdfs datanode`:运行DataNode,存储和管理数据块。 HDFS体系结构是Hadoop的核心组件,提供了高效、可靠、可扩展的分布式文件系统解决...
NameNode是Hadoop分布式文件系统HDFS的核心组件之一,负责维护文件系统的元数据。下面是NameNode的职责和相关知识点: NameNode的职责 NameNode是HDFS的中心节点,负责维护文件系统的命名空间。它的主要职责包括:...
`FSDirectory`类管理NameNode的文件系统目录,`FSNamesystem`类封装了所有的HDFS元数据操作。 总的来说,Hadoop的HDFS源代码分析涉及了分布式文件系统的实现细节,包括文件的分块、复制策略、元数据管理、故障恢复...
Ansible角色和流浪汉文件使用WebHDFS创建本地HDFS Lab跑步光盘回购无所事事流浪ssh namenode-1 须藤-s 苏哈杜普光盘/ opt / hadoop / bin / hdfs namenode -format(仅一次!!!) /opt/hadoop/sbin/start-dfs.sh &...
hdfs源码分析整理 在分布式文件系统中,HDFS(Hadoop Distributed File System)扮演着核心角色,而HDFS的源码分析则是深入了解HDFS架构和实现机理的关键。本文将对HDFS源码进行详细的分析和整理,涵盖了HDFS的目录...
Hadoop Distributed File System(HDFS)是一种基于分布式计算的文件系统,它遵循“分而治之”的原则,将大文件和大量文件分割成小块,并在多台服务器上分布式存储,以便于并行处理和分析大规模数据。在大数据处理中...
在Hadoop中HDFS源代码分析方面,主要功能组件、体系结构、NameNode和DataNode的实现方法是关键。HDFS的主要功能组件包括HDFS的核心类和接口,体系结构涉及HDFS的整体设计,NameNode是HDFS的核心,负责管理文件系统的...
在Hadoop1.0时代,Hadoop的两大核心组件HDFS ...NameNode保存了整个HDFS的元数据信息,一旦NameNode挂掉,整个HDFS就无法访问,同时 Hadoop生态系统中依赖于HDFS的各个组件,包括MapReduce、Hive、Pig以及
在Hadoop集群整个生命周期里,由于调整参数、Patch、升级等多种场景需要频繁操作NameNode重启,不论采用何种架构,重启期间集群整体存在可用性和可靠性的风险,所以...在HDFS的整个运行期里,所有元数据均在NameNode
5. 分析实验结果,理解HDFS操作的底层逻辑。 七、实验总结与思考 实验结束后,学生应反思实验过程中遇到的问题,分享解决策略,并探讨未解决的问题,以加深对HDFS的理解和应用能力。 总之,这个实验项目全方位覆盖...
在执行hadoop namenode -format命令时,出现未知的主机名。 问题原因: 出现这种问题的原因是Hadoop在格式化HDFS的时候,通过hostname命令获取到的主机名与/etc/hosts文件中进行映射的时候,没有找到。 解决...