分布式文件系统HDFS
分布式文件系统:
分布式文件系统是一种通过网络实现文件在多台主机上进行分布式存储的文件系统。分布式文件系统的设计一般采用“客户机/服务器”模式,客户端以特定的通信协议通过网络与服务器建立连接,提出文件访问请求,客户端和服务器可以通过设置访问权来限制请求方对底层数据存储块的访问。
分布式文件系统的结构
分布式文件系统在物理结构上是由计算机集群中的多个节点构成的,如图所示。每个节点都有不同的功能。分布式文件系统是针对大规模数据存储而设计的,主要用于处理大规模文件,如TB级文件。处理过小的文件不仅无法充分发挥其优势,而且会严重影响到系统的扩展和性能。
HDFS简介
HDFS开源实现了 GFS的基本思想。HDFS原来是Apache Nutch搜索引攀的一部分,后来独立出来作为一个Apache子项目,并和MapReduce 一起成为Hadoop的核心组成部分。HDFS支持流数据读取和处理超大规模文件,并能够运行在由廉价的普通机器组成的集群上。
HDFS特性
- 兼容康价的硬件设备
- 无数据读写
- 大数据集
- 简单的文件模型
- 强大的跨平台性
- 不适合低延迟数据访问
- 无法高效存储大量小文件
- 不支持多用户写入及任意修改文件
HDFS的相关概念
- 块:相信块大家都不陌生,为了提高磁盘存储效率,都是以数据块为单位的。HDFS也是一样,不过默认一个块的大小事64MB。
- 名称节点和数据节点:在HDFS中,名称节点负责管理分布式文件系统的命名空间,保存了两个核心的数据结构,即Fslmage和EditLog。数据节点是分布式文件系统HDFS的工作节点,负责存储读取数据。
- 第二名称节点:顾名思义,是为了解决第一名称节点出现问题的,不做过多解释啦。
HDFS体系结构
HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群包括一个名称节点和若干个数
据节点,下图即可全面了解。
HDFS的存储原理
- 数据的冗余存储:HDFS采用了多副本方式对数据进行冗余存储,通常一个数据块的多个副本会被分布到不同的数据节点上。
- 数据存取策略:数据存取策略包括数据存放、数据读取和數据复制等方面,它在很大程度上会影响到整个分布式文件系统的读写性能,是分布式文件系统的核心内容。
- 数据的错误与恢复
HDFS的数据读写过程
读写过程我觉得没必要了解太清楚了,这里最重要的是和编程结合起来进行一些实际的操作。