频道栏目
首页 > 资讯 > 云计算 > 正文

深入Hadoop之HDFS

17-07-06        来源:[db:作者]  
收藏   我要投稿

深入Hadoop之HDFS

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启动过程
相关TAG标签
上一篇:storm环境搭建及demo
下一篇:cephkraken版部署脚本
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站