一、了解HDFS
HDFS,即分布式文件系统,是指文件系统管理的物理资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。它允许将一个文件通过网络在多台主机上以多副本的方式进行存储,实际上是通过网络来访问文件,而用户和程序看起来却像是访问本地的文件系统一样。
HDFS优点:
高容错性:HDFS上传的文件会自动保存多个副本,一个副本丢失,HDFS的副本机制会自动复制其他机器上的副本
适合大数据处理
流式数据访问:文件一旦写入,就不能修改只能增加,提高I/O性能
可构建在廉价的机器上
HDFS缺点:
不适合低延时数据访问场景
不适合小文件存取场景:(过多的小文件会导致内存溢出)一般可采用将小文件进行合并的方式进行改善。或者使用Hbase;
不适合并发写入,文件随即修改场景(同一个时间,只能由一个用户进行写入,文件写入不可修改)可以并发读取
二、HDFS架构
HDFS采用master/slave架构
master:NameNode
slave:DataNode
元数据:关于文件的描述信息
Rack:机架
Client:客户端 负责存储和读取
NameNode:元数据节点,一个集群只有一个Active的NN,一旦挂掉,虽然数据还在,但是找不到具体文件的存储地址(相当于一个账本)
DataNode:数据节点,数据储存节点,保存和检索Block,一个集群可以有多个数据节点
Secondary NameNode :从元数据节点,合并NameNode的edit logs 到fsimage文件中,辅助NN(元数据节点)将内存中元数据信息持久化
三、HDFS副本机制
Block:数据块 HDFS最基本的存储单元 默认块大小:128M(2.x)
副本机制:
作用:避免数据丢失
副本默认为3
ps:配置文件中的Block块
存放机制:一个在本地机架节点
一个在同一个机架不同节点
一个在不同机架的节点
四、HDFD高可用
在1.x版本中
存在Namenode单点问题(无法解决的问题)
在2.0x版本中
HAdoop HA
Active Namenode :对外提供服务
Standy Namenode :Active故障时可切换为Active
HDFS Federation 方式,共享DN资源
五、HDFS读写文件
HDFS写入文件
HDFS读文件
六、HDFS文件格式
HDFS支持以不同格式存储所有类型的文件
文本、二进制
压缩格式分为:未压缩、压缩
为了最佳的Map-Reduce处理,文件需可分割
SequenceFile
Avro File 二进制格式存储
ACFile ORCFile
Parquet File -spark cirle