hdfs的特殊使用命令

目标:掌握HDFS对目录如何进行限制。

HDFS文件限额配置

hdfs文件的限额配置允许我们以文件大小或者文件个数来限制某个目录下上传的文件数量或者文件内容总量,以便达到我们类似百度网盘网盘等限制每个用户允许上传的最大的文件的量

数量限额

hdfs dfs -mkdir -p /user/root/lisi #创建hdfs文件夹

hdfs dfsadmin -setQuota 2 lisi # 给该文件夹下面设置最多上传两个文件,上传文件,发现只能上传一个文件

hdfs dfsadmin -clrQuota /user/root/lisi # 清除文件数量限制

空间大小限额

hdfs dfsadmin -setSpaceQuota 4k /user/root/lisi # 限制空间大小4KB
hdfs dfs -put /export/softwares/zookeeper-3.4.5-cdh5.14.0.tar.gz /user/root/lisi

#上传超过4Kb的文件大小上去提示文件超过限额
hdfs dfsadmin -clrSpaceQuota /user/root/lisi #清除空间限额
hdfs dfs -put /export/softwares/zookeeper-3.4.5-cdh5.14.0.tar.gz /user/root/lisi

#重新上传成功
在这里插入图片描述
查看hdfs文件限额数量

hdfs dfs -count -q -h /user/root/lisi

在这里插入图片描述

hdfs的安全模式

目标:掌握什么是HDFS的安全模式,以及安全模式的作用
安全模式是HDFS所处的一种特殊状态,在这种状态下,文件系统只接受读数据请求,而不接受删除、修改等变更请求。在NameNode主节点启动时,HDFS首先进入安全模式,DataNode在启动的时候会向namenode汇报可用的block等状态,当整个系统达到安全标准时,HDFS自动离开安全模式。

如果HDFS处于安全模式下,则文件block不能进行任何的副本复制操作,因此达到最小的副本数量要求是基于datanode启动时的状态来判定的,启动时不会再做任何复制(从而达到最小副本数量要求),hdfs集群刚启动的时候,默认30S钟的时间是处于安全期的,只有过了30S之后,集群脱离了安全期,然后才可以对集群进行操作

hdfs  dfsadmin  -safemode

在这里插入图片描述
在这里插入图片描述

hdfs的文件权限验证

hdfs的文件权限机制与linux系统的文件权限机制类似
r:read w:write x:execute 权限x对于文件表示忽略,对于文件夹表示是否有权限访问其内容

如果linux系统用户zhangsan使用Hadoop命令创建一个文件,那么这个文件在HDFS当中的owner就是zhangsan

HDFS文件权限的目的,防止好人做错事,而不是阻止坏人做坏事。HDFS相信你告诉我你是谁,你就是谁

### HDFS 命令列表及其使用教程 #### 使用 `hadoop fs` 和 `hdfs dfs` 对于HDFS操作,主要使用命令有`hadoop fs`和`hdfs dfs`。值得注意的是`hadoop dfs`已经被弃用[^1]。 这些命令提供了多种功能用于文件系统的交互,包括但不限于创建目录、上传下载文件以及查看文件内容等基本操作。 #### 创建目录 要创建一个新的目录可以使用如下命令: ```bash hdfs dfs -mkdir /user/testdir ``` 这条命令会在根目录下创建名为testdir的新目录[^2]。 #### 查看文件详情 为了获取有关特定文件的信息,比如权限设置、拥有者身份等内容,则可执行下面的指令: ```bash hdfs dfs -ls /path/to/file ``` 此命令会显示指定路径下的文件文件夹的相关属性信息。 #### 文件复制与移动 当需要把本地计算机上的数据迁移到分布式存储系统内时,应当采用以下方式实现: ```bash hdfs dfs -put localfile.txt /destination/path/on/hdfs/ ``` 相反地,如果想要从集群里提取资料至个人机器上的话,则应该这样去做: ```bash hdfs dfs -get /source/path/from/hdfs/ localDestinationPath/ ``` 另外,在同一命名空间内部之间转移对象也是可行的;只需简单替换上述例子中的动作词即可完成相应任务(例如:`mv`代替`put` 或 `get`)。 #### 删除文件或目录 删除单个文件或者整个子树结构均能通过简单的命令达成目的: ```bash hdfs dfs -rm /path/to/delete/file hdfs dfs -rmdir /empty/directory/or/rm -r non-empty-directory ``` 请注意,移除非空文件夹需要用到带有递归选项(`-r`) 的版本以确保其内部所有组件都被清除干净。 #### 设置跳过坏记录输出路径 针对某些特殊场景,如处理含有错误的数据集时,可以选择忽略有问题的部分并将它们另存为其他位置以便后续分析。这可通过调用API函数并传入适当参数来配置: ```java SkipBadRecords.setSkipOutputPath(jobConf, new Path("/path/to/skip/output")); ``` 这段Java代码片段展示了如何设定一个专门用来保存被略过的异常条目副本的目标地址[^3]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值