目录

(1)   向HDFS 中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件;

(2)   从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名;

(3)   将HDFS中指定文件的内容输出到终端中;

(4)   显示 HDFS中指定的文件的读写权限、大小、创建时间、路径等信息;

(5)   给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息;

(6)   提供一个HDFS内的文件的路径,对该文件进行创建和删除操作。如果文件所在目录不存在,则自动创建目录;

(7)   提供一个 HDFS的目录的路径,对该目录进行创建和删除操作。创建目录时,如果目录文件所在目录不存在则自动创建相应目录;删除目录时,由用户指定当该目录不为空时是否还删除该目录;

(8)   向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头或结尾;

(9)   删除HDFS中指定的文件;

(10) 删除HDFS中指定的目录,由用户指定目录中如果存在文件时是否删除目录;

(11) 在 HDFS 中,将文件从源路径移动到目的路径。

准备工作

加入环境变量

$ 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

查看原文