HDFS--笔记

时间:2023-03-08 23:14:31
HDFS--笔记

HDFS的简介

分布式的文件系统,基于流数据模式访问和处理超大文件的分布式文件系统





Hadoop Distributed File System









HDFS的优点

处理超大文件

流数据访问

运行廉价的商用服务器上





HDFS的缺点

无法高效存储大量的小文件(元数据信息增大会造成NameNode的压力增大)

不适合处理低延迟的数据访问

不支持多用户对同一个文件的写入

不支持任意的修改





HDFS的特点

高容错性,三个副本,

可扩展和配置性(可以任意增加节点)

夸平台

机架感知

负载均衡

shell命令接口

安全模式(不允许写,监测数据块,不允许执行JOB)





HDFS的核心设计

数据块(Block):数据以块固定大小的方式进行存储,128M

数据复制:以块来进行复制,可以配置复制因子 默认是3个

数据副本的存放策略:

分布存储在不同的节点上

每个数据块保存默认是3个副本

同一个数据的三个副本的存放

第一个副本存在离客户端近的机架上的某一台节点上

第二个副本存在相邻或者另外一个机架上的某一台节点上

机架感知

心跳机制:从节点通过NodeManager 向主节点ResourceManager每隔3秒钟发送心跳数据(从节点的cup 内存 磁盘等等资源使用情况)

ResourceManager在心跳的返回值中分配任务和指令给从节点的NodeManager









HDFS的体系结构

主从架构

Master/Slave

NameNode(元数据管理和存放)

SecondaryNameNode(辅助NameNode将edit和fsimage文件进行合并,生成新的fsimage,然后将文件返回给NameNode)

DataNode 从节点,用来存放数据的



Write:向HDFS写入文件

客户端-------》ResourceManager

NameNode  DataNode

Client-----》NameNode (提供blockId的列表)

Client-----》DataNode



Read:向HDFS读取文件

Client-----》ResourceManager

NameNode  DataNode

Client-----》NameNode(文件的名字...)

Clinet-----》DataNode

HDFS的设计目标

监测故障和快速恢复

大规模数据集的处理

流式数据访问

简化一致性模型,一次写入,多次读取

移动计算要比移动数据的代价要低

在异构的平台上可以移植

通信协议是基于tcpip的ipc rpc协议