HDFS的NameNode节点信息管理(元数据)

HDFS的NameNode信息

1、NameNode的信息存放地址

NameNode存储DataNode的元数据,NameNode主要是用于维护DataNode信息。它存储在hadoop文件夹下data/dfs/name/current/,其中以fsimage开头的文件主要存储目录、文件名称及其依赖关系,以edits开头的文件主要存储尚未来得及合并的日志记录

ls hadoop/data/dfs/name/current
#-----------------------------------------------------------------------------
edits_0000000000000000001-0000000000000000002  fsimage_0000000000000000005.md5
edits_0000000000000000003-0000000000000000003  fsimage_0000000000000000014
edits_0000000000000000004-0000000000000000005  fsimage_0000000000000000014.md5
edits_0000000000000000006-0000000000000000014  seen_txid
edits_inprogress_0000000000000000015           VERSION
fsimage_0000000000000000005
#-----------------------------------------------------------------------------

2、NameNode节点数据查看

#查看目录、文件名称及其依赖关系,将信息转化为xml格式
hdfs oiv -i hadoop_home/data/dfs/name/current/fsimage* -o save_path/filename -p XMl
#例程:
hdfs oiv -i /opt/software/hadoop313/data/dfs/name/current/fsimage_0000000000000000258 -o ~/fsimage_0000000000000000258 -p XML
#查看文件日志记录
hdfs oev -i hadoop_home/data/dfs/name/current/edits* -o save_path/filename -p XMl
#例程:
hdfs oev -i /opt/software/hadoop313/data/dfs/name/current/edits_inprogress_0000000000000000079 -o ~/edits_inprogress_0000000000000000079 -p XML

3、fsimage文件

<?xml version="1.0" encoding="utf-8"?>

<fsimage> 
  <!--版本信息-->
  <version> 
    <layoutVersion>-64</layoutVersion>  
    <onDiskVersion>1</onDiskVersion>  
    <oivRevision>ba631c436b806728f8ec2f54ab1e289526c90579</oivRevision> 
  </version>  
  <!--NameNode信息-->
  <NameSection> 
    <!--命名空间ID-->
    <namespaceId>1540392763</namespaceId>  
    <!--gen戳版本-->
    <genstampV1>1000</genstampV1>  
    <genstampV2>1006</genstampV2>  
    <genstampV1Limit>0</genstampV1Limit> 
    <!--最后追加的本地block块的ID-->
    <lastAllocatedBlockId>1073741830</lastAllocatedBlockId>  
    <!--进程编号-->
    <txid>44</txid> 
  </NameSection>
  <!--纠删码信息-->
  <ErasureCodingSection> 
    <!--第一个纠删码策略信息-->
    <erasureCodingPolicy> 
      <!--纠删码编号-->
      <policyId>1</policyId>  
      <!--里德-所罗门类纠删码-->
      <policyName>RS-6-3-1024k</policyName>  
      <!--单元大小为1MB-->
      <cellSize>1048576</cellSize>  
      <!--策略状态-->
      <policyState>DISABLED</policyState>  
      <!--策略的详细信息-->
      <ecSchema> 
        <!--策略名称-->
        <codecName>rs</codecName>  
        <!--数据单元-->
        <dataUnits>6</dataUnits>  
        <!--奇偶校验单元-->
        <parityUnits>3</parityUnits> 
      </ecSchema> 
    </erasureCodingPolicy>  
    <erasureCodingPolicy> 
      <policyId>2</policyId>  
      <policyName>RS-3-2-1024k</policyName>  
      <cellSize>1048576</cellSize>  
      <policyState>DISABLED</policyState>  
      <ecSchema> 
        <codecName>rs</codecName>  
        <dataUnits>3</dataUnits>  
        <parityUnits>2</parityUnits> 
      </ecSchema> 
    </erasureCodingPolicy>  
    <erasureCodingPolicy> 
      <policyId>3</policyId>
      <policyName>RS-LEGACY-6-3-1024k</policyName>
      <cellSize>1048576</cellSize>
      <policyState>DISABLED</policyState>
      <ecSchema> 
        <codecName>rs-legacy</codecName>
        <dataUnits>6</dataUnits>
        <parityUnits>3</parityUnits>
      </ecSchema> 
    </erasureCodingPolicy>  
    <erasureCodingPolicy> 
      <policyId>4</policyId>
      <policyName>XOR-2-1-1024k</policyName>
      <cellSize>1048576</cellSize>
      <policyState>DISABLED</policyState>
      <ecSchema> 
        <codecName>xor</codecName>
        <dataUnits>2</dataUnits>
        <parityUnits>1</parityUnits>
      </ecSchema> 
    </erasureCodingPolicy>  
    <erasureCodingPolicy> 
      <policyId>5</policyId>
      <policyName>RS-10-4-1024k</policyName>
      <cellSize>1048576</cellSize>
      <policyState>DISABLED</policyState>
      <ecSchema> 
        <codecName>rs</codecName>
        <dataUnits>10</dataUnits>
        <parityUnits>4</parityUnits>
      </ecSchema> 
    </erasureCodingPolicy> 
  </ErasureCodingSection>  
  <!--内部节点信息,用于维护文件系统-->
  <INodeSection>
    <!--最后一个内部节点ID-->
    <lastInodeId>16396</lastInodeId>
    <!--内部节点数量-->
    <numInodes>12</numInodes>
    <inode>
      <!--内部节点ID-->
      <id>16385</id>
      <!--节点类型-->
      <type>DIRECTORY</type>
      <!--自闭合的节点代表根节点-->
      <name/>
      <!--创建时间-->
      <mtime>1640743069439</mtime>
      <!--用户-->
      <permission>root:supergroup:0755</permission>
      <nsquota>9223372036854775807</nsquota>
      <dsquota>-1</dsquota>
    </inode>  
    <inode>
      <id>16386</id>
      <type>DIRECTORY</type>
      <name>tmp</name>
      <mtime>1640738001903</mtime>
      <permission>root:supergroup:0770</permission>
      <nsquota>-1</nsquota>
      <dsquota>-1</dsquota>
    </inode>  
    <inode>
      <id>16387</id>
      <type>DIRECTORY</type>
      <name>hadoop-yarn</name>
      <mtime>1640738001903</mtime>
      <permission>root:supergroup:0770</permission>
      <nsquota>-1</nsquota>
      <dsquota>-1</dsquota>
    </inode>  
    <inode>
      <id>16388</id>
      <type>DIRECTORY</type>
      <name>staging</name>
      <mtime>1640738001903</mtime>
      <permission>root:supergroup:0770</permission>
      <nsquota>-1</nsquota>
      <dsquota>-1</dsquota>
    </inode>  
    <inode>
      <id>16389</id>
      <type>DIRECTORY</type>
      <name>history</name>
      <mtime>1640738001940</mtime>
      <permission>root:supergroup:0770</permission>
      <nsquota>-1</nsquota>
      <dsquota>-1</dsquota>
    </inode>  
    <inode>
      <id>16390</id>
      <type>DIRECTORY</type>
      <name>done</name>
      <mtime>1640738001903</mtime>
      <permission>root:supergroup:0770</permission>
      <nsquota>-1</nsquota>
      <dsquota>-1</dsquota>
    </inode>  
    <inode>
      <id>16391</id>
      <type>DIRECTORY</type>
      <name>done_intermediate</name>
      <mtime>1640738001940</mtime>
      <permission>root:supergroup:1777</permission>
      <nsquota>-1</nsquota>
      <dsquota>-1</dsquota>
    </inode>  
    <inode>
      <id>16392</id>
      <type>DIRECTORY</type>
      <name>test</name>
      <mtime>1640743069439</mtime>
      <permission>root:supergroup:0755</permission>
      <nsquota>-1</nsquota>
      <dsquota>-1</dsquota>
    </inode>  
    <inode>
      <id>16393</id>
      <type>DIRECTORY</type>
      <name>kb16</name>
      <mtime>1640743124723</mtime>
      <permission>root:supergroup:0755</permission>
      <nsquota>-1</nsquota>
      <dsquota>-1</dsquota>
    </inode>  
    <inode>
      <id>16394</id>
      <type>DIRECTORY</type>
      <name>hadoop</name>
      <mtime>1640743625760</mtime>
      <permission>root:supergroup:0755</permission>
      <nsquota>-1</nsquota>
      <dsquota>-1</dsquota>
    </inode>  
    <inode>
      <id>16395</id>
      <type>DIRECTORY</type>
      <name>hive</name>
      <mtime>1640743124723</mtime>
      <permission>root:supergroup:0755</permission>
      <nsquota>-1</nsquota>
      <dsquota>-1</dsquota>
    </inode> 
    <!--数据节点-->
    <inode>
      <id>16396</id>
      <type>FILE</type>
      <!--数据文件名称-->
      <name>ratings.csv</name>
      <replication>1</replication>
      <mtime>1640743625739</mtime>
      <atime>1640743618694</atime>
      <preferredBlockSize>134217728</preferredBlockSize>
      <permission>root:supergroup:0644</permission>
      <!--数据块信息-->
      <blocks>
        <block>
          <id>1073741825</id>
          <genstamp>1001</genstamp>
          <numBytes>134217728</numBytes>
        </block>  
        <block>
          <id>1073741826</id>
          <genstamp>1002</genstamp>
          <numBytes>134217728</numBytes>
        </block>  
        <block>
          <id>1073741827</id>
          <genstamp>1003</genstamp>
          <numBytes>134217728</numBytes>
        </block>  
        <block>
          <id>1073741828</id>
          <genstamp>1004</genstamp>
          <numBytes>134217728</numBytes>
        </block>  
        <block>
          <id>1073741829</id>
          <genstamp>1005</genstamp>
          <numBytes>134217728</numBytes>
        </block>  
        <block>
          <id>1073741830</id>
          <genstamp>1006</genstamp>
          <numBytes>7172347</numBytes>
        </block> 
      </blocks> 
      <!--存储策略信息-->
      <storagePolicyId>0</storagePolicyId>
    </inode> 
  </INodeSection>  
  <INodeReferenceSection/>
  <!--数据快照信息-->
  <SnapshotSection>
    <snapshotCounter>0</snapshotCounter>
    <numSnapshots>0</numSnapshots>
  </SnapshotSection>  
  <!--文件的先驱后继信息-->
  <INodeDirectorySection>
    <directory>
      <parent>16385</parent>
      <child>16392</child>
      <child>16386</child>
    </directory>  
    <directory>
      <parent>16386</parent>
      <child>16387</child>
    </directory>  
    <directory>
      <parent>16387</parent>
      <child>16388</child>
    </directory>  
    <directory>
      <parent>16388</parent>
      <child>16389</child>
    </directory>  
    <directory>
      <parent>16389</parent>
      <child>16390</child>
      <child>16391</child>
    </directory>  
    <directory>
      <parent>16392</parent>
      <child>16393</child>
    </directory>  
    <directory>
      <parent>16393</parent>
      <child>16394</child>
      <child>16395</child>
    </directory>  
    <directory>
      <parent>16394</parent>
      <child>16396</child>
    </directory> 
  </INodeDirectorySection>  
  <FileUnderConstructionSection/> 
  <!--数据加密管理-->
  <SecretManagerSection>
    <currentId>0</currentId>
    <tokenSequenceNumber>0</tokenSequenceNumber>
    <numDelegationKeys>0</numDelegationKeys>
    <!--数据标记-->
    <numTokens>0</numTokens>
  </SecretManagerSection>
  <!--缓存管理信息-->
  <CacheManagerSection>
    <nextDirectiveId>1</nextDirectiveId>
    <numDirectives>0</numDirectives>
    <numPools>0</numPools>
  </CacheManagerSection> 
</fsimage>

4、edits文件

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--代表edits文件-->
<EDITS>
  <!--edits版本信息-->
  <EDITS_VERSION>-64</EDITS_VERSION>
  <RECORD>
    <OPCODE>OP_START_LOG_SEGMENT</OPCODE>
    <DATA>
      <TXID>45</TXID>
    </DATA>
  </RECORD>
</EDITS>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Hadoop_hbase 1.处理hadoopdatanode宕机 cd path/to/hadoop 走到hadoop的bin目录 ./hadoop-daemon.sh start datanode ./hadoop-daemon.sh start tasktracker 2.处理hadoop的namenode宕机 ./hadoop-daemon.sh start namenode ./hadoop-daemon.sh start tasktracker 3.如果是新添加一个节点,需要执行以下步骤: 首先,把新节点的 IP或主机名 加入主节点(master)的 conf/slaves 文件。 然后登录新的从节点,执行以下命令: $ cd path/to/hadoop $ bin/hadoop-daemon.sh start datanode $ bin/hadoop-daemon.sh start tasktracker 然后就可以在master机器上运行balancer,执行负载均衡 $bin/hadoop balancer 4.处理hbase的regionserver宕机的办 ./hbase-daemon.sh start regionserver ./hbase-deamon.sh start zookeeper//只针对有zookeeper的regionserver而且是机子需要重启的情况 5.处理hbase的master宕机的办 ./hbase-daemon.sh start master ./hbase-daemon.sh start zookeeper//可选 6.完全重启整个集群的过程 首先是用root权限关闭所有节点的防火墙,/etc/init.d/iptables stop 然后启动hadoop集群 来到hadoop的安装路径执行: ./start-all.sh 待到集群全部成功启动之后两分钟之后执行关闭hadoop文件系统的安全模式, ./hadoop dfsadmin -safemode leave 对于hadoop文件系统安全模式的解释,如下 NameNode在启动的时候首先进入安全模式,如果datanode丢失的block达到一定的比例(1- dfs.safemode.threshold.pct),则系统会一直处于安全模式状态即只读状态。 dfs.safemode.threshold.pct(缺省值0.999f)表示HDFS启动的时候,如果DataNode上报的block个数达到了 元数据记录的block个数的0.999倍才可以离开安全模式,否则一直是这种只读模式。如果设为1则HDFS永远是处于SafeMode。 有两个方离开这种安全模式 (1)修改dfs.safemode.threshold.pct为一个比较小的值,缺省是0.999。 (2)hadoop dfsadmin -safemode leave命令强制离开 用户可以通过dfsadmin -safemode $value来操作安全模式,参数$value的说明如下: enter – 进入安全模式 leave – 强制NameNode离开安全模式 get – 返回安全模式是否开启的信息 wait – 等待,一直到安全模式结束。 //因为我们后面要用到
⼤数据基础整合 ⼤数据基础整合 第⼀章 第⼀章 信息科技需要处理的三⼤核⼼问题 信息科技需要处理的三⼤核⼼问题 信息存储、信息传输、信息处理 数据产⽣⽅式的变⾰ 数据产⽣⽅式的变⾰ 运营式系统阶段 数据库的出现使数据管理的复杂度⼤⼤降低,数据往往伴随着⼀定的运营活动⽽产⽣并记录在数据库中,数据的产⽣⽅式是被动的 ⽤户原创内容阶段 数据爆发产⽣于Web2.0时代,⽽Web2.0的最重要的标志就是⽤户原创内容 智能⼿机等移动设备加速内容产⽣ 数据产⽣⽅式是主动的 感知式系统阶段 感知式系统的⼴泛使⽤ ⼈类社会数据量第三次⼤的飞跃最终导致的⼤数据的产⽣ ⼤数据 ⼤数据4V概念(能简要概括) 概念(能简要概括) 数据量⼤、数据类型繁多、处理速度快、价值密度低 ⼤数据对思维⽅式的影响 ⼤数据对思维⽅式的影响 全样⽽⾮抽样、效率⽽⾮准确、相关⽽⾮因果 ⼤数据技术的不同层⾯及其功能 ⼤数据技术的不同层⾯及其功能 ⼤数据计算模式 ⼤数据计算模式 云计算关键技术 云计算关键技术 虚拟化、分布式存储、分布式计算、多租户等 物联⽹关键技术 物联⽹关键技术 识别和感知技术 ⽹络与通信技术 数据挖掘与融合技术 第⼆ 第⼆-三章 三章 分布式⽂件系统概念 分布式⽂件系统概念 分布式⽂件系统是⼀种通过⽹络实现⽂件在多台主机上进⾏分布式存储的⽂件系统 HDFS⽂件块 ⽂件块 HDFS默认⼀个块64MB,⼀个⽂件被分成多个块,以块作为存储单位 块的⼤⼩远远⼤于普通⽂件系统,可以最⼩化寻址开销 。 HDFS采⽤抽象的块概念可以带来以下⼏个明显的好处: ⽀持⼤规模⽂件存储 简化系统设计 适合数据备份 名称节点、数据节点的功能与⼯作原理(能简要概括) 名称节点、数据节点的功能与⼯作原理(能简要概括) 名称节点功能: 在HDFS中,名称节点(NameNode)负责管理分布式⽂件系统的命名空间,保存了两个核⼼的数据结构,即FsImage和EditLog 名称节点⼯作原理: 在名称节点启动的时候,它会将FsImage⽂件中的内容加载到内存中,之后再 执⾏EditLog⽂件中的各项操作,使得内存中的元数据和实际的同步,存在内存 中的元数据⽀持客户端的读 操作。 ⼀旦在内存中成功建⽴⽂件系统元数据的映射,则创建⼀个新的FsImage⽂件 和⼀个空的EditLog⽂件 名称节点起来之后,HDFS中的更新操作会重新写到EditLog⽂件中,因为 FsImage⽂件⼀般都很⼤(GB级别的很常见),如果所有的更新操作都往 FsImage⽂件中添加,这样会导致系 统运⾏的⼗分缓慢,但是,如果往EditLog ⽂件⾥⾯写就不会这样,因为EditLog 要⼩很多。每次执⾏写操作之后,且在 向客户端发送成功代码之前,edits⽂件都需要同步更新 数据节点: 数据节点是分布式⽂件系统HDFS的⼯作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调 度来进⾏数据的存储和检 索,并且向名称节点定期发送⾃⼰所存储的块的列表 每个数据节点中的数据会被保存在各⾃节点的本地Linux⽂件系统中 第⼆名称节点的意义与功能(理解⼯作原理,能⽤⾃⼰语⾔说明) 第⼆名称节点的意义与功能(理解⼯作原理,能⽤⾃⼰语⾔说明) 第⼆名称节点HDFS架构中的⼀个组成部分,它是⽤来保存名称节点中对HDFS 元数据信息的备份,并减少名称节点重启的时间。SecondaryNameNode⼀般是 单独运⾏在⼀台机器上 SecondaryNameNode的⼯作情况: (1)SecondaryNameNode会定期和 NameNode通信,请求其停⽌使⽤EditLog ⽂件,暂时将新的写操作写到⼀个新的⽂件 edit.new上来,这个操作是瞬间完成,上层 写⽇志的函数完 全感觉不到差别; (2)SecondaryNameNode通过HTTP GET⽅式从NameNode上获取到FsImage和 EditLog⽂件,并下载到本地的相应⽬录下 ; (3)SecondaryNameNode将下载下 来的FsImage载⼊到内存,然后⼀条⼀条地 执⾏EditLog⽂件中的各项更新操作,使得 内存中的FsImage保持最新;这个过程就是 EditLog和 FsImage⽂件合并; (4)SecondaryNameNode执⾏完(3 )操作之后,会通过post⽅式将新的 FsImage⽂件发送到NameNode节点上 (5)NameNode将从 SecondaryNameNode接收到的新的 FsImage替换旧的FsImage⽂件,同时将 edit.new替换EditLog⽂件,通过这个过程 EditLog就变⼩了 技术层⾯ 技术层⾯ 功能 功能 数据采集 与预处理 采⽤ELT⼯具将分布的、异构数据源中的数据,如关系数据、平⾯数据⽂件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝域时空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值