分布式文件系统HDFS
1、特点:高容错和高可用性
流式数据访问 : 来一点处理一点
弹性存储:动态增减机器处理特殊问题
简单一致性模型:一次性写完多次读
移动机算而非移动数据 (未理解)
协议和接口多样性
多样的数据管理功能
2、大数据中性能瓶颈问题:
机算密集型:瓶颈在cpu
IO密集型:瓶颈在硬盘
3、组件角色:
NameNode(NN):HDFS元数据(描述数据的数据)管理者,
管理NameSpace记录文件是如何分割成数据块以及他们分别存储在集群中的哪些数据节点上。
DataNode(DN):负责存储文件,受NN指挥
Client:用户与上俩交互以访问文件系统的对象,开发人员也是面向Client API编程
4、架构设计
1、基本架构
HDFS是一个主从式(Master/Slave)的体系结构。HDFS集群中有一个NameNode和一些DataNodes
NameNode管理文件的元数据,DataNode存储实际的数据。
客户端联系NameNode来获取元数据信息,而真正的文件I/O是直接和DataNode进行交互的。
2、读取文件流程
第一步:Client向NameNode发送数据请求后,寻找数据对应的数据块的位置信息。
第二步:NameNode返回文件对应的数据块元数据信息,如所属机器、数据块的block_id、数据块的先后顺序等。
第三步:由Client与DataNode直接通信,读取各个block数据块的信息。过程为并行读取,由客户端合并数据。
5、写文件流程
1、Client向NameNode发送写数据请求,寻求数据块block信息的机器位置,文件过大会分块
2、Client获取到对应的block数据块所处的DataNode节点位置后,Client开始写操作。
Client先写入第一个DataNode,以数据包package的方式逐个发送和接收。
存在多个副本时,package包的写入是依次进行的。
3、所有block均写完后,client关闭socket流。
6、HDFS高可用性(出现故障也能运行)措施
1、冗余备份
2、跨机架副本存放
3、心跳检测
4、数据完整性检测
5、安全模式
6、核心文件备份
7、空间回收(/trash)
7、hdfs dfs常用命令:百度