准备工作
加入环境变量
$ export PATH=$PATH:/usr/local/hadoop/bin
路径是hadoop安装路径下的bin
开启hadoop服务
$ ./sbin/start-dfs.sh
创建两个文件
echo “hello local” > local.txt
echo “hello cloud” > cloud.txt
(1) 向HDFS 中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件;
上传cloud.txt文档
$ hadoop fs -put cloud.txt
将local.txt内容追加到cloud.txt末尾
$ hadoop fs -appendToFile local.txt cloud.txt
将local.txt内容覆盖到cloud.txt
$ hadoop fs -copyFromLocal -f local.txt cloud.txt
(2) 从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名;
$ if $(hadoop fs -test -e file:///usr/local/hadoop/cloud/txt);#如果cloud.txt文件存在
> then $(hadoop fs -copyToLocal cloud.txt ./cloud2.txt);#重命名为cloud2.txt
> else $(hadoop fs -copyToLocal cloud.txt ./cloud.txt);#否则为cloud.txt
> fi
(3) 将HDFS中指定文件的内容输出到终端中;
$ hadoop fs -cat cloud.txt
(4) 显示 HDFS中指定的文件的读写权限、大小、创建时间、路径等信息;
$ hadoop fs -ls -h cloud.txt
(5) 给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息;
$ hadoop fs -ls -R -h /user/hadoop
(6) 提供一个HDFS内的文件的路径,对该文件进行创建和删除操作。如果文件所在目录不存在,则自动创建目录;
$ if $(hadoop fs -test -d test1/test2);
then $(hadoop fs -touch test1/test2/test.txt);
else $(hadoop fs -mkdir -p test1/test2 && hadoop fs -touch test1/test2/test.txt);
fi
$ hadoop fs -rm test1/test2/test.text #删除文件
(7) 提供一个 HDFS的目录的路径,对该目录进行创建和删除操作。创建目录时,如果目录文件所在目录不存在则自动创建相应目录;删除目录时,由用户指定当该目录不为空时是否还删除该目录;
#创建目录
$ hadoop fs -mkdir -p test1/test2
#删除目录
$ hadoop fs -rmdir test1/test2
#目录有文件时删除
$ hadoop fs -rm -R test1/test2
(8) 向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头或结尾;
追加文件开头
$ hadoop fs -get cloud.txt
$ cat cloud.txt >> local.txt
$ hadoop fs -copyFromLocal -f local.txt cloud.txt
追加文件末尾
$ hadoop fs -appendToFile local.txt cloud.txt
(9) 删除HDFS中指定的文件;
$ hadoop fs -rm test.txt
(10) 删除HDFS中指定的目录,由用户指定目录中如果存在文件时是否删除目录;
$ hadoop fs -rm -r test1/test2
(11) 在 HDFS 中,将文件从源路径移动到目的路径。
$ hadoop fs -mv cloud.txt ./cloud3.txt
版权归原作者 GitHub_流星剑 所有, 如有侵权,请联系我们删除。