1.HDFS的概述
在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统 。
HDFS(
Hadoop Distributed File System
)是
Apache Hadoop
项目的一个子项目
. Hadoop
非常适于存储大型 数据 (
比如
TB
和
PB),
其就是使用
HDFS
作为存储系统
. HDFS
使用多台计算机存储文件
,
并且提供统一的访问接口
, 像是访问一个普通文件系统一样使用分布式文件系统.
分布式文件系统解决的问题就是大数据存储。它们是横跨在多台计算机上的存储系统。分布式文件系统在大数据 时代有着广泛的应用前景,它们为存储和处理超大规模数据提供所需的扩展能力。
![](https://img-blog.csdnimg.cn/direct/6cdc370683bd43078bdd4a5603c93c9e.png)
2.HDFS的特点
1.
HDFS
文件系统可存储超大文件,时效性稍差。
2.
HDFS
具有硬件故障检测和自动快速恢复功能。
3.
HDFS
为数据存储提供很强的扩展能力。
4.
HDFS
存储一般为一次写入,多次读取,只支持追加写入,不支持随机修改。
5.
HDFS
可在普通廉价的机器上运行。
![](https://img-blog.csdnimg.cn/direct/ef1eb8deff524b659bfdc782fb8d126b.png)
3.HDFS的架构
⚫
HDFS
采用
Master/Slave
架构
⚫
一个
HDFS
集群有两个重要的角色,分别是
Namenode
和
Datanode
。
⚫
HDFS
的四个基本组件
:
HDFS Client
、
NameNode
、
DataNode
和
Secondary NameNode
。
![](https://img-blog.csdnimg.cn/direct/adfc124538a54d68840482c5972a8436.png)
4.HDFS的副本机制
⚫
HDFS被设计成能够在一个大集群中跨机器可靠地存储超大文件。它将每个文件存储成一系列的数据块,这个数据块
被称为block,除了最后一个,所有的数据块都是同样大小的。
⚫
hdfs
默认文件
:https://hadoop.apache.org/docs/r3.3.4/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
⚫
为了容错,文件的所有block都会有副本。每个文件的数据块大小和副本系数都是可配置的。
⚫
hadoop 当中, 文件的 block 块大小默认是 128M(134217728字节)。
![](https://img-blog.csdnimg.cn/direct/fb5dcf2b13c3421b9c3cb915917e574b.png)
5.HDFS的Shell命令
1.cp命令
作用:将文件拷贝到目标路径中
格式: hadoop fs -cp <src> <dst>
2.cat命令
作用: 将参数所指示的文件内容输出到控制台
格式: hadoop fs -cat <filepath>
3. put命令
作用 : 将单个的源文件或者多个源文件srcs从本地文件系统上传到目标文件系统中。
格式 : hadoop fs -put <localsrc > ... <dst>
4.
get命令
作用: 将HDFS文件拷贝到本地文件系统。
格式 : hadoop fs -get <src> <localdst>