大数据开发:Hadoop HDFS核心角色及作用

时间:2021-7-4 作者:qvyue

作为Hadoop的三大核心之一,HDFS的重要性不言而喻,在底层存储上,要快速完成大规模数据的分布式存储任务,HDFS不可或缺。今天的大数据开发学习分享,我们来讲讲HDFS当中的几大核心角色,及其在架构层面所承担的工作任务。

HDFS作为典型的master/slave架构。HDFS集群由单个Namenode组成,Namenode管理文件系统名称空间并控制客户机对文件的访问。此外,还有许多datanode,通常是集群中每个节点一个,它们管理连接到运行它们的节点的存储。在HDFS内部,文件被分割成一个或多个块,这些块存储在一组datanode中。Namenode执行文件系统命名空间操作,如打开、关闭和重命名文件和目录。它还确定块到数据节点的映射。datanode负责提供来自文件系统客户机的读写请求。datanode还根据来自名称节点的指令执行块创建、删除和复制。

大数据开发:Hadoop HDFS核心角色及作用

HDFS核心角色

HDFS核心角色包括Namenode、secondary node、datanode、client。

一、Namenode

Namenode的作用相当于文件系统管理者,管理、调度整个分布式文件系统,是一个老大哥的角色,它具体的作用:

1.管理HDFS的命名空间。我们上传的文件,文件的名字以及文件具体存储在集群中那台机器中,都是需要通过Namenode来完成的。

2.配置副本策略。HDFS文件系统的优点之一就是可靠性,而这个可靠性的来源就是对一份文件会自动保存多个副本,而每份文件保存多少个副本,每个副本有存储在哪个DataNode节点中,是依靠Namenode来管理。

3.管理数据块(Block)映射信息。上传一份文件,会被切割分成几块上传存储。而最后要读取整个文件就需要记录每个文件块的顺序和存储位置才可以形成最后的完整文件,这些信息就是存储在Block中。

4.处理客户端的读取和写入请求。我们在向HDFS中上传文件或者读取文件都是向Namenode发送请求,由它来处理我们的请求。

二、DataNode

就是Slave,相当于干活的打工者,由Namenode调度派发工作,具体作用有:

1.存储实际的数据块,Namenode负责文件的名字等信息,然后支配那几个DataNode来存储。

2.执行数据块的读写操作,客户端在和Namenode请求完成后,Namenode会确定那几个DataNode来完成客户端(Client)的请求。

三、secondary Namenode

它并不是Namenode的热备,相当于Namenode的助理。具体作用有:

1.辅助Namenode,分担其工作量,如定期合并Fsimage和Edits,并推送给Namenode;

2.如果Namenode突然出现问题,可以辅助Namenode回复。

四、Client

Client是客户端,具体作用有:

1.文件由Namenode负责记录文件块的信息,而文件的切分工作是由HDFS来完成。

2.和Namenode交互,获取文件的位置信息;

3.DataNode交互,当从Namenode处获得到文件的存储位置后就会和DataNode建立连接,完成文件的上传和读取;

4.client中会有一些命令来访问HDFS,如:对HDFS中文件的增删改查;

其实,HDFS中的这四种角色实际就是几个java进程,也就是相当于几个应用程序,通常Namenode、DataNode、secondaryNode是运行在linux系统中的进程,最后文件的存储还是需要物理磁盘完成,HDFS相当于对文件的管理,负责对文件备份、切分等内容。

关于大数据开发学习,Hadoop HDFS核心角色及作用,以上就为大家做了大致的介绍了。HDFS作为分布式文件系统来说,其在大数据技术生态当中的地位不必特意强调,学习阶段要掌握扎实。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。