查看帮助
… 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]HDFS中复制目录或文件... 参数: -f 如果目标已存在,则覆盖该目标 -ignoreCrc 忽略CRC校验 -crc 使用CRC校验 命令:hdfs dfs -copyToLocal [-f] [-p] [-ignoreCrc] [-crc] ... 参数: -f 如果目标已存在,则覆盖该目标 -ignoreCrc 忽略CRC校验 -crc 使用CRC校验
命令:hdfs dfs -cp [-f] [-p | -p[topax]] [-d]HDFS中剪切目录或文件... 参数: -f 如果目标已存在,则覆盖该目标 -p | -p[topax] 保留状态,参数[topax]分别表示(时间戳、所有权、权限、ACL、XAttr),无参数则不保留状态 -d 跳过临时文件的创建
命令:hdfs dfs -mvHDFS中删除目录或文件...
命令: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显示文件末尾的1kb内容... ... : -name 匹配内容 -iname 忽略大小写匹配内容 -print 使当前路径名写入标准输出,后跟换行符 -print0 如果使用-print0表达式,则会附加ASCII空字符,而不是换行符。
命令: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,查看文件
已经恢复到备份时的文件,到这备份就操作完成了。



