Hadoop 源码解析 No.1 NameNode

本文介绍了Hadoop 2.9版本中NameNode的启动过程及核心功能,详细解析了NameNode如何管理文件系统的命名空间和数据块分配。

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 上报之后建立起来。

未完待续

25/10/24 00:40:34 WARN namenode.FSNamesystem: Encountered exception loading fsimage java.io.FileNotFoundException: No valid image files found at org.apache.hadoop.hdfs.server.namenode.FSImageTransactionalStorageInspector.getLatestImages(FSImageTransactionalStorageInspector.java:165) at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:671) at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:322) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1052) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:681) at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:666) at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:728) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:953) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:932) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1673) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1741) 25/10/24 00:40:34 INFO mortbay.log: Stopped HttpServer2$SelectChannelConnectorWithSafeStartup@hadoop1:50070 25/10/24 00:40:34 INFO impl.MetricsSystemImpl: Stopping NameNode metrics system... 25/10/24 00:40:34 INFO impl.MetricsSystemImpl: NameNode metrics system stopped. 25/10/24 00:40:34 INFO impl.MetricsSystemImpl: NameNode metrics system shutdown complete. 25/10/24 00:40:34 ERROR namenode.NameNode: Failed to start namenode. java.io.FileNotFoundException: No valid image files found at org.apache.hadoop.hdfs.server.namenode.FSImageTransactionalStorageInspector.getLatestImages(FSImageTransactionalStorageInspector.java:165) at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:671) at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:322) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1052) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:681) at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:666) at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:728) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:953) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:932) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1673) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1741) 25/10/24 00:40:34 INFO util.ExitUtil: Exiting with status 1: java.io.FileNotFoundException: No valid image files found 25/10/24 00:40:34 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at hadoop1/192.168.10.161 ************************************************************/
最新发布
10-25
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值