了解NameNode

来源:互联网 发布:js防水防水涂料 编辑:程序博客网 时间:2024/06/05 21:17

元数据目录结构

Hadoop运行时产生的文件,元数据目录dfs.namenode.name.dir的信息主要通过配置文件core-site.xml进行配置。
   <property>

        <name>hadoop.tmp.dir</name>

        <value>/opt/modules/hadoop-2.5.0/data</value>

   </property>  

   [user01@hxl01~]cd/opt/modules/hadoop-2.5.0/data/dfs/namesecondary/current

   [user01@hxl01 current]$ ls

   edits_0000000000000000001-0000000000000000001  fsimage_0000000000000000253      fsimage_0000000000000000255.md5

   edits_0000000000000000002-0000000000000000079  fsimage_0000000000000000253.md5  VERSION

   edits_0000000000000000254-0000000000000000255  fsimage_0000000000000000255

目录主要包括:edits           编辑日志文件(对文件修改添加等操作指令)

         fsimage             文件系统镜像

         VERSION             运行HDFS的版本信息

NameNode启动

加载镜像文件(fsimage)载入内存,同时进行执行编辑日志文件的各项操作(edits)。

   若edits文件过大?重启载入时间变长。辅助namenode进行解决(SecondaryNameNode

同时等待datanode发送报告检查其数据块否有足够多的datanode.期间namenode会进入安全模式。

NameNode安全模式

   文件系统处于安全状态,只读不写。进行对数据的完整和安全性保护。

如何退出安全模式:

   一、手动 查看安全模式状态

         [user01@hxl01 hadoop-2.5.0]$ bin/hadoop dfsadmin -safemode get

         Safe mode is OFF  离开

     手动离开/进入

         bin/hadoop dfsadmin -safemode leave/enter

   二、满足‘最小复本条件’,30秒之后退出安全模式

    DataNode会向namenode发送报告。整个文件系统中有99.9%块满足最小复本级别。通过配置文件hdfs-site.xml进行配置

     <property>

        <name>dfs.replication</name>

        <value>1</value>

     </property>

     value10,既每个数据块有10个复本故而当只存在五个复本时既50%,系统化不会离开安全模式。

数据块复本存放策略

第一个复本存放在本机架某一个datanode节点

第二个复本存放在同一机架另外一个节点

第三个复本存放在另外一个机架的节点

读取数据原则(就近原则)

SecondaryNameNode 合并流程


合并过程:

SecondaryNameNode请求NameNode停止使用edits文件,NameNode创建一个新的edits文件,将操作指令记录到新的文件中。

SecondaryNameNode 从NameNode获取到fsimage和edits文件(采用Get)

SecondaryNameNode 将fsimage文件载入内存,逐一执行编辑日志文件上操作指令,生产一个新的镜像文件。

SecondaryNameNode 将新的镜像文件发送给NameNode(采用Post)

通过参数的一系列配置重复上述步骤。


辅助NameNode和主NameNode需求内存几乎一致,故SecondaryNameNode 需配置在单独机器上。

创建检查点。

每隔一小创建检查点由参数fs.checkpoint.period进行配置

当编辑日志文件达到一定大小也会创建检查点有参数fs.checkpoint.size进行配置
系统每隔五分钟检查编辑日志文件大小





原创粉丝点击