hdfs文件系统总体架构

hdfs分布式文件系统

要处理大数据,首先得解决海量数据的存储,在hadoop中解决海量存储的组件就是hdfs(hadoop filesystem)。是google GFS开源实现。其核心思想分而治之,将一个大文件(GB,TB)分解成多个文件块,由datanode存储文件块存储。hdfs采用master-slave架构,核心组件包括namenode,datanode。

namenode负责存储整个文件系统的命名空间,包括文件夹,文件,权限,文件对应的副本信息,文件块信息,文件块位置信息。其中文件块位置信息保持在内存中。由datanode通过heartbeat主动上报位置信息。

datanode负责实际的文件块存储,一个hdfs上的文件可能分为多个块,分别存储到不同的datanode上,每个datanode存储文件的一部分。一个文件块默认在3个datanode上存储。

hdfs文件系统总体架构_第1张图片
hdfs架构

大致读写流程如下:

1、在发起一个文件操作前首先冲namenode获取元数据信息,比如要读写的文件的名字,路径

2、namenode返回要操作的文件元数据信息,比如,file1文件的第一个块请从datanode2上获取或写入

3、client向datanode写入或存储文件内容

可以看出整个系统中,namenode占有举足轻重的作用,所有涉及命令空间的操作都要经过namenode,

datanode还会主动上报自身的位置信息和自身存储的块的位置信息到namenode.所以namenode是一个中心,非常重要

那么namenode由于本身不存储文件块位置信息的,那么文件块位置信息从何而来呢?

1、由namenode在心跳包中主动上报

2、每次写入块数据都是经过namenode分配的,包括副本信息。

你可能感兴趣的:(hdfs文件系统总体架构)