文章目录
一、实验目的
熟练掌握HDFS Shell的常用操作命令
二、实验内容
1、查看hdfs shell帮助命令
2、使用shell命令创建和查看目录
3、使用shell命令上传文件和文件夹
4、使用shell命令下载文件和文件夹
5、使用shell命令重命名文件和文件夹
6、使用shell命令移动文件和文件夹
7、使用shell命令删除文件和文件夹
三、实验原理
搭建好Hadoop3环境之后,可以使用HDFS shell命令对HDFS文件系统进行操作。
调用文件系统(HDFS)shell命令应使用bin/hdfs dfs 的形式。
所有的HDFS shell命令使用URI路径作为参数。URI格式是scheme: //authority/path。HDFS的scheme是HDFS,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。
四、实验环境
硬件:Ubuntu16.04
软件:JDK-1.8、Hadoop-3.3
数据存放路径:/data/dataset
tar包路径:/data/software
tar包压缩路径:/data/bigdata
软件安装路径:/opt
实验设计创建文件:/data/resource
五、实验步骤
5.1 启动服务HDFS服务
$ cd /opt/hadoop-3.3.0/sbin/
$ ./start-dfs.sh
查看HDFS的守护进程,如下图所示:
$ jps
如果看到如下进程,说明HDFS服务已经正确启动。
657 SecondaryNameNode
935 Jps
232 NameNode
380 DataNode
5.2 查看hdfs shell帮助命令
注意:需要在配置文件/etc/profile文件中打开hadoop3的相关环境变量设置。
1、在终端窗口中,执行以下命令,查看hdfs shell帮助信息:
$ hdfs dfs -help
会列出所有的HDFS文件系统操作的命令,以及每个命令的用法。
2、可以进一步查询某个命令的具体使用方法。例如,要查看”ls”命令的用法,在终端窗口执行如下命令:
$ hdfs dfs -help ls
窗口中会给出”ls”这个命令的具体用法说明
3、例如,要查看”get”和”put”两个命令的用法,在终端窗口执行如下命令:
$ hdfs dfs -help get put
窗口中会给出”ls”这个命令的具体用法说明
5.3 使用shell命令创建和查看目录
1、查看HDFS文件系统的根目录。在终端窗口中,执行如下命令:
hdfs dfs -ls /
2、查看HDFS文件系统的用户主目录。在终端窗口中,执行如下命令:
$ hdfs dfs -ls
3、在HDFS文件系统的根目录下创建子目录data。在终端窗口中,执行如下命令:
$ hdfs dfs -mkdir /data
然后查看HDFS文件系统的根目录和/data/目录:
$ hdfs dfs -ls /
$ hdfs dfs -ls /data
4、在HDFS文件系统的”/data”目录下创建嵌套子目录”hadoop/mr”,需要使用参数”-p”。在终端窗口中,执行如下命令:
$ hdfs dfs -mkdir -p /data/hadoop/mr
然后查看HDFS文件系统的根目录和/data/目录:
$ hdfs dfs -ls /data
$ hdfs dfs -ls /data/hadoop
$ hdfs dfs -ls /data/hadoop/mr
5.4 使用shell命令上传文件和文件夹
1、首先在本地编辑一个文本文件。在终端窗口中,执行如下命令:
$ mkdir ~/hello
$ cd ~/hello
$ vi study.txt
编辑study.txt文本文件的内容如下:
day day up
to be or not to be
this is a question
2、将study.txt上传到HDFS上。在终端窗口中,执行如下命令:
$ hdfs dfs -put ~/hello/study.txt /data/
使用如下命令查看上传到HDFS的文件:
$ hdfs dfs -ls /data/
$ hdfs dfs -cat /data/study.txt
3、将hello文件夹及其中的文件上传到HDFS上。在终端窗口中,执行如下命令:
$ hdfs dfs -put ~/hello /data/
使用如下命令查看上传到HDFS的文件:
>$ hdfs dfs -ls /data/
$ hdfs dfs -ls /data/hello
$ hdfs dfs -cat /data/hello/study.txt
当内容过多的时候,只想查看前几条内容或者后几条内容时,操作命令如下:
$ hdfs dfs -cat /data/hello/study.txt|head -2
当内容过多的时候,只想查看最后1K的内容时,操作命令如下:
$ hdfs dfs -tail /data/hello/study.txt
5.5 使用shell命令下载文件和文件夹
也可以将HDFS上的文件或文件夹下载到本地文件系统。
1、在终端窗口,执行如下命令,将HDFS上的文件下载到本地,并改名:
$ hdfs dfs -get /data/study.txt ~/study2.txt
查看下载到本地的文件内容:
$ cat ~/study2.txt
2、在终端窗口,执行如下命令,将HDFS上的文件夹下载到本地,并改名:
$ hdfs dfs -get /data ~/
查看下载到本地的文件夹内容:
$ ls ~/data2
5.6 使用shell命令重命名文件和文件夹
可以在HDFS中对文件、文件夹重命名或移动。
1、将HDFS中的”/data/study.txt”重命名为”wc.txt”。在终端窗口中,执行如下命令:
$ hdfs dfs -mv /data/study.txt /data/wc.txt
查看重命名的文件,如下图所示:
$ hdfs dfs -ls /data/
2、将HDFS中的”/data/hadoop/mr”目录重命名为”mapreduce”。在终端窗口中,执行如下命令:
$ hdfs dfs -mkdir -p /data/hadoop/mr
$ hdfs dfs -mv /data/hadoop/mr /data/hadoop/mapreduce
查看重命名的目录:
$ hdfs dfs -ls /data/hadoop/
5.7 使用shell命令移动文件和文件夹
1、将HDFS上的”/data/wc.txt”文件移动到HDFS的根目录下:
$ hdfs dfs -mv /data/wc.txt /
查看移动后的文件是否存在:
$ hdfs dfs -ls /
2、将HDFS上的”/data/hadoop”文件夹移动到HDFS的根目录下:
$ hdfs dfs -mv /data/hadoop /
查看移动后的文件是否存在:
$ hdfs dfs -ls /
5.8 使用shell命令删除文件和文件夹
1、在终端窗口中,使用如下的命令,删除HDFS根目录下的”wc.txt”文件:
$ hdfs dfs -rm /wc.txt
查看是否删除文件,如下图所示:
$ hdfs dfs -ls /
2、在终端窗口中,使用如下的命令,删除HDFS根目录下的”hadoop”文件夹及其内容:
$ hdfs dfs -rm -r /hadoop
查看是否删除文件夹,如下图所示:
$ hdfs dfs -ls /