HDFS中的关键概念(一)

来源:互联网 发布:东华软件股票行情 编辑:程序博客网 时间:2024/05/16 15:40

简介

HDFS是作hadoop的文件系统组件,是一个高度容错性的系统HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用HDFS放宽了一部POSIX约束来实现流式读取文件系统数据的目HDFS在最开始是作Apache Nutch搜索引擎项目的基础架构而开发的HDFSApache Hadoop Core项目的一部分。

数据块(block

HDFS中的文件被分割成几block,每block分别存储在多DataNode,一般block的默认大小128MB,用户也可根据自己的需求自定义

元数据结点(NameNode)

NameNode存储系统元数据NameNodeinode记录了文件和目录属性,包括权限,修改时间和访问时间namespace和分配的磁盘空间。元数据结点维护了一namespaceblockDataNode(文件数据的物理位置)之间的映

数据结点(DataNode)

DataNode主要存储应用数据。为了可靠性和永久性,文件被分割成几block,每block副本存储在多个3DataNode。当终端访问数据时,会选取离自己最近DataNodeDataNodeblock副本由两个文件来表示,分别存储数据本身block的元数据(包括对块数据的校验和block生成时间戳)。数据文件的大小与所占用的数据块大小一致,不需要额外空间考虑对齐问

在启动过程中,每一个数据结点会和数据结点握手,其目的是验namespace ID和数据结点的软件版本。如果不匹配,则数据结点关闭

  • 当格式化的时候,就为文件系统指定namespace ID, 并永久存储在集群的所有结点中。结namespace ID 和集群的不同,则不能加入到此集群中,由此,保证了文件系统的完整性

  • 检查软件版本防止不兼容的版本造成的数据崩溃或丢失

在握手结束后,数据结点注册在元数据结点,并永久存储它storage ID个刚初始化的没有namespace ID的数据结点可以加入集群并接受集namecpace ID

数据结点通过发送block report到元数据结点,告知元数据结点它所存储block副本。一旦注册完成,第block report就发送到元数据结点, 然后,后续的报告每隔一小时发送一次,元数据结点就可根据报告定block副本的位置

同时,数据结点会3用户可根据情况自定义间隔时间, 如果集群规模比较小,间隔可设置得比较短,利于充分利用集群服务器,而规模比较大时,间隔时间可设置得比较长,从而降低网络负载,同事由于规模比较大,NameNodeDataNode失效时,有充分的资源可供选择。发送一heartbeats到元数据结点,保证元数据结点确信数据结点是可用的。如果10分钟,元数据结点没有收到数据结heatbeats,则元数据结点认为此数据结点服务中断,元数据结点将创建新的文件副本到其他数据结点。元数据结点并不直接给数据结点发送信息。它通过heartbeats给数据结点发送指令。这些指令包

  • 复制block到其他的数据结点;

  • 删除本地block副本;

  • 重新注册或者关闭数据结;

  • 立即发送一个block report

HDFS客户元数据结数据结点之间的交互如

image

总结

简单介绍HDFS的数据块,元数据结点,数据结点,以HDFS客户端元数据数据访问文

0 0
原创粉丝点击