这里写目录标题
- 回收站
- 快照
- 开启关闭快照功能-针对目录
- 创建快照
- 查看快照、对比快照
- 删除、修改、恢复快照
- 配额
- 名称配额-限制个数
- 空间配额-限制大小
- HDFS的安全模式
- NameNode增强
- NameNode联盟
- HA(High Availability )- 高可用性
回收站
HDFS具有回收站的功能,该功能默认是关闭状态。我们可通过在core-site.xml中配置一个fs.trash.interval参数来开启,该参数的值为一个阈值,单位为分钟,存放时间超过该值的文件将从回收站删除。
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
未启动前,删除数据的日志如下,可以看到是直接删除了文件。
启动回收站功能后,删除日志如下。可以看到文件并没有被删除,而是执行了移动命令。通过日志可知道回收文件存放路径为/user/root/.Trash/Current。可以通过移动或复制命令将文件恢复。
快照
HDFS的快照功能,可以将某一个目录的当前状态保存成一个镜像,可应用于如下场景,总结来讲快照作用为快速恢复。
- 防止用户误操作
- 备份数据
- 测试功能
- 灾难恢复
快照相关命令如下:
开启关闭快照功能-针对目录
#开启快照
hdfs dfsadmin -allowSnapshot hdfs目录
#关闭快照
hdfs dfsadmin -disallowSnapshot hdfs目录
创建快照
hdfs dfs -createSnapshot hdfs目录 快照名称
查看快照、对比快照
#可以看到开启了快照功能的目录有哪些
hdfs lsSnapshottableDir
#对比两个快照的差别
hdfs snapshotDiff hdfs目录 快照1 快照2
也可通过浏览器查看快照
删除、修改、恢复快照
#删除快照
hdfs dsf -deleteSnapshot hdfs目录 快照名
#重命名快照
hdfs dsf -renameSnapshot hdfs目录 旧快照名 新快照名
#恢复快照
hdfs dsf -cp 快照文件 hdfs目录
配额
HDFS配额功能作用为限制操作,通过名称配额限制目录下文件个数,空间配额限制上传文件大小。
名称配额-限制个数
通过名称配额可限制目录下总文件个数,到达配额个数后无法继续往目录下添加文件,
注意:目录本身占用1个配额
#给目录添加名称配额
hdfs dfsadmin -setQuota 个数 hdfs目录
#清除名称配额
hdfs dfsadmin -clrQuota hdfs目录
空间配额-限制大小
通过空间配额限制目录最大能保存的大小,注意点:
大小计算的是block大小而非实际大小
大小需要计算备份个数
#添加空间配额,大小可以使用 m, g, t 代表 MB, GB, TB
hdfs dfsadmin -setSpaceQuota 大小 hdfs目录
#清除配额
hdfs dfsadmin -clrSpaceQuota hdfs目录
HDFS的安全模式
HDFS启动时会自动进入安全模式,安全模式的目的主要为:检查副本率(数据块冗余度是否满足要求)。
在安全模式下HDFS是只读的。
#安全模式查看操作方式,也可通过浏览器查看状态
hdfs dfsadmin [-safemode enter | leave | get | wait]
#配置副本率,默认为0.999f hdfs-site.xml 文件中
<property>
<name>dfs.namenode.safemode.threshold-pct</name>
<value>0.999f</value>
</property>
NameNode增强
HDFS的结构为主从结构,假如主节点NameNode宕机将造成整儿集群无法使用。所以要减少单NameNode故障对集群造成的影响。
NameNode联盟
NameNode联盟的原理是负载均衡,实现后同一时间会有多个Active的NameNode,通过控制分发请求的方式,减少单NameNode的压力以及单机故障后对整个集群的影响。
联盟的方式可以增加缓存数据总量且不影响单机性能。理论上可通过横向扩展NameNode的个数将元信息都缓存在内存里。
HA(High Availability )- 高可用性
HA实现的原理是失败迁移,集群会有多个NamenNode,但同时只会有一个NameNode的状态为Active,其余的为Standby,状态的切换需要借助ZooKeeper实现。