这里是根据自己课上的学习资料总结出来的内容,分享提供给大家学习
(内容有点多,分几篇来写)
HDFS角色
Client:客户端
NameNode (NN):元数据节点
管理文件系统的Namespace/元数据
一个HDFS集群只有一个Active的NN
DataNode (DN):数据节点
数据存储节点,保存和检索Block
一个集群可以有多个数据节点
Secondary NameNode (SNN):从元数据节点
合并NameNode的edit logs到fsimage文件中
辅助NN将内存中元数据信息持久化
HDFS架构
元数据
元数据(Metadata)是描述数据的数据,提供关于数据的组织、数据域及其关系的信息。
元数据包括数据是如何创建的、创建时间、目的、作者、位置、大小等详细信息,但并不 提供数据的内容本身。
元数据的作用包括帮助用户识别、描述和定位网络化的电子资源,提供数据内容的背景信 息,便于数据的管理、维护和有效利用
NameNode (名称节点)工作机制
NameNode (名称节点)启动时,将FsImage加载到内存,并执行Editlog中的操作,确保内 存中元数据最新,最后将生成的FsImage保存到磁盘,并生成一个空的Editlog。
NN正常运行后,HDFS的更新操作将会写入新生成的Editlog,而不是写入FsImage。
NN定期将新生成的Editlog与内存中的FsImage合并保存到磁盘中。
HDFS架构的优劣性
HDFS具有下列优点
1. 高容错性:数据自动保存多个副本,副本丢失后,可以自动恢复
2. 适合大量数据的批量处理:Hadoop架构以数据为中心,在进行计算时并不移动数据,而是将计算分配给数据,适 合GB级、TB级甚至PB级的数据量,数据文件的数量可以达到百万级别,系统中节点数可以达到上万的规模。
3. 简单的数据模型:HDFS采用“一次写入,多次读取”的简单文件模型,文件一旦完成写入,关闭后就无法再次写 入,只能被读取。
4. 构建成本低、安全可靠:HDFS采用成千上万的廉价服务器存储数据,极大降低了Hadoop集群的架构成本。
HDFS具有下列缺点
1. 不适合低延迟数据访问:由于HDFS面向大规模数据的批量处理,采用流式数据读取,具有很高的数据吞吐率,但 也导致较高的延迟性。
2. 不适合大量小文件存储:HDFS使用名称节点管理文件系统的元数据,这些元数据被保存到内存中,过多的小文件 占用大量的内存空间,将导致元数据检索效率降低。此外,在多个节点中读取小文件,磁盘寻道时间超过读取时间, 严重影响系统性能。
3. 不支持多用户并发写入及任意修改文件:HDFS只允许一个文件能有一个写入者,不允许多个用户同时对一个文件 执行写入操作。而且只允许对文件执行追加操作,不能执行随机写操作。