HDFS是Hadoop技术框架中的分布式文件系统 可以放在多台独立物理机器上的文件进行管理
HDFS作为Hadoop的基础存储设施,实现了一个分布式、高容错、可线性扩展的文件系统。
其中自身具备的特点
高容错性:不相信自己的硬件,保存数据保存多个副本
高吞吐量:为大量数据访问的应用提供高吞吐量支持。
大文件存储:支持存储TB-PB级别的数据
适合
大文件存储与访问流式数据访问
但不适合
大量小文件存储
随机写入
低延迟读取
架构
在hdfs架构中有三部分
NameNode:用于存储元数据
DataNode:存储真实数据
Client:业务访问,从NameNode,DataNode获取数据
写流程
Client向NameNode请求写入文件 让后NameNode创建节点, 写入文件,之后客户端收到数据后,从NameNode获取信息,并写入数据到datanode 完成后在复制到其他的databode上,写入完成后会返回信息给客户端client
读流程
Client向NameNode获取文件信息并读取文件,之后客户端根NameNode获取的信息,向datanode获取相应的数据,读取完成后 就会调用close关闭
关键性
高可靠性:主要体现在利用zookeeper实现主备NameNode,以解决单点NameNode故障问题
ZooKeeper主要用来存储HA下的状态文件,主备信息。ZK个数建议3个及以上且为奇数个。 NameNode主备模式,主提供服务,备同步主元数据并作为主的热备。
副本存放策略: