hdfs原理及各个任务节点的职责详解

1、hdfs简介

一个高可靠,高吞吐量的分布式文件系统,通俗的说就是把文件存储到多台服务器上

hdfs官方架构图:

hdfs原理及各个任务节点的职责详解_第1张图片

可以通俗的理解为下图

hdfs原理及各个任务节点的职责详解_第2张图片

Namenode详解:

Namenode是一个中心服务器:单一节点(简化系统的设计和实现),负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。

文件操作:NameNode负责文件元数据的操作,DataNode负责处理文件内容的读写请求,跟文件内容相关的数据流不经过NameNode,只会询问它跟那个DataNode联系,否则NameNode会成为系统的瓶颈。

副本存放位置:DataNode上由NameNode来控制,根据全局情况做出块放置决定,读取文件时NameNode尽量让用户先读取最近的副本,降低带块消耗和读取时延

Namenode全权管理数据块的复制,它周期性地从集群中的每个Datanode接收心跳信号和块状态报告(Blockreport)。接收到心跳信号意味着该Datanode节点工作正常 。块状态报告包含了一个该Datanode上所有数据块的列表。


DataNode详解
一个数据块在DataNode以文件存储在磁盘上,包括两个文件,一个是数据
本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息 心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某
个DataNode的心跳,则认为该节点不可用。

集群运行中可以安全加入和退出一些机器

SecondaryNameNode 用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。

你可能感兴趣的:(hadoop)