【HDFS】相关概念及常用命令

本文用于记录Hadoop中HDFS相关概念以及常用命令,以便日后查询。

概念之间无先后顺序,只是用于记录。

参考的Hadoop的版本是2.7.3

1. 角色

hadoop fs [hdfs dfs]          // 普通用户
hdfs dfsadmin                 // hdfs管理员

2. edit日志和fsimage文件融合

a. hadoop集群启动时融合
  生成新的inprogress_edits日志文件,将旧的inprogress_edits日志文件与fsimage文件融合,但是不生成新的fsimage文件
b. SecondaryNamenode周期生成检查点,进行融合(并不生成检查点)
  生成新的inprogress_edits日志文件,将旧的inprogress_edits日志文件与fsimage文件拷贝到secondaryNamenode中,逐一执行edits日志文件中的指令,并写进fsimage文件中,生成一个检查点文件,将检查点文件拷贝到namenode中,重命名检查点,即去掉后缀,并使之生效
c. 手动融合,进入安全模式,保存命名空间
  生成新的inprogress_edits日志文件,将旧的inprogress_edits日志文件与fsimage文件融合,写进一个新的fsimage文件中

3. dfs.hosts / dfs.hosts.exclude

a. 说明: slaves.sh 中配置的节点信息只是说明在集群启动的时候启动这些节点,而这些节点能否连上 resourcemanager ,需要配置这两个属性
b. 若没有配置这两个属性,则默认情况下,属性值为空,表示所有节点都能连
c. 在 hdfs-site.xml 文件中配置 dfs.hosts / dfs.hosts.exclude 属性
d. 属性值是文件的绝对路径,可在 hadoop 配置目录下创建 dfs.hosts.include / dfs.hosts.exclude 两个文件
e. 文件中的内容是 slaves.sh 中配置的节点
f. 属性优先级: include > exclude

dfs.hosts dfs.hosts.exclude 说明
0 0 不能连
0 1 不能连
1 0 能连
1 1 能连,但是显示decommissioning,即不可用,但文件能够存储在该节点上

 

 

 

 

 

g. 重新配置后,可刷新节点,而无需重启集群

  hdfs dfsadmin -refreshNodes

4. safemode(安全模式)

a. dfsadmin 手动进入
b. 安全模式下,不可put文件
c. 安全模式下,可手动融合edits日志和fsimage文件,即保存命名空间
d. 安全模式下,不可向hdfs文件系统中写入数据,比如,put文件,创建目录...
e. 常用命令
  hdfs dfsadmin -safemode get       // 获取当前是否在安全模式下
  hdfs dfsadmin -safemode enter    // 手动进入安全模式
  hdfs dfsadmin -safemode leave    // 手动离开安全模式
  hdfs dfsadmin -safemode wait     // 等待退出安全模式,一般在脚本中使用

5. 目录快照

a. 默认情况下,目录是不允许创建快照的
b. 需要管理员允许目录快照
  hdfs dfsadmin -allowSnapshot <dirname>
c. 创建快照
  hadoop fs -createSnapshot <dirname> <snapname>
  快照保存在<dirname>/.snapshot/<snapname>下
d. 重命名快照
  hadoop fs -renameSnapshot <dirname> <oldSnapname> <newSnapname>
e. 删除快照
  hadoop fs -deleteSnapshot <dirname> <snapname>

6. 回收站

a. 每个用户都有一个回收站,在 /user/xw(用户名)/.Trash下
b. 回收站默认保存时间是 0s,即禁用回收站,可在core-site.xml中配置fs.trash.interval属性设置
c. shell中的删除是进回收站的,而编程中的删除是不进入回收站的,直接被删除,除非调用moveToTrash()方法
d. 清空回收站
  1) hadoop fs -expunge 或者 超过fs.trash.interval设置的时间,则将回收站内的文件设置检查点,放到时间戳表示的文件夹下
  2) 配置fs.trash.checkpoint.interval属性,设置间隔多长时间检查回收站的检查点中的文件,若该属性的值为0,则和fs.trash.interval属性值相同,将其删除
  3) fs.trash.checkpoint.interval属性 <= fs.trash.interval属性值

7. 配额(也可以叫限制)

a. 配额:hdfs dfsadmin -setQuota <quota> <dirname>
  即设置该<dirname>中元素的个数,该元素包括文件,目录,以及子元素
  <quota> > 0
b. 空间配额:hdfs dfsadmin -setSpaceQuota <quota> <dirname>
  即设置该<dirname>中物理空间的大小
  <quota> > 0,比如 10[B],10m,10g

8. image/edits查看器

a. oiv(offline image viewer)
  hdfs oiv -i imagefile -o outputfile -p processor(XML)
b. oev(offline edits viewer)
  hdfs oev -i editsfile -o outputfile -p processor(XML)

posted @ 2017-10-30 19:27  sqdmydxf  阅读(340)  评论(0编辑  收藏  举报