Hadoop学习记录一

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

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集群能够高效、稳定地运行各种计算任务。

相关推荐
qwq!631 分钟前
虚幻5|按键触发学习
c++·笔记·学习·ue5·虚幻·虚幻引擎
依晴无旧42 分钟前
UnrealEngine学习(02):虚幻引擎编辑器界面详解
学习·游戏引擎·虚幻
LN花开富贵1 小时前
8050型号三极管,基极电流为15mA应使用多大电阻?如何选择合适的三极管?
笔记·单片机·嵌入式硬件·学习·三极管
smilejingwei7 小时前
列式存储的另一面
大数据·数据库·sql·性能优化·database·spl
晓北斗NorSnow8 小时前
政治经济学、法律经济学、行为经济学、宏观经济学、微观经济学等
大数据·人工智能
HKElec8 小时前
FreeRTOS学习笔记>信号量
笔记·学习
在无清风9 小时前
Elasticsearch(面试篇)
大数据·elasticsearch·面试
楚肽生物--多肽合成定制10 小时前
多肽固相合成--基本原理&流程
学习
残诗10 小时前
机器人蓝牙通信绕坑
android·c++·人工智能·学习·机器人
9毫米的幻想10 小时前
【C++】—— 内存管理
c语言·开发语言·jvm·c++·学习