1、在属性dfs.namenode.name.dir指定的目录中创建相应的元数据文件
a)current/VERSION
#Fri Dec 06 11:21:35 CST 2013
namespaceID=140437801
clusterID=CID-5a02557f-1977-44d6-b7bc-d124be2d0ba3
cTime=0
storageType=NAME_NODE
blockpoolID=BP-599437854-10.12.120.79-1386299958223
layoutVersion=-47
b)current/seen_txid
写入事务序号txid
0
FSImage$FSImageSaver写入current/fsimage.ckpt
然后再重命名为fsimage(+19位的txid)fsimage_0000000000000000000
1、文件头
out.writeInt(HdfsConstants.LAYOUT_VERSION);
out.writeInt(sourceNamesystem.unprotectedGetNamespaceInfo()
.getNamespaceID());
out.writeLong(fsDir.rootDir.numItemsInTree());//整个文件系统中包含有多少文件和目录
out.writeLong(sourceNamesystem.getGenerationStampV1());
out.writeLong(sourceNamesystem.getGenerationStampV2()); out.writeLong(sourceNamesystem.getGenerationStampAtblockIdSwitch());
out.writeLong(sourceNamesystem.getLastAllocatedBlockId());
out.writeLong(context.getTxId());
out.writeLong(sourceNamesystem.getLastInodeId());
2、接下来便是目录和文件的元数据信息
Map<String, INodeFileUnderConstruction> nodes =
leaseManager.getINodesUnderConstruction();
out.writeInt(nodes.size()); // write the size
for (Map.Entry<String, INodeFileUnderConstruction> entry
: nodes.entrySet()) {
FSImageSerialization.writeINodeUnderConstruction(
out, entry.getValue(), entry.getKey());
writeString(path, out);
out.writeLong(cons.getId());
out.writeShort(cons.getFileReplication());
out.writeLong(cons.getModificationTime());
out.writeLong(cons.getPreferredBlockSize());
writeBlocks(cons.getBlocks(), out);
cons.getPermissionStatus().write(out);
writeString(cons.getClientName(), out);
writeString(cons.getClientMachine(), out);
out.writeInt(0); // do not store locations of last block
}
参考:http://abloz.com/2013/01/08/hadoop-1-0-4-fsimage-file-format.html
http://blog.csdn.net/xhh198781/article/details/6904615
分享到:
相关推荐
使用方式为“hadoop fs -stat [format] <路径>”。 21. tail命令:用于查看文件尾部信息。使用方式为“hadoop fs -tail [-f] <文件>”。 22. chmod命令:用于修改文件或目录的权限。使用方式为“hadoop fs -chmod ...
- **-stat [format] <path>**:显示文件的状态信息。 - **-tail [-f] <file>**:显示文件的最后几行。 - **-test -[defsz] <path>**:测试文件或目录的状态。 - **-text [-ignoreCrc] <src>**:以文本形式显示文件...
hadoop job [-list] [-list-active-trackers] [-history <file>] [-status <jobid>] [-kill <jobid>] [-info <jobid>] [-counters <jobid>] [-tasks <jobid>] [-conf <configuration file>] [-D <property=value>] ...
<value>/usr/local/hadoop_store/hdfs/namenode</value> </property> <property> <name>dfs.data.dir</name> <value>/usr/local/hadoop_store/hdfs/datanode</value> </property> </configuration> ``` **...
- 使用`hdfs namenode -format`命令格式化文件系统。 - 确保JournalNode已经启动,然后执行格式化操作。 5. **启动HDFS服务**: - 在所有DataNode上安装并配置Hadoop环境。 - 启动DataNode服务。 - 最后启动...
sudo -u hdfs hdfs namenode -format ``` 六、启动Hadoop服务 创建Hadoop的系统用户和服务,并启动所有Hadoop进程: ```bash sudo useradd -r -M -s /sbin/nologin hdfs sudo su - hdfs sudo -u hdfs hadoop fs -...
- `<name>dfs.namenode.name.dir</name>` 定义了NameNode存储元数据的目录,即 `file:///data/hadoop/hdfs/name`。 - `<name>dfs.datanode.data.dir</name>` 是DataNode存储数据块的目录,设置为 `file:///data/...
hdfs namenode -format (hadoop namenode -format) 3.4启动hadoop 先启动HDFS sbin/start-dfs.sh 再启动YARN sbin/start-yarn.sh 3.5验证是否启动成功 使用jps命令验证 27408 NameNode 28218 Jps ...
hdfs namenode -format -force ``` 3. 启动服务: - 启动所有相关的Hadoop进程,包括NameNode、JournalNode、DataNode等。 4. 配置自动故障切换(Automatic Failover, AFO): - 在ResourceManager节点上配置...
sqoop import/export --connect <JDBC_URL> --table <TABLE_NAME> --target-dir <HDFS_DIR> --username <USER> --password <PASSWORD> [其他选项] ``` 1.4.2 Sqoop 导入示例 导入 MySQL 数据库中的 `mytable` 到 ...
sudo -u hdfs hdfs namenode -format start-dfs.sh start-yarn.sh jps # 检查是否所有进程都已启动 ``` ### 二、HBase的安装与运行 #### 1. 安装HBase HBase通常与Hadoop一起使用,因此确保Hadoop已经正确配置。...
<value>/data/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/data/hdfs/datanode</value> </property> </configuration> ``` - 配置yarn-site.xml(如果使用YARN...
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-<version>.jar wordcount input output ``` 以上就是配置单机伪分布式Hadoop的基本步骤,这将帮助你理解Hadoop的工作原理,并为更复杂的分布式环境...
在Hadoop目录下运行`hdfs namenode -format`命令即可。 六、启动Hadoop服务 Hadoop的服务包括NameNode、DataNode、SecondaryNameNode以及ResourceManager、NodeManager等。启动Hadoop集群,可以依次执行以下命令: ...
<value>/data/hadoop/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/data/hadoop/hdfs/datanode</value> </property> ``` - `mapred-site.xml`: 指定MapReduce...
sudo -u hdfs hdfs namenode -format ``` 接着启动所有服务: ```bash sudo systemctl start hadoop-hdfs-namenode sudo systemctl start hadoop-hdfs-datanode sudo systemctl start hadoop-yarn-resourcemanager...
<value>hdfs://192.168.170.130:9000</value> </property> <property> <name>Hadoop.tmp.dir</name> <value>/opt/Hadoop-1.2</value> </property> </configuration> ``` - **解释**: - `fs.default.name`...
<description>namenode SAVE hdfs NAMESPACE BYTES</description> </property> <property> <name>dfs.data.dir</name> <value>/usr/hadoop/hdfs/data</value> <description>datanode DATA STORAGE</...
hdfs namenode -format ``` **4.2 启动集群** 使用以下命令启动 Hadoop 集群: ```bash sbin/start-dfs.sh sbin/start-yarn.sh ``` 至此,Hadoop 3.0 分布式集群的搭建完成。接下来可以进行相关的测试和数据分析...
1. **格式化HDFS**:在NameNode上执行命令`hdfs namenode -format`。 2. **启动Hadoop服务**:在NameNode上执行命令`start-dfs.sh`来启动HDFS,在ResourceManager上执行`start-yarn.sh`启动YARN。 #### 六、验证...