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

相关推荐
東隅已逝,桑榆非晚2 分钟前
算法2. 双指针法-复写零
c++·笔记·学习·算法
Star(up up up)14 分钟前
Docker系列---Docker容器基本命令(新手小白保姆级实操教程)
运维·学习·程序人生·青少年编程·docker·容器·dubbo
演艺大赏16 分钟前
一条 SQL 慢了两周,最后查出两个根因:一个是 TCP 内存,一个是 4G 的 Metastore
大数据
无心水1 小时前
22、数学与经济管理(运筹学) 核心考点与学习笔记
人工智能·笔记·学习·架构师·软考·软考架构师·软考系统架构师
小弥儿1 小时前
38K星的开源项目 t3code:给 Claude Code 和 Codex 装一个手机遥控器
学习·智能手机·开源·github
茶海棠2 小时前
Hadoop+zookeeper+HBase+Kafka集群搭建全流程
hadoop·zookeeper·kafka·hbase
xxwl5852 小时前
Nginx 基础学习笔记
笔记·学习·nginx
Star(up up up)2 小时前
Docker系列---Dockerfile镜像文件
人工智能·经验分享·学习·程序人生·docker·容器·github
也非非也2 小时前
iPhone 中国区 AI 落地:Apple 与阿里千问合作的技术观察
大数据·人工智能·ios·agent·iphone·智子
CC数分2 小时前
统计学基础|先把问题问对:数据分析的六大类型
大数据·人工智能·算法