zoukankan      html  css  js  c++  java
  • "hadoop namenode -format"命令的作用和影响的文件

    在hadoop部署好了之后是不能马上应用的,而是对配置的文件系统进行格式化。这里的文件系统,在物理上还未存在,或者用网络磁盘来描述更加合适;还有格式化,并不是传统意义上的磁盘清理,而是一些清除与准备工作。

    namemode是hdfs系统中的管理者,它负责管理文件系统的命名空间,维护文件系统的文件树以及所有的文件和目录的元数据,元数据的格式如下:

    同时为了保证操作的可靠性,还引入了操作日志,所以,namenode会持久化这些数据到本地。对于第一次使用HDFS时,需要执行-format命令才能正常使用namenode节点。

    在namenode节点上有个重要的路径,就是{dfs.name.dir},这个属性在我们配置conf/hdfs-site.xml时已经设置好了,这个参数指定了文件系统镜像存放的路径,并且可以采用逗号分隔的方式使用多个路径,文件系统就会复制多份到这些路径下,如下格式:

        <property>  
            <name>dfs.name.dir</name>  
            <value>/opt/hadoop/datalog1,/opt/hadoop/datalog2</value>  
        </property> 

    分放的路径包含一个或者多个远程共享目录,例如基于NFS的共享目录。这样当一个namenode不能工作时,可以启用备用的namenode节点,并将备用节点的路径同样指向此远程共享目录,从而保障数据的完整性。同样的配置也可以应用于{dfs.name.edits.dir}以实现日志数据备份。

    下面我们再看每一个{dfs.name.dir}下存放的文件,执行-format后会在文件夹下生成{dfs.name.dir}/current/fsimage,{dfs.name.dir}/current/edits, {dfs.name.dir}/current/fstime,{dfs.name.dir}/current/VERSION,{dfs.name.dir}/image/fsimage。下面说一下这些文件的具体作用:

    fsimage:存储命名空间(实际上就是目录和文件)的元数据信息;

    edits:用来存储对命名空间操作的日志信息,实现namenode节点的恢复;

    fstime:用来存储check point 的时间;

    VERSION:存放namenode的版本信息;

    /image/fsimage: 上一次提交前的/current/fsimage文件。

    我在15点30分左右执行了-format命令,版本信息如下:

    #Mon Nov 25 15:30:51 CST 2013
    namespaceID=342829229
    cTime=0
    storageType=NAME_NODE
    layoutVersion=-41

  • 相关阅读:
    每日博客
    每日博客
    预开发软件书 新
    laravel的优点
    Laravel 自己创建ServiceProvider 与 yansongda/laravel-pay 支付服务
    laradock
    普通静态绑定与后期静态绑定
    phpstorm和xdebug的配置 变量的单步调试
    phpstorm 连接远程docker
    docker php-fpm安装xdebug 与phpstorm firefox联调
  • 原文地址:https://www.cnblogs.com/wzyj/p/3441651.html
Copyright © 2011-2022 走看看