`

hadoop namenode format做了什么?

阅读更多

一看到format就和磁盘格式化联想到一起,然后这个format是对hdfs来说的,所以有些人害怕真的是格式化自己的文件系统了,其实大可不必担心。

 

具体的实现format的功能是在  org.apache.hadoop.hdfs.server.namenode.FSImage  这个类的format(StorageDirectory sd)方法中,我们首先大概看下方法说明:

 

/** Create new dfs name directory.  Caution: this destroys all files
   * in this filesystem. */

   这个方法说明是建立新的dfs name dir,但是会删除所有这个目录下的文件,这个看方法实现中的第一行就可以知道

 

sd.clearDirectory(); // create currrent dir

针对clearDirectory的说明如下:
     * Clear and re-create storage directory.
     * <p>
     * Removes contents of the current directory and creates an empty directory.
     * 
     * This does not fully format storage directory.

 

  好下面看具体的做了什么

1:saveFSImage(getImageFile(sd, NameNodeFile.IMAGE));
2:editLog.createEditLogFile(getImageFile(sd, NameNodeFile.EDITS));

   其实就是建立新的image文件以及editlog文件,只是这些文件建立的时候会写入一些初始值。

   首先来看image文件的建立过程:

 

1:saveINode2Image  //save the root
2:saveImage // save the rest of the nodes
3:fsNamesys.saveFilesUnderConstruction //Serializes leases

   其实这三部 在第一次format时只有第一步会真正写数据,其他两步在这个时候还未有作用。

   第一步写了一些权限组相关的信息,具体可以看  fsimage 文件。


  再来看editlog的建立过程:

  用RandomAccessFile 建立了一个rw文件用于记录editlog。

 

  总的来说:namenode format只是初始化一些目录和文件而已。

分享到:
评论
2 楼 小二滨 2015-03-23  
cenyuhai 写道
楼主拜托你把这篇文章给删了行吗?你知道fsimage和editlog是干嘛的吗?今天已经害了我一个朋友把数据误删了。如果不删,请教在format之后如何找回数据!

这个方法说明是建立新的dfs name dir,但是会删除所有这个目录下的文件,这个看方法实现中的第一行就可以知道
1 楼 cenyuhai 2014-06-13  
楼主拜托你把这篇文章给删了行吗?你知道fsimage和editlog是干嘛的吗?今天已经害了我一个朋友把数据误删了。如果不删,请教在format之后如何找回数据!

相关推荐

    hadoop安装过程中的问题

    6.hadoop namenode format 7./hadoop/etc/slaves这个文件里必须把所有的slaves的主机名写进去。 8.mast的/etc/hosts slave1的/etc/hosts slave2 的/etc/hosts (localhost: 127.0.0.1可以去掉,只写主机名对应的IP...

    hadoop2.0 2个namenode 2个datanode 部署

    在启动服务之前,我们需要格式化 Namenode,使用命令 ${HADOOP_HOME}/bin/hdfs namenode -format -clusterid [clusterID]。然后,在某个 Namenode 上执行 ${HADOOP_HOME}/sbin/,启动服务。 高可用性 在这个部署...

    运行成功的hadoop配置文件

    Without "hadoop namenode -format" 目录结构: /data/hadoop 为工作目录,实际为一个链接(link) /data/hadoop-0.19.1 为实际0.19.1的安装目录 /data/hadoop-0.20.1 为实际0.20.1的安装目录 /data/hadoop-0.19.1的...

    hadoop在windows上运行需要winutils支持和hadoop.dll等文件

    3. **格式化NameNode**:在首次启动Hadoop时,你需要使用`hdfs namenode -format`命令对NameNode进行格式化,创建HDFS的元数据存储。 4. **启动Hadoop服务**:使用`start-dfs.cmd`和`start-yarn.cmd`脚本启动HDFS和...

    大数据之hadoop分布式集群初次启动 (2).docx

    然后,使用 hadoop namenode –format 命令格式化 HDFS。 3. 启动 Hadoop 启动 Hadoop 分布式集群需要按照顺序启动各个模块,首先启动 HDFS 模块,然后启动 YARN 模块。可以使用 start-dfs.sh 和 start-yarn.sh ...

    hadoop运行wordcount实例

    - 解决方案:当执行 `hadoop namenode -format` 时,确保 DataNode 和 NameNode 的元数据被正确格式化。若之前有残留的临时文件,需要先清除,然后重新执行格式化命令 `hadoop namenode -format`。 #### 三、成功...

    Hadoop安装与配置详细教程(Linux)

    hdfs namenode -format ``` 7. **启动Hadoop服务**: 在master节点上启动Hadoop的所有服务: ``` start-dfs.sh start-yarn.sh ``` 8. **检查Hadoop状态**: 通过Web界面或命令行检查Hadoop集群的状态: -...

    hadoop组件程序包.zip

    5. 初始化HDFS:执行hadoop namenode -format命令,初始化NameNode。 6. 启动Hadoop:依次启动DataNode、NameNode、YARN和MapReduce服务。 7. 测试运行:使用hadoop fs -ls命令检查HDFS是否正常工作,通过运行...

    hadoop配置运行错误

    问题描述:在hadoop系统中,如果我们对namenode进行格式化(使用bin/hadoop namenode -format命令),然后重启集群,可能会出现Incompatible namespaceIDS错误。 解决方法: 1. 删除datanode的数据文件:删除...

    win环境 hadoop 3.1.0安装包

    在命令行中执行`hadoop namenode -format`,对HDFS进行初始化。 9. **启动Hadoop**: 运行`start-dfs.cmd`启动HDFS,然后运行`start-yarn.cmd`启动YARN。通过`jps`命令检查Hadoop进程是否正常运行。 10. **测试...

    大数据 hadoop-3.1.3 linux 安装包

    完成配置后,初始化HDFS命名空间,格式化NameNode,通过`hadoop namenode -format`命令实现。接着,启动Hadoop的各个服务,包括DataNode、NameNode、ResourceManager、NodeManager等。可以使用`start-dfs.sh`和`...

    hadoop-2.4.1版本大数据

    4. **格式化NameNode**:使用`hadoop namenode -format`命令对NameNode进行格式化。 5. **启动Hadoop**:依次启动DataNode、ResourceManager、NodeManager和NameNode。 6. **测试运行**:通过上传文件到HDFS并执行...

    hadoop-2.7.2.tar.gz

    5. 初始化HDFS:使用`hadoop namenode -format`命令格式化NameNode。 6. 启动Hadoop服务:启动DataNode、NameNode、ResourceManager、NodeManager等相关进程。 7. 测试Hadoop安装:可以通过`hadoop fs -ls /`命令...

    hadoop-2.7.5 windows环境

    1. **格式化NameNode**: 在命令行中运行`hadoop namenode -format`,首次启动前必须执行此操作。 2. **启动Hadoop服务**: 先启动DataNode和SecondaryNameNode,再启动NameNode,最后启动ResourceManager和...

    Hadoop2.7.6 在windows下需要的hadoop.dll winutils.exe等文件

    4. **格式化NameNode**:使用`hadoop namenode -format`命令初始化Hadoop的文件系统。 5. **启动Hadoop服务**:运行`start-dfs.cmd`和`start-yarn.cmd`来启动DataNodes、NameNode、ResourceManager和其他相关服务。...

    hadoop2.6.5伪分布式搭建

    - 如果 `hadoop` 命令找不到,确保你在 Hadoop 的 bin 目录外运行命令,如:`../bin/hadoop namenode -format`。 - 创建软链接(快捷方式):`ln -s 源文件 目标目录`,确保使用绝对路径。 9. **启动 Hadoop 服务...

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

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

    windows版hadoop

    - 初始化NameNode:`hadoop namenode -format` - 启动DataNode和NameNode:`start-dfs.sh` - 启动YARN资源管理器:`start-yarn.sh` - 启动Hadoop的Web监控界面,通常在`http://localhost:50070`查看NameNode状态...

    Windows上安装Hadoop

    - 初始化NameNode:`hadoop namenode -format`。 - 启动DataNode:`hadoop datanode`。 - 启动NameNode:`hadoop namenode`。 - 启动ResourceManager:`yarn resourcemanager`。 - 启动NodeManager:`yarn ...

Global site tag (gtag.js) - Google Analytics