深入Hadoop之HDFS

来源:互联网 发布:淘宝网中老年冬季服装 编辑:程序博客网 时间:2024/05/20 01:46

HDFS来源
HDFS源自于Google的GFS论文,发表于2003年10月。HDFS是GFS的克隆版。
HDFS有以下特点
易于扩展的分布式文件系统
运行在大量的普通廉价的机器上,提供容错机制
文件分块存储,将一个完整的大文件平均分块存储到不同计算器上
为大量的用户提供性能不错的文件存取服务
流式数据访问
HDFS架构
这里写图片描述
NameNode
一个HDFS集群是由一个Namenode和一定数目的Datanodes组成。Namenode是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。
NameNode是所有HDFS元数据的仲裁者和管理者。用户数据永远不会流过NameNode,只会询问NameNode用户数据和哪个DataNode联系。
文件副本存放在哪个DataNode上有NameNode控制,NameNode会根据全局情况来做出块放置 决定,读取文件时NameNode尽量让用户先读取最近副本,减低块的消耗和读取延时。
NameNode全权管理数据块的复制,它周期性地从集群的每个DataNode收集心跳信号和块状态报告。块状态报告包含了一个该DataNode上所有数据块的列表。
DataNode
集群中的Datanode一般是一个节点一个,负责管理它所在节点上的存储,包括两个文件,一个是数据本身,一个元数据包括数据的长度、块数据的校验和、及时间戳。
DataNode启动后向NameNode注册,通过后,周期性地向NameNode上报所有的块信息。
心跳没3秒一次,心跳返回结果带有NameNode给该DataNode的命令。如果10分钟没有收到某个DataNode的心跳,则认为该节点不可用。
集群运行中可以安全加入退出一些机器。
NameNode和DataNode启动过程
启动NameNode。
读取fsimage元数据镜像文件,加载到内存中。读取editlog日志文件,加载到内存中,使当前内存中元数据信息与上次关闭系统时保持一致。然后在磁盘上生成一份同内存中元数据镜像相同的fsimage文件,同时生成一个新的null的editlog文件用于记录以后的hdfs文件系统的更改。
启动DataNode。
DataNode向NameNode注册。
向NameNode发送blockreport。
启动成功后,client可以对HDFS进行目录创建、文件上传、下载、查看、重命名等操作,更改namespace的操作将被记录在editlog文件中。
NameNode启动过程

原创粉丝点击