0


HDFS操作常用的Shell命令

准备工作

加入环境变量

$ 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

标签: hdfs hadoop 大数据

本文转载自: https://blog.csdn.net/qq_53610639/article/details/128273758
版权归原作者 GitHub_流星剑 所有, 如有侵权,请联系我们删除。

“HDFS操作常用的Shell命令”的评论:

还没有评论