废话不多说直接看图
一、hadoop的架构
1>从物理架构来看一个叫Master的机器管理者3台叫slaveX的节点
2>从逻辑的角度来看
a:HDFS 一个NameNode节点管理着3台DataNode节点
b:Yarn 一个ResourceManager管理者3台NodeManager
二、各个角色的作用
NameNode:(接受用户的读写请求)
1、存储元数据(owership、permissions、文件包含那些块)
>>block保存在哪个dataNNode上在启动时由DataNode上报其位置信息即这些信息一致在内存中
>>元数据metadata持久化到一个叫fsimage的文件中
>>edits文件记录对metadata的操作日志
>>当删除一个文件不会立即去修改fsimage文件而是等一段时间在合并这两个文件的操作
2、数据在内存中(也会在磁盘上持久化一份)
3、存储文件、block、datanode上的映射关系
DataNode:
1、存储文件的实际数据
2、文件存储在磁盘上
3、维护了blockId到本地文件的映射关系
定时向namenode发送心跳同时也实时上报本节点上的数据(有可能会阻塞namenode节点)
SecondaryNameNode
不是Namenode的备份但是可以做其备份,主要是帮NameNode合并edits日志以减少Namenode启动的时间
就是说当有频繁的操作时,并不是实时的取修改fsimage文件而是记录在edits日志中
间隔一定的时间或者当edits日志大小到一定的值时由SecondaryNameNode去根据edits日志修改fsimage文件
一个数据块被划分为多个block如果不够128M就按照128M存储(逻辑上),实际是文件多大就按照多大存储