hdfs的运行机制

HDFS体系结构

  HDFS中运行着2类节点namenode、datanode。一个namenode、多个datanode,namenode和datanode以主从(master-slave)模式运行与HDFS集群中。 

  namenode为管理节点,执行对文件系统命名空间的操作,如:打开、关闭和重命名文件或目录;并且决定文件块与datanode之间的映射关系。

  datanode为工作节点,存储并检索数据块,并定期向namenode发送它们存储的块的列表,接收来自namenode的文件块创建、删除和复本改进等命令。

hdfs的读写机制(简述):

写:

客户端将需要上传的文件进行切分,切分成多个block块,默认大小128M
1.客户端要求向hdfs中写入数据并发送请求给namenode;
2.namenode获取每个datanode的信息;
3.namenode将可存储数据的datanode的信息返回给客户端,告诉客户端该datanode可存储;
4.客户端以流的形式向datanode发送需要写的block块;
5.完成之后datanode会向namenode汇报,这样就完成了上传的工作


读:
1.客户端向namenode发送读的请求;
2.namenode查看datanode的信息,返回block的位置给客户端
3.客户端根据namenode提供的block位置去相应的datanode上面去读取位置


checkpoint操作:

secondarynamenode会定期从 namenode上下载fsimage镜像文件和新生成的edits日志
然后加载fsimage镜像到内存中,然后顺序解析edits文件,对内存中的元数据对象进行修改
整合完成之后,将内存中元数据序列化成一个新的fsimage镜像,并将这个镜像文件上传给namenode


注:
namenode运行时,文件系统的元数据是维护在内存中的(这是为什么运行namenode的机器需要较大的内存,也是为什么HDFS不适合存储大量小文件的原因:创建大量的小文件会急速的消耗掉namenode的内存)。

  而命名空间镜像是文件系统元数据的一个永久性检查点,将元数据序列化保存于本地磁盘。并不是每次操作都会更新该文件,因为fsimage是一个大型文件,频繁操作会使系统极为缓慢。

 

写:hdfs的运行机制_第1张图片

读:

hdfs的运行机制_第2张图片

namenode元数据管理机制:

hdfs的运行机制_第3张图片

你可能感兴趣的:(问题集,hadoop)