HDFS文件系统

HDFS文件系统是hadoop生态系统的核心,主要用于分布式文件存储,它具备高可用,流式读取,文件结构简单,跨平台的特点,它的集群采用的是主从结构,分为命名节点和数据节点,命名节点主要用于元数据管理(例如对目录,文件的创建,数据块与数据节点的关系维护管理)及数据节点管理(例如数据节点之间数据的复制,节点状态的维护,节点间数据的均衡),该文件系统最基本的存储单位是block即数据块,默认大小是64M,这样干有什么好处呢,通过对大数据文件进行块状拆解有利于大化小,进行快速存储,及移动复制。

HDFS由名称节点和数据节点构成,一个集群只有一个名称节点,可以有多个数据节点

名称节点主要用于元数据维护和数据节点管理,它由FsImage(元数据镜像)和EditLog(操作日志)两部分组成。

数据节点主要用于数据的存储和读取,会根据名称节点规划好的位置进行数据的存储,并且定期向名称节点发送自己所存储的块的列表

hdfs存取基本过程:

存:hdfs客户端向命名节点发送写请求,命名节点进行写权限校验(对于同一个hdfs文件,同一个时间只能有一个写入),进行元数据创建,返回FSdata outputstream对象,hdfs客户端接到该对象后,与数据节点交互进行数据写入

读:hdfs客户端向命名节点发送读请求,在目录中查询hdfs文件,返回FSdata inputputstream对象,hdfs客户端接到该对象后,与数据节点交互进行数据读取

hdfs采用传统的目录文件结构,它的操作命令也与Linux的目录文件操作命令相似,例如创建目录:hadoop fs -mkdir /mulu 复制: hadoop fs -cp 查看: hadoop fs ls

上传文件:hadoop fs -put 下载:hadoop fs -get

hdfs也提供了简单易用的java api接口,可以实现上述的命令功能

你可能感兴趣的:(HDFS文件系统)