Hadoop学习记录一

07-17 1551阅读

HDFS(Hadoop Distributed File System)是Hadoop项目的一部分,用于存储海量数据。HDFS设计为可以在廉价硬件上运行,同时提供高容错性。HDFS主要由三个关键角色组成:NameNode、DataNode和SecondaryNameNode。下面我用大白话来详细解释这些角色的功能和作用:

Hadoop学习记录一
(图片来源网络,侵删)

1. NameNode

NameNode 可以想象成图书馆里的图书管理员,它不存储书(数据),而是管理着图书馆的目录和书籍的位置信息。在HDFS中,NameNode负责管理文件系统的元数据,这包括文件和目录的层次结构、文件的权限信息、文件被分割成哪些块以及每个块存储在哪些DataNode上。当有用户想要读取或写入文件时,NameNode告诉用户文件的块在哪里,就像图书管理员告诉你书在哪个书架一样。

2. DataNode

DataNode 相当于图书馆的书架和书籍本身,它们负责存储和维护HDFS中的实际数据。每个DataNode定期向NameNode报告自己的健康状况和所拥有的数据块信息。当有写入请求时,DataNode会按照NameNode的指示存储数据块,并确保数据块的副本数符合设定,以增加数据的可靠性。当有读取请求时,DataNode提供数据块供用户读取。

3. SecondaryNameNode

SecondaryNameNode 不是另一个NameNode,更像是NameNode的助手或者说是备份助手。它并不存储元数据的实时备份,而是定期合并NameNode的fsimage(包含文件系统元数据)和edit log(包含最近的操作记录),减少NameNode重启时需要重放的日志量,从而加快NameNode的启动时间。SecondaryNameNode帮助NameNode进行日志的清理和合并,但并不是集群运行的必要组成部分,它的缺失不会导致集群不可用。

这三个角色共同协作,使得HDFS能够存储和管理大规模数据集,即使在部分节点失效的情况下也能保持数据的可用性和一致性。在Hadoop集群中,通常有一个NameNode,多个DataNode,以及一个SecondaryNameNode(或有时多个,用于更高的可用性)。这种架构设计使得HDFS能够在成本较低的硬件上构建出高可靠、可扩展的数据存储系统。

在Hadoop生态系统中,RM(ResourceManager)、NM(NodeManager)和JN(JobHistoryServer)这几个组件都属于Apache Hadoop YARN(Yet Another Resource Negotiator)框架的一部分。不过,JN(JobHistoryServer)在Hadoop 2.x之后的版本中,更多地与MapReduce应用历史记录服务相关联。

4. ResourceManager (RM)

ResourceManager 就像是一个“总管”,它负责整个Hadoop集群的资源分配工作。就像一个派对的组织者决定每个人应该坐在哪里一样,ResourceManager决定你的计算任务应该在哪里的机器上运行。它还会监督所有任务的运行情况,确保一切都按计划进行。


5.NodeManager (NM)

NodeManager 是每台计算机(节点)上的“助手”。它的主要工作是听ResourceManager的命令,准备和清理任务运行的环境,确保任务能够顺利开始和结束。就像是一个餐厅里的服务员,当有客人点餐时,服务员负责上菜和清理餐桌。


6.JobHistoryServer (JN)

JobHistoryServer 相当于一个“历史记录员”。它的工作是记录所有的计算任务是怎么运行的,结果如何,以及运行过程中发生了什么问题。这样,如果有人想查看过去的任务状态,或者分析为什么某些任务失败了,就可以通过JobHistoryServer找到答案。

总结一下,ResourceManager是指挥官,NodeManager是前线工人,而JobHistoryServer是记录历史的档案管理员。它们一起协作,确保Hadoop集群能够高效、稳定地运行各种计算任务。

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]