### 实验名称
通过shell命令访问HDFS
### 实验目的
1、理解HDFS在Hadoop体系结构中的角色;
2、熟练使用常用的Shell命令访问HDFS;
### 实验背景
HDFS分布式存储系统是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础
### 实验原理
HDFS是Hadoop平台的核心组成之一。熟悉使用Hadoop平台需要熟练访问HDFS。
HDFS的访问方式有多种:可通过Web访问,也可通过Shell方式或者API方式访问。基本操作有对文件的读、写、追加、删除等。新建文件夹、删除文件夹等,还可显示文件及文件夹的属性。
Shell方式分以下几类:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b6JbtQ3y-1666607782115)(shell命令分类.jpg)]
### 实验环境
Ubuntu 16.04
Hadoop 2.7.3或以上版本
### 建议课时
1课时
### 实验步骤
HDFS有很多shell命令,其中,hdfs dfs命令可以说是HDFS最常用的命令,利用该命令可以查看HDFS文件系统的目录结构、上传和下载数据、创建文件等。该命令的用法为:
hdfs dfs [genericOptions] [commandOptions]
进入实验环境后,需要通过jps命令确认hadoop环境是否已启动。
```
jps
```
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bqCco9RV-1666607782116)(jps.png)]
出现这上图情况说明还没有hadoop未启动,接着我们便启动Hadoop
我们需要通过/opt/hadoop/sbin/start-all.sh脚本启动hadoop系统。
```
cd /opt/hadoop/sbin
```
```
hadoop namenode -format
```
```
./start-all.sh
```
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aAeRaxNs-1666607782116)(启动.png)]
注意:启动时根据提示输入两次yes
启动完成后,我们再次使用jps命令查看
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cPlP4bET-1666607782117)(jps1.png)]
1、掌握常用hdfs操作命令(hdfs dfs),执行并查看结果(可以在终端输入hdfs dfs -help查询命令用法)。
先通过vi在Linux本地创建三个文本文件:txt1.txt、txt2.txt、txt3.txt。文件文件里面随意输入些内容。
例:
创建txt1并输入内容:
```markup
vi txt1.txt
This is a file named txt1.txt
```
创建txt2并输入内容:
```markup
vi txt2.txt
This is a file named txt2.txt
```
创建txt3并输入内容:
```markup
vi txt3.txt
This is a file named txt3.txt
```
(1)列出子目录或子文件
列出/user/${USER}下的文件和目录(前提:/user/${USER}已经存在,否则报错)
```markup
hdfs dfs -ls
```
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HU00aOIZ-1666607782117)(user不存在.png)]
当查询结果显示为上图情况,说明/user/ubuntu不存在
<