Hadoop 源码解析 No.1 NameNode
注:本人使用的版本是 2.9,并且确保你的机器上已经安装了Source
在新版的Hadoop 当中 启动模式已经从
$bin/hadoop ⇒ $bin/hdfs
我们打开这个文件:
if [ "$COMMAND" = "namenode" ] ; then
CLASS='org.apache.hadoop.hdfs.server.namenode.NameNode'
HADOOP_OPTS="$HADOOP_OPTS $HADOOP_NAMENODE_OPTS"
可以看到最终指向的是 org.apache.hadoop.hdfs.server.namenode.NameNode 方法。
打开对应的文件,可以看到官方给的注释。
每一个HDFS系统都包含有一个单一的 “namenode” (在这里备份的 namenode 不算)。 NameNode 可以作为HDFS中文件目录和文件分配的管理者,保存最重要的东西,主要有这两个:
1. 文件名 ⇒ 块序列(命名空间)
2. 数据块 ⇒ 机器列表(inode)
其中 文件到数据块 映射保存在 namenode 当中,而 数据块到机器 映射关系则由 DataNode 上报之后建立起来。
未完待续