什么是HDFS
它是一个文件系统,通过目录树的方式存储文件,分布式存储
HDFS的特点
优点
- 高容错,自动保存多副本
- 适合处理大数据
- 可以构建在廉价的机器上,通过多副本复制机器
缺点
- 不适合低延时数据访问
- 无法高效的存储小文件
- 不支持并发写入, 且不支持修改,只支持追加
HDFS组织架构
- NameNode:管理这个节点的所有信息
a. 管理HDFS的名称空间
b. 配置副本策略
c. 管理数据块(Block)映射信息
d. 处理客户端读写请求 - DataNode:由NameNode下达命令,DataNode去执行
a. 存储数据
b. 执行数据块的读写操作 - 客户端
a. 文件切分,按照NameNode的文件块(128mb)去切分
b. 与NameNode交互获取文件位置
c. 与DataNode交互,读写文件
d. 提供一系列命令操作HDFS
HDFS文件块大小
- 太小:会增加寻址时间
- 太大:不利于后期的并发运算
- 取决于传输速率(一致)
HDFS读写数据流程
- 写数据
- 读数据
NN和2NN的工作原理
Fsimage文件:保存当前磁盘中文件的镜像
edits文件:对数据进行的追加操作
seen文件:当前对应edits文件的版本
DataNode工作原理
存储内容:数据块信息,校验和,时间戳