命令行操作有两种格式
:
hadoop fs -具体的命令 要操作的目录或者文件
hdfs dfs -具体的命令 要操作的目录或者文件
1.对于目录的操作
1.1 对目录的查询
使用ls命令可以查看hdfs上的目录
-- 查询hdfs上的根目录
hadoop fs -ls /
-- 使用R参数进行递归查询
hadoop fs -ls -R /
1.2 创建目录
使用mkdir命令可以创建hdfs上的目录
-- 在hdfs上创建/test目录
hadoop fs -mkdir /test
-- 在hdfs上创建/file/input目录
-- 使用p参数进行递归创建目录
hadoop fs -mkdir -p /file/input
1.3 删除目录
使用rm命令可以删除hdfs上的目录和文件
-- 删除hdfs上的/test目录
-- 使用r参数进行递归删除目录
hadoop fs -rm -r /test
-- 删除hdfs上的/file目录
hadoop fs -rm -r /file
2.对于文件的操作
2.1 创建空白文件
使用touch或者touchz命令可以在hdfs上创建空白文件
-- 在hdfs上创建/file/touch.txt文件
hadoop fs -touch /file/touch.txt
2.2 上传文件
使用put命令可以将本地(Linux)文件上传到hdfs上,上传完成后,本地的文件依然保留
hadoop fs -put 文件的本地路径 文件上传到的hdfs路径
-- 将本地的/opt/file/test.txt文件上传到hdfs上的/file
hadoop fs -put /opt/file/test.txt /file
使用moveFromLocal命令也可以将本地文件上传到hdfs上,上传完成后,本地文件不保留,会被删除
hadoop fs -moveFromLocal 文件的本地路径 文件上传到的hdfs路径
-- 将本地的/opt/file/a.txt文件上传到hdfs上的/file
hadoop fs -moveFromLocal /opt/file/a.txt /file
2.3 查看文件内容
使用cat命令可以查看hdfs上的文件内容
-- 查看/file/test.txt文件中的内容
hadoop fs -cat /file/test.txt
-- cat命令可以同时查看多个文件中的内容
hadoop fs -cat /file/test.txt /file/a.txt
2.4 下载文件
使用get命令可以将hdfs上的文件下载到本地(Linux)
hadoop fs -get 文件在hdfs上的路径 文件下载到本地的路径
-- 将hdfs上的/file/a.txt下载到本地/opt
hadoop fs -get /file/a.txt /opt
2.5 文件的改名和目录调整
使用cp命令可以将hdfs上的文件复制拷贝到其他hdfs目录中,在复制过程中可以修改文件的名称,拷贝完成
后,文件在源路径中依然保留
hadoop fs -cp 文件在hdfs上的源路径 文件在hdfs上的新路径
-- 将hdfs上的/file/a.txt复制到/b.txt
hadoop fs -cp /file/a.txt /b.txt
使用mv命令可以将hdfs上的文件剪切到其他hdfs目录中,在复制过程中可以修改文件的名称,拷贝完成后,文
件在源路径中会被删除
hadoop fs -mv 文件在hdfs上的源路径 文件在hdfs上的新路径
-- 将hdfs上的/file/test.txt复制到/test1.txt
hadoop fs -mv /file/test.txt /test1.txt
2.6 对文件的赋权
r:4
w:2
x:1
hadoop fs -chmod 777 /file/a.txt
3 判断操作
使用test命令进行判断操作
-- 1. 判断文件是否在hdfs上存在
hadoop fs -test -e /file/a.txt
命令执行后,执行echo $? 如果返回0 表示文件存在 否则文件不存在
-- 2. 判读是否为目录
hadoop fs -test -d /file/a.txt
命令执行后,执行echo $? 如果返回0 表示是目录 否则不是目录
-- 3. 判断文件是否为空
hadoop fs -test -z /file/a.txt
hadoop fs -test -z /file/touch.txt
命令执行后,执行echo $? 如果返回0 表示文件为空 否则文件不为空