大数据学习05:分布式文件系统HDFS

一、HDFS基本概念

1、块(Block)
HDFS默认一个块128MB,一个文件被分成多个块,以块作为存储单位。块的大小远远大于普通文件系统,可以最小化寻址开销。

2、名称节点和数据节点
在这里插入图片描述
1)名称节点
在HDFS中,名称节点(NameNode)是文件系统的管理节点,负责管理分布式文件系统命名空间(NameSpace),保存了两个核心的数据结构:文件系统映像文件(fsimage)和操作日志文件(edits)。 名称节点起来之后,HDFS中的更新操作会重新写到edits文件中,因为fsimage文件一般都很大(GB级别的很常见),如果所有的更新操作都往fsimage文件中添加,这样会导致系统运行得十分缓慢,但是,如果往edits文件里面写就不会这样,因为edits要小很多。每次执行写操作之后,且在向客户端发送成功代码之前,edits文件都需要同步更新。

(2)数据节点
数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并且向名称节点定期发送自己所存储的块的列表,每个数据节点中的数据会被保存在各自节点的本地Linux文件系统中。

二、HDFS体系结构

HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群包括一个名称节点(NameNode)和若干个数据节点(DataNode)。名称节点作为中心服务器,负责管理文件系统的命名空间及客户端对文件的访问。集群中的数据节点一般是一个节点运行一个数据节点进程,负责处理文件系统客户端的读/写请求,在名称节点的统一调度下进行数据块的创建、删除和复制等操作。每个数据节点的数据实际上是保存在本地Linux文件系统中的。
在这里插入图片描述

三、HDFS读写删文件流程

1、读文件

在这里插入图片描述
2、写入文件
在这里插入图片描述
3、删除文件流程
(1)client执行 hadoop fs -rm
(2)会执行DistributedFileSystem类的delete方法,逻辑删除
(3)通过namenode给datanode发出指令,进行物理删除

四、HDFS启动与关闭

1、启动HDFS

执行: start-dfs.sh

利用jps查看集群启动情况
在这里插入图片描述
在这里插入图片描述
2、关闭HDFS

执行:stop-dfs.sh

在这里插入图片描述

五、HDFS常用命令

(一)三种shell命令方式

1、hadoop fs
适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统

2、hadoop dfs
只能适用于HDFS文件系统

3、hdfs dfs
hdfs dfs跟hadoop dfs的命令作用一样,也只能适用于HDFS文件系统

(二)FileSystem Shell文档

点击这里
在这里插入图片描述
在这里插入图片描述

(三)常用命令

1、hadoop fs -ls 显示 指定的文件或目录的详细信息。
2、hadoop fs -ls -R ls命令的递归版本。
3、hadoop fs -cat 指定文件的内容输出到标准输出。
4、hadoop fs chgrp [-R] group 指定文件所属的组改为group,使用-R对 指定目录内的文件进行递归操作。这个命令只适合于超级用户。
5、hadoop fs -chown [-R] [owner][:[group]] 改变 指定文件或目录的拥有者,-R用于递归改变目录内的文件或目录的拥有者。 这个命令只适合于超级用户。
6、hadoop fs -chmod [-R] 指定文件或目录的权限更改为。这个命令只适合于超级用户和文件或目录的拥有者。
7、hadoop fs -tail [-f] 指定文件最后1KB的内容输出到标准输出上,-f选项用于持续检测新添加到文件中的内容。
8、hadoop fs -stat [format] 以指定格式返回 指定文件的相关信息。当不指定format的时候,返回文件 的创建日期。
9、hadoop fs -touchz 创建一个 指定的空文件。
10、hadoop fs -mkdir [-p] 创建指定的一个或多个目录,-p选项用于递归创建子目录。
11、hadoop fs -copyFromLocal 将本地源文件复制到路径指定的文件或目录中。
12、hadoo fs -copyToLocal [-ignorcrc] [-crc] 将目标文件复制到本地文件或目录中,可用-ignorecrc选项复制CRC校验失败的文件,使用-crc选项复制文件以及CRC信息。
13、hadoop fs -cp 将文件从源路径复制到目标路径。
14、hadoop fs -du 显示 指定文件或目录内所有文件的大小。
15、hadoop fs -expunge 清空回收站。
16、hadoop fs -get [-ignorcrc] [-crc] 复制指定的文件到本地文件系统指定的文件或目录内,可用-ignorecrc选项复制CRC校验失败的文件,使用-crc选项复制文件以及CRC信息。
17、hadoop fs -getmerge [-nl] 对指定目录内所有文件进行合并,写入指定的本地文件。-nl是可选的,用于指定在每个文件结尾添加一个换行符。
18、hadoop fs -put 从本地文件系统中复制指定的单个或多个源文件到指定的目标文件系统中。
19、hadoop fs moveFromLocal 与put命令功能相同,但是文件上传结束后会从本地文件系统中删除指定的文件。
20、hadoop fs -mv 将文件或目录从源路径移到目标路径。
21、hadoop fs -rm 删除 指定的文件或目录(非空目录)。
22、hadoop fs -rm -r 删除 指定的目录及其下的所有文件,-r选项表示递归删除子目录。
23、hadoop fs -setrep [-R] 改变 指定文件的副本数,-R选项用于递归改变目录下所有文件的副本数。
24、hadoop fs -test [-ezd] 检查 指定文件或目录的相关信息。

-e (exist)检查文件是否存在,如果存在则返回0,否则返回1
-z (zero)检查文件是否是零字节,如果是则返回0,否则返回1
-d(directory)检查路径是否是目录,如果是则返回0,否则返回1。
25、hadoop fs -text 指定的文件输出为文本格式,文件格式允许是zip和TextRecordInputStream。

六、HDFS常用命令操作实战

1、创建单层目录

hadoop fs -mkdir /park

在这里插入图片描述
叠加创建文件夹

 hadoop fs -mkdir - p /park01/park02

2、查看目录
在这里插入图片描述
3、利用Web界面访问HDFS
注意:虚拟机hadoop129的IP地址是192.168.10.129,端口号是50070。

(1)利用IP地址来访问
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)也可以利用主机名来访问
在这里插入图片描述
4、上传本地文件到hdfs
1)创建qing.txt文件

在这里插入图片描述
2)上传qing.txt文件到hdfs的/park目录:
在这里插入图片描述
查看是否上传成功
在这里插入图片描述
web界面查看:
在这里插入图片描述
5.下载hdfs文件到本地
(1)先删除本地的qing.txt 文件
在这里插入图片描述
(2)下载qing.txt文件到本地目录

hadoop fs -get /park/qing.txt

在这里插入图片描述
可以将HDFS上的文件下载到本地指定位置:

hadoop fs -get /park/test1.txt /home/

6、删除hdfs文件

hadoop fs -rm /park/qing.txt

在这里插入图片描述
7、删除hdfs目录

hadoop fs -rmdir /park

在这里插入图片描述
web查看是否已经删除
在这里插入图片描述
如果出现:

rmdir: '/park' : Directory is not empty

说明:-rmdir,删除不了非空目录。

要递归删除才能删除非空目录:

hadoop fs -rm -r /park01

8、移动目录或者文件
将text.txt文件 更名为ling_er.txt
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将qing.txt 移动到user目录里:

在这里插入图片描述
在这里插入图片描述
将/user/qing.txt更名为/user/qing02.txt:

在这里插入图片描述
在这里插入图片描述
9、文件合并下载
现在本地创建qing03.txt qing04.txt上传
在这里插入图片描述
在这里插入图片描述
合并 /user目录的文件下载到本地目录的text.txt:

在这里插入图片描述
在这里插入图片描述
查看本地的test.txt文件是否是合并后的文件:
在这里插入图片描述
合并下载成功!!!
10、检查文件信息
hadoop fsck /user/qing02.txt -files -blocks -locations -racks
在这里插入图片描述

1 blk_1073741826_1002 文件块
2 len=13 文件长度
3 Live_repl=1 副本数量
4 [/default-rack/192.168.225.100:50010] 机架

12、复制文件或目录
(1)将park中的qing02.txt文件复制到park01/message.txt

在这里插入图片描述
在这里插入图片描述
(3)将/park01目录复制到/park02目录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
13、递归查看目录

hadoop fs -ls -R /

在这里插入图片描述
14、查看文件大小

hadoop fs -du /park01/message.txt

在这里插入图片描述
15、查看某个文件的个数

hadoop fs -count /qing02.txt

在这里插入图片描述
16、检查hadoop本地库

hadoop checknative -a

17、进入退出安全模式
(1)进入安全模式

hdfs dfsadmin -safemode enter

在这里插入图片描述
注意:安全模式只能读不能写
此时创建目录就会报错:
在这里插入图片描述
退出安全模式

hdfs dfsadmin -safemode leave

在这里插入图片描述
此时创建就没有任何问题
在这里插入图片描述

七、使用HDFS Explorer可视化操作hdfs

1、下载hdfs Explorer
链接:点击下载
提取码:z0ad
2、安装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
HDFS可视化软件使用详情
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值