1.向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件;
- 命令如下
#创建存放该次作业目录
hadoop fs -mkdir /zhouqi
#创建一个文本
touch zhouqi1.txt zhouqi2.txt
#随便写入内容
echo "hello world1" > zhouqi1.txt
echo "hello world2" > zhouqi2.txt
##判断指定文件是否在hdfs存在
hadoop fs -test -e /zhouqi/zhouqi1.txt #-e 判断路径是否存在,如果路径存在,则返回0。
echo $? #shell中的特殊变量,用来查看上一个命令执行后的退出状态,0表示成功
#上传到HDFS
hadoop fs -put zhouqi1.txt /zhouqi
#查看上传后的文件内容
hadoop fs -text /zhouqi/zhouqi1.txt #cat也可以
#追加到原有文件末尾
hadoop fs -appendToFile zhouqi2.txt /zhouqi/zhouqi1.txt
#查看追加后的文件内容
hadoop fs -text /zhouqi/zhouqi1.txt
#覆盖原有的文件
hadoop fs -put -f zhouqi2.txt /zhouqi/zhouqi1.txt
#查看覆盖后的文件内容
hadoop fs -text /zhouqi/zhouqi1.txt
-
结果如下
2.从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名;
- 命令如下
vim 2.sh
#写入以下内容
#!/bin/bash
if [ -f ~/zhouqi1.txt ]
then
hadoop fs -get /zhouqi/zhouqi1.txt ./zhouqi3.txt
else
hadoop fs -get /zhouqi/zhouqi1.txt ./zhouqi1.txt
#给脚本加执行权限
chmod +x 2.sh
#执行脚本
sh 2.h
-
结果如下
3.将HDFS中指定文件的内容输出到终端中;
- 命令如下
hadoop fs -text /zhouqi/zhouqi1.txt
#或者
hadoop fs -cat /zhouqi/zhouqi1.txt
-
结果如下
4.显示HDFS中指定的文件的读写权限、大小、创建时间、路径等信息;
- 命令如下
hadoop fs -ls /zhouqi/zhouqi1.txt
hadoop fs -ls -h /zhouqi/zhouqi1.txt # -h 以人类可读的格式设置文件大小 (kb,Mb等)
hadoop fs -ls -t /zhouqi/zhouqi1.txt # -t 按修改时间对输出进行排序(最新的优先)
hadoop fs -ls -S/zhouqi/zhouqi1.txt #按文件大小排序输出。
-
结果如下
5.给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息;
- 命令如下
hadoop fs -mkdir -p /zhouqi/1/2/3/4 #-p 递归创建
hadoop fs -ls -R /zhouqi
-
结果如下
6.提供一个HDFS内的文件的路径,对该文件进行创建和删除操作。如果文件所在目录不存在,则自动创建目录;
- 命令如下
vim 6.sh
#写入以下内容
#!/bin/bash
hadoop fs -test -d /zhouqi/6
if [ "$?" == "0" ]
then
hadoop fs -touchz /zhouqi/6/6.txt
else
hadoop fs -mkdir -p /zhouqi/6/6.txt
fi
#给脚本加执行权限
chmod +x 6.sh
#执行脚本
sh 6.sh
#查看运行结果
hadoop fs -ls -R /zhouqi
#删除文件
hadoop fs -rm /zhouqi/6/6.txt
#查看运行结果
hadoop fs -ls -R /zhouqi
-
结果如下
7.提供一个HDFS的目录的路径,对该目录进行创建和删除操作。创建目录时,如果目录文件所在目录不存在则自动创建相应目录;删除目录时,由用户指定当该目录不为空时是否还删除该目录;
- 命令如下
vim 7.sh
#写入以下内容
#!/bin/bash
hadoop fs -test -d /zhouqi/7
if [ "$?" != "0" ]
then
hadoop fs -mkdir /zhouqi/7
fi
#给脚本加执行权限
chmod +x 7.sh
#执行脚本
sh 7.sh
#查看运行结果
hadoop fs -ls -R /zhouqi
#删除目录
hadoop fs -rmdir /zhouqi/7
#如果上一个指令执行不成功,显示目录下有文件
hadoop fs rm -r /zhouqi/7
#查看运行结果
hadoop fs -ls -R /zhouqi
-
结果如下
8.向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头或结尾;
- 命令如下
#指定内容追加到原有文件的开头
hadoop fs -get -f /zhouqi/zhouqi1.txt ./
cat zhouqi1.txt >> zhouqi2.txt
hadoop fs -put -f zhouqi2.txt /zhouqi/zhouqi1.txt
hadoop fs -cat /zhouqi/zhouqi1.txt
#指定内容追加到原有文件的尾头
hadoop fs -appendToFile zhouqi2.txt /zhouqi/zhouqi1.txt
hadoop fs -cat /zhouqi/zhouqi1.txt
9.删除HDFS中指定的文件;
- 命令如下
hadoop fs -ls -R /zhouqi
hadoop fs -rm /zhouqi/zhouqi1.txt
hadoop fs -ls -R /zhouqi
-
结果如下
10.删除HDFS中指定的目录,由用户指定目录中如果存在文件时是否删除目录;
- 命令如下
hadoop fs -ls -R /zhouqi
hadoop fs -rmdir /zhouqi/7
hadoop fs -ls -R /zhouqi
#如果删除不成功,表示目录下有文件
hadoop fs -rm -r /zhouqi/7
-
结果如下