在多人共用HDFS的环境下,配置设置非常重要。特别是在Hadoop处理大量资料的环境,如
果没有配额管理,很容易把所有的空间用完造成别人无法存取。Hdfs的配额设定是针对目录
而不是针对账号,可以 让每个账号仅操作某一个目录,然后对目录设置配置。

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

1|1①数量限额


hdfs dfs  -mkdir -p /user/root/dir   #创建hdfs文件夹 hdfs dfsadmin -setQuota 2 dir    # 给该文件夹下面设置最多上传两个文件,发现只能上传一个文件,因为系统把文件本身也当作文件

清除文件数量限制

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

1|2②空间大小限额


在设置空间配额时,设置的空间至少是block_size * 3大小

hdfs多大内存好 hdfs文件数量上限_hdfs

 

 生成任意大小文件的命令:

dd if=/dev/zero of=1.txt  bs=1M count=2   #生成2M的文件

清除空间配额限制

hdfs多大内存好 hdfs文件数量上限_bc_02

 

二、hdfs的安全模式

安全模式是hadoop的一种保护机制,用于保证集群中的数据块的安全性。当集群启动的时

候,会首先进入安全模式。当系统处于安全模式时会检查数据块的完整性。

假设我们设置的副本数(即参数dfs.replication)是3,那么在datanode上就应该有3个副本存
在,假设只存在2个副本,那么比例就是2/3=0.666。hdfs默认的副本率0.999。我们的副本率
0.666明显小于0.999,因此系统会自动的复制副本到其他dataNode,使得副本率不小于0.999。
如果系统中有5个副本,超过我们设定的3个副本,那么系统也会删除多于的2个副本。

在安全模式状态下,文件系统只接受读数据请求,而不接受删除、修改等变更请求。在,当
整个系统达到安全标准时,HDFS自动离开安全模式

安全模式操作命令:

hdfs dfsadmin  -safemode  get #查看安全模式状态 hdfs dfsadmin  -safemode enter #进入安全模式 hdfs dfsadmin  -safemode leave #离开安全模式

 

三、HDFS Shell命令

概述

HDFS Shell命令允许使用命令行在HDFS存储中进行文件夹和文件操作。

如文件夹的增删改查、文件的增删改查等。

 

开始练习hadoop时,打开Linux之后要用 start-dfs.sh 

 启动HDFS。
HDFS不是开机启动的

 

hdfs多大内存好 hdfs文件数量上限_hdfs_03

常用命令

命令格式

hdfs dfs -操作命令 参数

前面的【hdfs dfs -】部分是固定的,后面的【操作命令 参数】部分是变化的

 

命令练习(练习时可结合Hadoop站点观察操作结果)

 

hdfs dfs -mkdir /abc #创建名为/abc的文件夹
hdfs dfs -ls / 0 #列出根目录中的内容
hdfs dfs -ls -R / #递归列出多层文件夹的内容
hdfs dfs -put /etc/hosts /abc/hosts #把Linux系统中/etc/hosts文件上传到HDFS中
hdfs dfs -appendToFile /etc/hosts /abc/hosts
#向文件中追加内容
hdfs dfs -checksum /abc/hosts #查看文件的MD5值
hdfs dfs -du -h / #查看文件/文件夹的大小
#-h以人类友好的方式显示大小(过大时带单位)
hdfs dfs -get /abc/hosts ./hosts #把HDFS中的文件下载到本地Linux中
#注意./hosts是下载后保存到本地的位置
hdfs dfs -cat /abc/hosts #查看HDFS中文本文件的内容
#注意:只能查看文件文件
hdfs dfs -tail /abc/hosts #列出文件结尾处1KB的文件内容
hdfs dfs -mv /abc/hosts /abc/xyz #修改文件名字或移动位置
hdfs dfs -cp /abc/xyz /abc/hosts #复制文件
hdfs dfs -find / -name xyz #查找名字为xyz的文件的位置
hdfs dfs -rmdir /abc #删除名为/abc的文件夹
#注意:如果其中还有文件则不能删除
hdfs dfs -rm /abc/hosts #删除文件
hdfs dfs -rm -r /abc #递归删除文件/文件夹,文件夹中有文件也能删除
hdfs dfs -df #查看HDFS文件系统的磁盘使用情况