【大数据离线开发】5.3、HDFS 的高级特性

5.3HDFS 的高级特性

5.3.1 HDFS 安全模式 safe mode

定义:安全模式是hadoop的一种保护机制,用于保证集群中的数据块的安全性。HDFS 正常运行的时候,安全模式一定是off(关闭状态),是HDFS 的一种自我保护,如果HDFS 处于安全模式下,则表示 HDFS 是只读的状态

作用:检查数据块的副本率

当集群启动的时候,会首先进入安全模式。当系统处于安全模式时会检查数据块的完整性。假设我们设置的副本数(即参数dfs.replication)是5,那么在datanode上就应该有5个副本存在,假设只存在3个副本,那么比例就是3/5=0.6。在配置文件hdfs-default.xml中定义了一个最小的副本的副本率0.999,如图:

在这里插入图片描述

我们的副本率0.6明显小于0.99,因此系统会自动的复制副本到其他的dataNode,使得副本率不小于0.999.如果系统中有8个副本,超过我们设定的5个副本,那么系统也会删除多余的3个副本。

虽然不能进行修改文件的操作,但是可以浏览目录结构、查看文件内容的。

在命令行下是可以控制安全模式的进入、退出和查看的。

  • 命令 hdfs dfsadmin -safemode get 查看安全模式状态
  • 命令 hdfs dfsadmin -safemode enter 进入安全模式状态
  • 命令 hdfs dfsadmin -safemode leave 离开安全模式
5.3.2 快照 snapshot

定义:一个snapshot(快照)是一个全部文件系统、或者某个目录在某一时刻的镜像(备份)

默认情况下:HDFS快照是关闭的,一般情况下不会对文件进行快照(备份),除非文件非常非常重要,不然会造成空间的极大浪费。

快照应用在以下场景中:

  • 防止用户的错误操作
  • 备份
  • 试验/测试
  • 灾难恢复

HDFS的快照操作:

  • 开启快照:hdfs dfsadmin -allowSnapshot /input
  • 创建快照:hdfs dfs -createSnapshot /input backup_input_01
  • 查看快照:hdfs lsSnapshottableDir
  • 对比快照:hdfs snapshotDiff /input backup_input_01 backup_input_02
  • 恢复快照:hdfs dfs -cp /input/.snapshot/backup_input_01/data.txt /input

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.3.3 配额 quota

定义:配额就是HDFS为每个目录分配的大小空间,新建立的目录是没有配额的,最大的配额是Long.Max_Value。配额为1可以强制目录保持为空。

配额的类型

名称配额:用于设置该目录中能够存放的最多文件个数(实际:N-1 )。

空间配额:用于设置该目录中最大能够存放的文件大小(值必须大于数据块的大小128M) 。

配额的应用案例

设置名称配额

命令:

dfsadmin -setQuota …

dfsadmin -clrQuota …

示例:

设置/myquota1目录的名称配额为 3 (实际:N-1 = 2)

hdfs dfsadmin -setQuota 3 /myquota1

清除/myquota1目录的名称配额

hdfs dfsadmin -clrQuota /myquota1

在这里插入图片描述

设置空间配额

命令:

dfsadmin -setSpaceQuota …

dfsadmin -clrSpaceQuota …

示例:

设置/myquota2目录的空间配额为1M

hdfs dfsadmin -setSpaceQuota 1048576 /myquota2

清除myquota2目录的空间配额

hdfs dfsadmin -clrSpaceQuota /myquota2

在这里插入图片描述

注意:如果hdfs文件系统中的文件个数或者大小超过了配额限制,会出现错误。

5.3.4 回收站 recyclebin

启用:默认回收站是关闭的,可以通过在core-site.xml中添加fs.trash.interval来打开幵配置时间阀值,例如:

<propetry>
  <name>fs.trash.interval</name>
  <value>1440</value>
</propetry>

性质

  • 删除文件时,其实是放入回收站/trash
  • 回收站里的文件可以快速恢复
  • 可以设置一个时间阈值,当回收站里文件的存放时间超过返个阈值,就被彻底删除,并且释放占用的数据块

命令

  • 查看回收站:hdfs dfs -lsr /user/root/.Trash/Current

  • 从回收站中恢复:hdfs dfs -cp /user/root/.Trash/Current/input/data.txt /input

5.3.5 HDFS 的用户权限管理

HDFS 本身的权限管理功能很弱,不会认证,指定root就是

  • 超级用户:
    • 启动namenode服务的用户就是超级用户, 该用户的组是supergroup

在这里插入图片描述

  • Shell命令变更
命令说明
chmod [-R] mode file …只有文件的所有者或者超级用户才有权限改变文件模式。
chgrp [-R] group file …chgrp [-R] group file …使用chgrp命令的用户必须属于特定的组且是文件的所有者,或者用户是超级用户
chown [-R] [owner][:[group]] file …文件的所有者的只能被超级用户更改。
ls® file …输出格式做了调整以显示所有者、组和模式。
  • 文件系统API变更

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值