2.2 [实验]HDFS的shell命令和应用
2.2.1 实验目的
Hadoop配置好后,可以通过命令行工具快速地进行HDFS文件系统的访问。本节实验主要进行HDFS的一些基本文件操作,例如读文件、创建文件存储路径、删除文件、列出文件列表、文件归档等操作。
2.2.2 实验环境
操作系统:CentOS7操作系统
计算机资源:CPU 1核 0.5GHz 内存 4GB 硬盘 10.00GB
实验环境:虚拟机一台
2.2.3 HDFS实验原理
HDFS是Hadoop自带的分布式文件系统,HDFS是一个使用java语言实现的分布式,可横向扩展的文件系统。HDFS包括一个名称节点(NameNode)和若干个数据节点(DataNode),属于主从关系的结构模型,其中,名称节点负责管理文件系统的命名空间及客户端对文件的访问,也就是中心服务器。
而集群中的数据节点一般是一个节点运行一个数据节点运行,其中每个数据节点上的数据实际上是保存在本地的Linux文件系统中,并在名称节点的统一调动下,负责处理文件系统客户端的读/写请求,或删除,创建和复制数据块等操作。
从客户端传入文件读写请求时,NameNode(HDFS的集群管理节点)首先接受客户的读写服务请求,并根据它保存的Metadata元数据,包括元数据的镜像文件和DataNode通信并进行资源协调,Secondary NameNode进行edits和fismage的合并,同时DataNode之间进行数据复制。
如果要存储一个大文件,首先要将文件分割成块,分别放在不同的节点,每块文件都有3个人副本备份,并且有一个专门记录文件块存放情况的元数据文件以备查询,如图
图2.2.1 HDFS实验原理
2.2.4 实验步骤
步骤一、列出 HDFS 的目录
使用命令hadoop fs -ls /来查看HDFS的目录以及使用命令hadoop fs -ls -R /来进行递归查看
图2.2.2 查看HDFS目录
步骤二、创建文件夹
使用命令hadoop fs -mkdir /test来创建test文件夹,然后查看目录。
图2.2.3 创建test文件夹
步骤三、上传本地文件到 HDFS
使用hadoop fs -put 源文件 /test 命令把虚拟机本地文件上传到HDFS下,我这里是上传了“下载”文件夹,命令hadoop fs -put 源文件 /test中的“源文件”是指我们要上传文件的全部路径,比如我上传的下载文件,它的地址为/root/下载,那么“/root/下载”就是源文件。上传完成后查看test目录。
图2.2.4 上传文件
步骤四、下载文件
使用命令hadoop fs -get HDFS 路径 本地路径,把HDFS中的文件下载到本地Linux中,比如:hadoop fs -get /test/下载 /tmp,该命令是吧HDFS中的“下载”文件下载到了linux系统根目录下,我们到查看根目录即可。
图2.2.5 下载文件
步骤五、删除 HDFS 文件或者文件夹
我们可以使用命令“hadoop fs -rm 文件名称”或者“hadoop fs -rmr 文件夹名称”来删除我们的文件或者文件夹,如下图,我们直接删除了test文件夹。
图2.2.6 删除文件或者文件夹