Hadoop核心组成部分
(1)Hadoop Common:用来支撑其他模块的公共工具包
(2)HDFS: 一种分布式文件系统,提供对应用程序数据的高吞吐量访问。
(3)Hadoop Yarn:作业调度和集群资源管理的框架。
(4)Hadoop MapReduce:基于YARN的系统,用于并行处理大型数据集。
HDFS存储模型
存储模型:字节(一个文件就是一个字节数组)
①block块产生:文件线性切割成block块,偏移量(offset)(byte)
②block块存储:block分散存储在集群节点中
③block块大小要求:单一文件block大小一致,文件和文件可以不一致
④block块副本:block 可以设置副本,副本分散在集群的不同节点上,副本数量不能超过集群节点数量
⑤关于文件上传:
文件上传可以设置block大小和副本数
已经上传的文件Block副本数可以调整,大小不变
仅支持一次写入多次读取,同一时刻只能有一个写入者
可以append追加数据
架构模型
1、数据种类
元数据MetaData,
文件数据本身。
2、角色(主从架构)
(1)NameNode存储:保存文件的元数据(目录树、路径也算)
①基于内存存储:不会和磁盘发生交换
NameNode的数据只会在内存中
持久化(Namenode基于内存存储,内存是掉电易失的,所以会将内存中的数据持久化到磁盘)
②主要功能:
NameNode是保存文件元数据信息的
NameNode用来和客户端交互,接收客户端的读写服务
收集DataNode汇报上来的block块列表信息
③保存的metadata信息
不保存位置信息,是因为需要保证数据一致性(提供百分之百准确的消息)
(2)DataNode:存储块文件,保存文件block数据,向NameNode汇报block块的列表
①存储:
本地磁盘目录存储block块的数据,以文件形式
存储block块的元数据信息
②功能:
向Namenode汇报block块的信息
和Namenode通过心跳(3秒一次)保持联系,如果Namenode10分钟没有接收到DataNode的心跳,则认为该DataNode已经lost,Namenode会将该DataNode上的block块复制到其他DataNode上
(3)关系(HDFSClient、DataNode、NameNode):
三者的关系:
DataNode与NameNode保持心跳,DataNode向NameNode提交block列表;
HDFSClient和Namenode交互文件元数据;
HDFSClient和DataNode交互文件block数据