栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

HDFS操作及命令介绍

HDFS操作及命令介绍

HDFS常用命令

… hdfs中一个或多个路径,如果未指定,默认为/user/
… 本地文件系统的的一个或多个路径
hdfs中目标路径

查看帮助
命令:hdfs dfs -help  [cmd ...]
参数:
	cmd... 需要查询的一个或多个命令
创建目录
命令:hdfs dfs -mkdir [-p]  ... 
参数:
	-p 进行递归创建
创建一个空文件
命令:hdfs dfs -touchz  ... 
查看目录或文件
命令:hdfs dfs -ls [-C] [-d] [-h] [-R] [-t] [-S] [-r] [-u] [ ...]
参数:
	-C 仅显示文件和目录的路径
	-d 目录列为普通文件
	-h 以人类可读的方式格式化文件大小,而不是按字节数
	-R 递归地列出目录的内容
	-t 按修改时间对文件排序(最近的第一次)
	-S 按大小对文件进行排序
	-r 颠倒排序顺序
	-u 使用上次访问的时间而不是修改来显示和排序
上传目录或文件
# put与copyFromLocal本质是进行复制操作,moveFromLocal本质是剪切操作
命令:hdfs dfs -put [-f] [-p] [-d]  ... 
参数:
	-f 如果目标已存在,则覆盖该目标
	-p 保留访问和修改时间、所有权和模式
	-d 跳过临时文件的创建

命令:hdfs dfs -copyFromLocal [-f] [-p] [-d]  ... 
参数:
	-f 如果目标已存在,则覆盖该目标
	-p 保留访问和修改时间、所有权和模式
	-d 跳过临时文件的创建

命令:hdfs dfs -moveFromLocal  ... 
下载目录或文件
# get与copyToLocal本质是进行复制操作
# 注意:下载多个文件时,目标必须是目录。
命令:hdfs dfs -get [-f] [-p] [-ignoreCrc] [-crc]  ... 
参数:
	-f 如果目标已存在,则覆盖该目标
	-ignoreCrc 忽略CRC校验
	-crc 使用CRC校验

命令:hdfs dfs -copyToLocal [-f] [-p] [-ignoreCrc] [-crc]  ... 
参数:
	-f 如果目标已存在,则覆盖该目标
	-ignoreCrc 忽略CRC校验
	-crc 使用CRC校验
HDFS中复制目录或文件
命令:hdfs dfs -cp [-f] [-p | -p[topax]] [-d]  ... 
参数:
	-f 如果目标已存在,则覆盖该目标
	-p | -p[topax] 保留状态,参数[topax]分别表示(时间戳、所有权、权限、ACL、XAttr),无参数则不保留状态
	-d 跳过临时文件的创建
HDFS中剪切目录或文件
命令:hdfs dfs -mv  ... 
HDFS中删除目录或文件
命令:hdfs dfs -rm [-f] [-r|-R] [-skipTrash] [-safely]  ...
参数:
	-f 如果文件不存在,不显示诊断消息或修改退出状态以反映错误
	-[rR] 递归删除目录
	-skipTrash 删除时不经过回收站,直接删除
	-safely 需要安全确认
本地文件附加到目标文件中
命令:hdfs dfs -appendToFile  ... 
显示文件内容
命令:hdfs dfs -cat [-ignoreCrc]  ... 
参数:
	-ignoreCrc 忽略CRC校验
修改目录或文件权限
命令:hdfs dfs -chmod [-R]  PATH...
参数:
	-R 递归修改文件
	 模式与用于shell命令的模式相同
	 数字表示
修改目录或文件所有者和组
命令:hdfs dfs -chown [-R] [OWNER][:[GROUP]] PATH...
参数:
	-R 递归修改文件
	OWNER 所有者
	GROUP 所属组

命令:hdfs dfs -chgrp [-R] GROUP PATH... 
参数:
	-R 递归修改文件
	GROUP 所属组
统计指定路径下,目录数、文件数、字节数
命令:hdfs dfs -count [-q] [-h] [-v] [-t []] [-u] [-x]  ... 
参数:
	-q 显示配额和配额的使用情况
	-h 以人类可读的方式格式化文件大小,而不是按字节数
	-v 显示标题行
	-t [] 按存储类型显示配额,需要与参数-q或-u一起使用
	-u 显示配额和配额的使用情况,但不显示详细的内容摘要
	-x 不计算快照
显示文件系统的容量、可用空间和已用空间
命令:hdfs dfs -df [-h] [ ...]
参数:
	-h 以人类可读的方式格式化文件大小,而不是按字节数
显示目录或文件的使用情况
命令:hdfs dfs -du [-s] [-h] [-x]  ... 
参数:
	-s 显示总使用情况,不显示每个独立目录或文件的使用情况
	-h 以人类可读的方式格式化文件大小,而不是按字节数
	-x 不计算快照
清空回收站
命令:hdfs dfs -expunge
查找目录或文件
# 查找与指定表达式匹配的所有文件,并对其应用选定的操作。如果未指定,则默认为当前工作目录。如果未指定表达式,则默认为-print
命令:hdfs dfs -find  ...  ...
:
			-name 匹配内容
			-iname 忽略大小写匹配内容
			-print 使当前路径名写入标准输出,后跟换行符
			-print0 如果使用-print0表达式,则会附加ASCII空字符,而不是换行符。
显示文件末尾的1kb内容
命令:hdfs dfs -tail [-f] 
参数:
	-f 随着文件的增长显示附加数据
合并下载文件
命令:hdfs dfs -getmerge [-nl] [-skip-empty-file]  
参数:
	-nl 在每个文件的末尾添加换行符
	-skip-empty-file 不要为空文件添加新行字符
文件配额操作 设置数量配额
命令:hdfs dfsadmin -setQuota  ...
参数:
	quota 限额数量(其中目录会占用一个限额,比如设置为2个,实际允许的只有1个)
	dirname 需要限额的路径
清除数量配额
命令:hdfs dfsadmin -clrQuota ...
参数:
	dirname 需要限额的路径
设置空间大小限额
命令:hdfs dfsadmin -setSpaceQuota  [-storageType ] ...
参数:
	quota 限额空间大小(空间配额会把副本也计算在内,例如1GB的数据,有3个副本,那么将会占用3GB的配额。)
	-storageType 设置特定于存储类型的配额
				 可用的存储类型包括:RAM_DISK、DISK、
				 SSD、ARCHIVE
	dirname 需要限额的路径
清除空间大小限额
命令:hdfs dfsadmin -clrSpaceQuota [-storageType ] ...
参数:
	-storageType 清除特定于存储类型的配额
				 可用的存储类型包括:RAM_DISK、DISK、
				 SSD、ARCHIVE
	dirname 清除限额的路径
快照操作

注:创建快照需要管理员开启允许创建快照

开启允许拍摄快照
命令:hdfs dfsadmin -allowSnapshot 
参数:
	path snaphottable目录的路径
关闭允许拍摄快照
命令:hdfs dfsadmin -disallowSnapshot 
参数:
	path snaphottable目录的路径
获取当前用户有权拍摄快照的所有快照表目录
命令:hdfs lsSnapshottableDir
创建快照
命令:hdfs dfs -createSnapshot  []
参数:
	snapshotDir 快照目录
	snapshotName 快照的名称
恢复快照
命令:hdfs dfs -cp  
重命名快照
命令:hdfs dfs -renameSnapshot   
参数:
	snapshotDir 快照目录
	oldName 原快照的名称
	newName 新快照的名称
删除快照
命令:hdfs dfs -deleteSnapshot   
参数:
	snapshotDir 快照目录
	snapshotName 快照的名称
比较两个快照的差异
命令:hdfs snapshotDiff   
参数:
	snapshotDir 快照目录的路径
	from 原快照名称
	to 要对比的快照名称
元数据的备份与还原

查看hdfs-site.xml配置文件数据目录的位置,重点关注这两个目录

将目录里的文件拷贝出来,就可以备份操作。
查看备份前的文件

停止hadoop服务stop-all.sh
创建一个备份文件 mkdir /root/backup
进行元数据所在目录的拷贝cp -r /root/hadoop-2.7.7/hadoopDatas/namenodeDatas/ /root/hadoop-2.7.7/hadoopDatas/nnEdits/ /root/backup/

查看备份的文件ls /root/backup/

为了演示我们可以进行恢复操作,这里就先启动hadoop,修改hdfs里的文件,然后在进行恢复操作。
启动后,我们查看当前hdfs的文件

这就是备份前的内容,现在删除几个目录。等下我们将刚才备份出的元数据进行恢复。

再次查看文件内容

现在文件已经删除了,我们先停止hadoop,然后进行恢复。
我们需要删除原有的元数据rm -rf /root/hadoop-2.7.7/hadoopDatas/namenodeDatas/ /root/hadoop-2.7.7/hadoopDatas/nnEdits/

将备份文件恢复到元数据所在目录cp -r /root/backup/* /root/hadoop-2.7.7/hadoopDatas/

再次启动hadoop,查看文件

已经恢复到备份时的文件,到这备份就操作完成了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/300883.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号