Hadoop的管理目录

HDFS文件结构

1、NameNode的文件结构,NameNode会创建VERSION、edits、fsimage、fstime文件目录。其中dfs.name.dir属性是一个目录列表,是每个目录的镜像文件。VERSION文件是JAVA属性文件,其中包含运行HDFS的版本信息。包含内容:

  其中,namespaceID是文件系统的唯一标识符,当文件系统第一次格式化时,便会被创建,这个标识符是必须跟各DataNode及诶单和NameNode保持一致。NameNode会使用它识别新的DataNode,DataNode只有在向NameNode注册后才会获得此namespaceID。cTime属性标记了NameNode存储空间创建的时间。对于新格式化的,这里时间为0,只要文件系统被更新,就会更新到一个新的时间戳上。StorageType指出此存储目录包含一个NameNode的数据结构,在DataNode中它的属性值为DATA_NODE.  LayoutVersion是一个负的整数,定义了HDFS持久数据结构的版本。各节点的版本号要一致。

在NameNode的存储目录中还包含edits、fsimage、fstime三个文件,它们都是二进制的文件,可以通过HadoopWritable对象进行序列化。

2、编辑日志(edit log)及文件系统映像(filesystem image)

  (1)当客户执行写操作时,首先NameNode会在编辑日志中写下记录,并在内存中保存一个文件系统元数据,这个描述符在编辑日志有了改动后更新,内存中的元数据用来提供读数据请求服务。

  (2)编辑日志会在每次成功操作之后,且成功代码尚未返回给客户端之前进行刷新和同步。对于要写入多个目录的操作,写入流要刷新和同步到所有的副本上,保证操作不会因为故障而丢失数据。

  (3)fsimage文件是文件系统元数据的持久性检查点,和编辑日志不同,它不会在每个文件系统写操作后进行更新,因为如果NameNode失败,那么元数据的最新状态可以通过从磁盘中读取fsimage文件加载到内存中来进行重建恢复,然后进行编辑日志中的操作(NameNode启动时也做的事情)。一个fsimage文件中包含以序列化格式存储的文件系统目录和文件inodes.每个inodes表征一个文件或目录的元数据信息,以及文件的副本数、修改和访问时间等信息。

  Hadoop在NameNode之外的节点上运行了一个Secondary NameNode进程,它的任务是为原NameNode内存中的文件系统元数据产生检查点。是一个辅助NameNode处理fsimage和编辑日志的节点,它从NameNode中拷贝fsimage和编辑日志到零食目录合并成一个新的fsimage,随后会将新的fsimage上传到NameNode,这样NameNode便可更新fsimage并删除原来的编辑日志了。

NameNode在安全模式下,可通过以下命令运行这个过程: hadoop dfsadmin -saveNamespace

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hadoop实操

如何在CDH集群外配置非Kerberos环境的Gateway节点

21640
来自专栏AILearning

Apache Spark 2.2.0 中文文档 - 集群模式概述 | ApacheCN

集群模式概述 该文档给出了 Spark 如何在集群上运行、使之更容易来理解所涉及到的组件的简短概述。通过阅读 应用提交指南 来学习关于在集群上启动应用。 ...

19550
来自专栏简单聊聊Spark

Mapreduce实现原理总结

一.首先,我们从客户端,JobTracker,TaskTracker这个层面来分析整个mapreduce过程

25810
来自专栏Hadoop实操

0459-如何使用SQuirreL通过JDBC连接CDH的Hive(方式一)

SQuirreL SQL Client是一个使用Java写的访问各种数据库客户端工具,使用JDBC统一了数据库的访问接口,通过SQuirreL SQL Clie...

13330
来自专栏伦少的博客

spark-submit提交Spark Streamming+Kafka程序

35950
来自专栏云计算教程系列

在腾讯云CVM上搭建Hadoop集群

本教程将介绍如何在腾讯云CVM上搭建Hadoop集群。Hadoop中是一个Apache的框架,可以让你通过基本的编程处理跨服务器集群的分布式方式的大型数据集。H...

30640
来自专栏分布式系统和大数据处理

安装和配置Hadoop集群(3节点)

在 安装和配置Hadoop(单节点) 这篇文章中,已经进行了Hadoop单机伪集群模式的部署。生产环境中,Hadoop都是以集群方式进行安装和部署的,否则,就不...

40550
来自专栏Jed的技术阶梯

Spark性能调优01-资源调优

在开发完Spark作业之后,就该为作业配置合适的资源了。 Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。

14220
来自专栏Hadoop实操

如何指定Spark1作业中Driver和Executor使用指定范围内端口

在CDH集群中提交Spark作业,大家也都知道Spark的Driver和Executor之间通讯端口是随机的,Spark会随选择1024和65535(含)之间的...

32860
来自专栏chokwin的专栏

如何安装和设置3节点Hadoop集群

Hadoop是一个开源Apache项目,允许在大型数据集上创建并行处理应用程序,分布在网络节点上。它由处理节点间数据可扩展性和冗余的Hadoop分布式文件系统(...

29040

扫码关注云+社区

领取腾讯云代金券