大数据,机器学习,人工智能Mac学习大数据玩转大数据

【大数据学习】第九篇-NameNode工作机制

2019-07-05  本文已影响1人  irving_yuan

1. NameNode与Secondary NameNode

简述

NameNode负责管理编辑日志(edits文件)和记录镜像(fsimage);
NameNode在运行过程,所有的HDFS的操作都会被记录在当前edits文件中,且按照操作序号进行排序。
SecondrayNameNode协助NameNode,在每一个checkPoint定时1小时(或一百万条操作)对历史edits文件进行合并。在合并时,snn会从nn复制全部的数据到自身。
功能:根据edits文件和fsimage文件,就可以恢复一个hdfs的系统状态。
注:系统中数据块的位置不存放在namenode上,而是存放在datanode上。namenode只保留块位置信息的映射表。
具体如下图所示:


NameNode工作机制

checkpoint配置

<property>
  <name>dfs.namenode.checkpoint.txns</name>
  <value>1000000</value>
  <description>操作动作次数</description>
</property>

<property>
  <name>dfs.namenode.checkpoint.check.period</name>
  <value>60</value>
  <description> 1分钟检查一次操作次数 </description>
</property>

2. 镜像文件和编辑日志文件

文件目录

在namenode的dfs/name目录下存放edits文件、fsimage文件、seen_xid文件。

查看edits和fsimage

  1. oiv命令
    用于格式化并查看fsimage文件
# hdfs -oiv -p [格式化文件类型] -i [fsimage文件] -o [输出文件位置]
hdfs oiv -p XML -i fsimage_0000000000000000151 -o /opt/fsimage.xml

输出结果包括基础配置,块信息、目录结构、文件状态等


输出数据
  1. oev命令
    用于格式化并查看edits文件
# 命令规则同上
hdfs oev -p XML -i edits_0000000000000000147-0000000000000000151 -o /opt/edits.xml

输出文件如下:


edits文件

可以看出两个操作记录Record,创建hello/world目录,删除/hello目录

  1. 滚动编辑日志
    HDFS文件系统在更新操作时,会滚动编辑日志。也可以手动执行滚动
hdfs dfsadmin -rollEdits

3. 安全模式

HDFS的安全模式是指,客户端在该模式下只读,没有任何写操作权限。目的在于保护hdfs文件系统。

最小副本级别指实际副本数量占配置副本数量的比例

<property>
    <name>dfs.safemode.threshold.pct</name>
    <value>0.999f</value>
    <description>最小比例</description>
</property>

基本指令

hdfs dfsadmin -safemode get # 获取状态
hdfs dfsadmin -safemode enter # 进入安全模式
hdfs dfsadmin -safemode leave # 离开安全模式
hdfs dfsadmin -safemode wait # 等待安全模式状态
上一篇 下一篇

猜你喜欢

热点阅读