一看到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只是初始化一些目录和文件而已。
分享到:
相关推荐
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...
在启动服务之前,我们需要格式化 Namenode,使用命令 ${HADOOP_HOME}/bin/hdfs namenode -format -clusterid [clusterID]。然后,在某个 Namenode 上执行 ${HADOOP_HOME}/sbin/,启动服务。 高可用性 在这个部署...
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的...
3. **格式化NameNode**:在首次启动Hadoop时,你需要使用`hdfs namenode -format`命令对NameNode进行格式化,创建HDFS的元数据存储。 4. **启动Hadoop服务**:使用`start-dfs.cmd`和`start-yarn.cmd`脚本启动HDFS和...
然后,使用 hadoop namenode –format 命令格式化 HDFS。 3. 启动 Hadoop 启动 Hadoop 分布式集群需要按照顺序启动各个模块,首先启动 HDFS 模块,然后启动 YARN 模块。可以使用 start-dfs.sh 和 start-yarn.sh ...
- 解决方案:当执行 `hadoop namenode -format` 时,确保 DataNode 和 NameNode 的元数据被正确格式化。若之前有残留的临时文件,需要先清除,然后重新执行格式化命令 `hadoop namenode -format`。 #### 三、成功...
hdfs namenode -format ``` 7. **启动Hadoop服务**: 在master节点上启动Hadoop的所有服务: ``` start-dfs.sh start-yarn.sh ``` 8. **检查Hadoop状态**: 通过Web界面或命令行检查Hadoop集群的状态: -...
5. 初始化HDFS:执行hadoop namenode -format命令,初始化NameNode。 6. 启动Hadoop:依次启动DataNode、NameNode、YARN和MapReduce服务。 7. 测试运行:使用hadoop fs -ls命令检查HDFS是否正常工作,通过运行...
问题描述:在hadoop系统中,如果我们对namenode进行格式化(使用bin/hadoop namenode -format命令),然后重启集群,可能会出现Incompatible namespaceIDS错误。 解决方法: 1. 删除datanode的数据文件:删除...
在命令行中执行`hadoop namenode -format`,对HDFS进行初始化。 9. **启动Hadoop**: 运行`start-dfs.cmd`启动HDFS,然后运行`start-yarn.cmd`启动YARN。通过`jps`命令检查Hadoop进程是否正常运行。 10. **测试...
完成配置后,初始化HDFS命名空间,格式化NameNode,通过`hadoop namenode -format`命令实现。接着,启动Hadoop的各个服务,包括DataNode、NameNode、ResourceManager、NodeManager等。可以使用`start-dfs.sh`和`...
4. **格式化NameNode**:使用`hadoop namenode -format`命令对NameNode进行格式化。 5. **启动Hadoop**:依次启动DataNode、ResourceManager、NodeManager和NameNode。 6. **测试运行**:通过上传文件到HDFS并执行...
5. 初始化HDFS:使用`hadoop namenode -format`命令格式化NameNode。 6. 启动Hadoop服务:启动DataNode、NameNode、ResourceManager、NodeManager等相关进程。 7. 测试Hadoop安装:可以通过`hadoop fs -ls /`命令...
1. **格式化NameNode**: 在命令行中运行`hadoop namenode -format`,首次启动前必须执行此操作。 2. **启动Hadoop服务**: 先启动DataNode和SecondaryNameNode,再启动NameNode,最后启动ResourceManager和...
4. **格式化NameNode**:使用`hadoop namenode -format`命令初始化Hadoop的文件系统。 5. **启动Hadoop服务**:运行`start-dfs.cmd`和`start-yarn.cmd`来启动DataNodes、NameNode、ResourceManager和其他相关服务。...
- 如果 `hadoop` 命令找不到,确保你在 Hadoop 的 bin 目录外运行命令,如:`../bin/hadoop namenode -format`。 - 创建软链接(快捷方式):`ln -s 源文件 目标目录`,确保使用绝对路径。 9. **启动 Hadoop 服务...
在执行hadoop namenode -format命令时,出现未知的主机名。 问题原因: 出现这种问题的原因是Hadoop在格式化HDFS的时候,通过hostname命令获取到的主机名与/etc/hosts文件中进行映射的时候,没有找到。 解决...
- 初始化NameNode:`hadoop namenode -format` - 启动DataNode和NameNode:`start-dfs.sh` - 启动YARN资源管理器:`start-yarn.sh` - 启动Hadoop的Web监控界面,通常在`http://localhost:50070`查看NameNode状态...
- 初始化NameNode:`hadoop namenode -format`。 - 启动DataNode:`hadoop datanode`。 - 启动NameNode:`hadoop namenode`。 - 启动ResourceManager:`yarn resourcemanager`。 - 启动NodeManager:`yarn ...