HDFS分布式文件系统学习总结

结构:主从结构(Master/slave)名称节点/数据节点;

缺点:不适合低延时数据访问;

无法高效存储大量小文件;

不支持并发写及任意修改文件;

NN:存储元数据;元数据保存在内存中;保存文件,block,DN之间的映射关系;

DN:存储文件内容;文件内容保存在磁盘中;维护block ID到DN本地文件的映射关系;

NN数据结构:

FSImage:用于维护文件系统树以及文件树中所有的文件和文件夹的元数据;

EditLog:录了所有针对文件的创建、删除、重命名等操作;

注释:FSImage中没有记录块存储在哪个数据节点。

NN启动:加载FSImage,执行EditLog;

SecondaryNN:合并FSImage、EditLog;

过程:1)SecondaryNameNode会定期和NameNode通信,请求其停止使用EditLog文件,暂时将新的写操作写到一个新的文件edit.new上来,这个操作是瞬间完成,上层写日志的函数完全感觉不到差别;
  (2)SecondaryNameNode通过HTTP GET方式从NameNode上获取到FsImage和EditLog文件,并下载到本地的相应目录下;
  (3)SecondaryNameNode将下载下来的FsImage载入到内存,然后一条一条地执行EditLog文件中的各项更新操作,使得内存中的FsImage保持最新;这个过程就是EditLog和FsImage文件合并;
  (4)SecondaryNameNode执行完(3)操作之后,会通过post方式将新的FsImage文件发送到NameNode节点上

  (5)NameNode将从SecondaryNameNode接收到的新的FsImage替换旧的FsImage文件,同时将edit.new替换EditLog文件,通过这个过程EditLog就变小了。

DN:负责保存数据和读取数据;

同性协议:

所有HDFS通信协议都是构建在TCP/IP上的;

客户端和数据节点使用数据节点协议 ,用火RPC远程调用实现;

HDFS局限性:

1、受限于内存大小;

2、受限于单个名称节点性能;

3、无法对不同程序进行隔离;

4、单点故障;

HDFS存储原理:

冗余保存:

优点:

1、加快数据传输速度------分别去取
2、容易检查数据错误--互相检查

3、保证数据可靠性--自动复制

存放方式:

第一副本存在上传节点;第二副本在不同机架;第三副本在第一机架不同节点上;其他随机;

读取:

用API确认机架ID和客户端ID,采用就近原则;没用相同ID,则随机;

数据错误与恢复:

三个:名称节点出错、数据节点出错和数据出错。

NN wrong:停机,从第二名称节点拷贝恢复;1.0需要停机,2.X有热备;

DN wrong:心跳信息;标记数据节点宕机,数据不可读;调整副本数量和位置;

Data wrong:MD5和sha1校验;

读数据:

HDFS分布式文件系统学习总结

写数据:

HDFS分布式文件系统学习总结

学习记录使用;