1. hdfs dfs与hadoop fs
命令的形式:hdfs dfs -linux命令
这与linux中命令操作是一样的。
hadoop fs等同于hdfs dfs
2. Hadoop命令
hadoop classpath: 打印当前hadoop环境的配置路径
3. HDFS常用命令
(1)查看文件夹下的文件目录:hdfs dfs -ls
hdfs dfs -ls # 列出工作主目录下的信息
hdfs dfs -ls / # 列出hdfs文件系统中
hdfs dfs -ls /data/output # 列示/data/output/文件夹下的目录
(2)创建新文件夹:hdfs dfs -mkdir
# path可以是绝对路径,也可以是相对路径。
hdfs dfs -mkdir [-p] <path>
hdfs dfs -mkdir tmp # 在hdfs文件系统中/user/hadoop001目录下创建tmp目录
hdfs dfs -mkdir ./tmp # 同上 hdfs dfs -ls 查看
hdfs dfs -mkdir /tmp # 在hdfs文件系统的根目录下创建一个tmp目录
hdfs dfs -mkdir -p /tmp/data # 创建嵌套目录
(3)删除目录:hdfs dfs -rm -r -f
hdfs dfs -rm [-r] [-f] <uri> # 删除目录或文件,-r -f不能组合成-rf
hdfs dfs -rm -r -f /test # 删除根目录下的test目录
hdfs dfs -rmdir /test # 删除目录:只能删除空目录
hdfs dfs -rm -r /data/output # 删除data/output的目录
(4)查看目录:hdfs dfs -cat
hdfs dfs -cat <URI>
# 查看/user/hadoop001/tmp/exception.log 文件内容
hdfs dfs -cat ./tmp/exception.log
(5)寻找文件:hdfs dfs -find
# 从根目录下精确搜索exception.log文件
hdfs dfs -find / -name exception.log
# 从/user/hadoop001目录下搜索名称中包含ex字符串的文件
hdfs dfs -find /user/hadoop001 -name '*ex*'
(6)本地文件拷贝到hdfs:hdfs dfs -put
hdfs dfs -put [-f] [-p] [-l] [-d] [-t <thread count>] [ - | <localsrc1> .. ]. <dst>
# -f 如果已存在就覆盖
# -p 递归拷贝
hdfs dfs -put head.png tmp/head.png # 拷贝文件
hdfs dfs -put /tmp/pycharm_project_962/data/input/sf-crime /data/input/ # 将服务器sf-crime的文件夹拷贝到/data/input/文件夹
(7)hdfs文件下载到本地
hdfs dfs -get [-ignorecrc] [-crc] [-p] [-f] <src> <localdst>
# -p 保留访问权限 修改时间等信息
# -f 如果目标文件已存在,直接覆盖。
hdfs dfs -get ./tmp ./hdfs-temp-dic # 将hdfs中的tmp目录下载到本地并重命名
(8)复制文件:hdfs dfs -cp
hdfs dfs -cp [-f] [-p | -p[topax]] URI [URI ...] <dest>
# -f 如果存在,直接覆盖。
hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2
hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir
hdfs dfs -cp tmp ./temp # 将tmp拷贝并重命名为temp
(9)统计目录下文件夹数量、文件数量、目录下文件总字节数:
hadoop fs -count [-q] [-h] [-v] [-x] [-t [<storage type>]] [-u] [-e] [-s] <paths>\
hdfs dfs -count /user/hadoop001 # 对/user/hadoop001目录进行统计
结果每列含义:目录数 文件数 总大小(字节) 目录名称
(10)hdfs内部移动文件:hdfs dfs -mv
hdfs dfs -mv URI [URI ...] <dest>
# mv命令只能在hdfs文件系统中使用,不能跨系统。
hdfs dfs -mv tmp /tmp_home