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节点的配置,备份和恢复,以及secondNamenode的配置
其中一个问题是报but there is no HDFS_NAMENODE_USER defined. Aborting operation. Starting datanodes 直接解决 在Hadoop安装目录下找到sbin文件夹 在里面修改四个文件 1、对于start-dfs.sh和stop-dfs.sh文件,...
False ) hdfs_namenode_host - HDFS NameNode 的主机名(默认: localhost ) hdfs_namenode_port - HDFS NameNode 的端口(默认: 8020 ) hdfs_disks - HDFS DataNode 上可用的磁盘列表(默认值: [] ) hdfs_...
Ansible角色和流浪汉文件使用WebHDFS创建本地HDFS Lab跑步光盘回购无所事事流浪ssh namenode-1 须藤-s 苏哈杜普光盘/ opt / hadoop / bin / hdfs namenode -format(仅一次!!!) /opt/hadoop/sbin/start-dfs.sh &...
利用Zookeeper对HDFS中Namenode单点失败的改进方法,鲁阳,郑岩,在大数据时代分布式处理的已经成为潮流,而Hadoop是一种应用十分广泛的分布式处理框架。但在Hadoop的使用中,Namenode的单点失败问题一�
(1)第一次启动 NameNode 格式化后,创建 fsimage 和 edits 文件 (2)客户端对元数据进行增删改的请求 (3)NameNode 记录操作
在Hadoop1.0时代,Hadoop的两大核心组件HDFS ...NameNode保存了整个HDFS的元数据信息,一旦NameNode挂掉,整个HDFS就无法访问,同时 Hadoop生态系统中依赖于HDFS的各个组件,包括MapReduce、Hive、Pig以及
在Hadoop集群整个生命周期里,由于调整参数、Patch、升级等多种场景需要频繁操作NameNode重启,不论采用何种架构,重启期间集群整体存在可用性和可靠性的风险,所以...在HDFS的整个运行期里,所有元数据均在NameNode
NameNode职责
分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析; 在大数据系统中作用: 为各类分布式运算框架(如:mapreduce,spark,tez,……)提供数据存储...
HDFS体系结构(NameNode、DataNode详解)
先对Hadoop进行系统的阐述,然后重点介绍HDFS,分析HDFS源码
Hadoop之HDFS源代码分析 pdf版 ,从源码学习文件系统的精髓,值得一看
HDFS读写流程&NameNode;工作机制流程图原件,用于修改和调整
hdfs源码分析整理,分布式文件系统详细讲解。
大数据笔记,hdfs 包含:hdfs的安装和一些介绍 大数据笔记,hdfs 包含:hdfs的安装和一些介绍