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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/45783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《绝区零》是一款什么类型的游戏,Mac电脑怎么玩《绝区零》苹果电脑玩游戏怎么样

米哈游的《绝区零》最近在网上爆火呀,不过很多人都想知道mac电脑能不能玩《绝区零》,今天麦麦就给大家介绍一下《绝区零》是一款什么样的游戏,Mac电脑怎么玩《绝区零》。 一、《绝区零》是一款什么样的游戏 《绝区零》是由上海米哈游自主研发…

Web前端-Web开发HTML基础1-input

一. 基础 1. 写一个输入框代码,类型为密码; 2. 写一个输入框代码,类型为密码; 3. 写一个输入框代码,类型为密码,名称为"password"; 4. 写一个输入框代码,类型为密码&#…

ES快速开发,ElasticsearchRestTemplate基本使用以及ELK快速部署

最近博主有一些elasticsearch的工作,所以更新的慢了些,现在就教大家快速入门,并对一些基本的查询、更新需求做一下示例,废话不多说开始: 1. ES快速上手 es下载:[https://elasticsearch.cn/download/]()这…

Spring Boot集成Activity7实现简单的审批流

由于客户对于系统里的一些新增数据,例如照片墙、照片等,想实现上级逐级审批通过才可见的效果,于是引入了Acitivity7工作流技术来实现,本文是对实现过程的介绍讲解,由于我是中途交接前同事的这块需求,所以具…

uniapp开发钉钉小程序流程

下载开发工具 1、小程序开发工具 登录钉钉开发平台,根据自己的需求下载合适的版本,我这里下载的是Windows (64位)版本 小程序开发工具 - 钉钉开放平台 2、HBuilder X HBuilderX-高效极客技巧 新建项目及相关配置 新建项目 …

Llama - Prompting

本文翻译整理自:Prompting https://llama.meta.com/docs/how-to-guides/prompting/ 文章目录 制作有效的提示明确说明风格化格式化限制 提示使用 Zero- and Few-Shot 学习Zero-Shot PromptingFew-Shot Prompting 基于角色的提示思维链技术Self-Consistency检索-增强…

单臂路由组网实验,单臂路由的定义、适用情况、作用

一、定义 单臂路由是指通过在路由器的一个接口上配置许多子接口,从而实现原来相互隔离的不同VLAN之间的互通。 子接口:把路由器上的实际的物理接口划分为多个逻辑上的接口,这些被划分的逻辑接口就是子接口。 二、适用情况 用在没有三层交换机,却要实现不同VLAN之间的互…

Github07-16 Python开源项目日报 Top10

根据Github Trendings的统计,今日(2024-07-16统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10C++项目1AutoGPT: 人工智能革命的先锋 创建周期:486 天开发语言:Python协议类型:MIT LicenseStar数量:164105 个Fork数量:435…

axios 下载大文件时,展示下载进度的组件封装——js技能提升

之前面试的时候,有遇到一个问题:就是下载大文件的时候,如何得知下载进度,当时的回复是没有处理过。。。 现在想到了。axios中本身就有一个下载进度的方法,可以直接拿来使用。 下面记录一下处理步骤: 参考…

深度学习 | CNN 基本原理

目录 1 什么是 CNN2 输入层3 卷积层3.1 卷积操作3.2 Padding 零填充3.3 处理彩色图像 4 池化层4.1 池化操作4.2 池化的平移不变性 5 全连接层6 输出层 前言 这篇博客不够详细,因为没有介绍卷积操作的具体计算;但是它介绍了 CNN 各层次的功能…

golang AST语法树解析

1. 源码示例 package mainimport ("context" )// Foo 结构体 type Foo struct {i int }// Bar 接口 type Bar interface {Do(ctx context.Context) error }// main方法 func main() {a : 1 }2. Golang中的AST golang官方提供的几个包,可以帮助我们进行A…

[杂谈] 关于 Mac 电脑使用 Logitech 鼠标导致 Vscode 侧键无法进行代码前进、回退的问题

我个人使用的是一台 14 寸的 Mac_Apple_M1,外接键盘显示器罗技的 MX Master 3 for Mac 的鼠标。 之前一直使用的 GoLand 开发,查看代码时进行代码跳转就很方便,滚轮键 进入函数方法,鼠标侧键进行前进、后退。看代码完全可以右手单…

【大模型入门】LLM-AI大模型介绍

大语言模型 (LLM) 背景 🍹大语言模型 (Large Language Model) 是一种人工智能模型, 它们通常包含数千亿甚至更多的参数,并在大规模数据集上进行训练。大语言模型可以处理多种自然语言任务,如文本分类、问答、翻译、对话等等。 自然语言模型…

qt explicit 啥意思

explicit 在 Qt 和 C 中是一个关键字,主要用于修饰类的构造函数。其含义和用法可以归纳为以下几点: 意义: explicit 英文直译为“明确的”、“显式的”。在 C 中,当一个构造函数只接受一个参数时,它可能会被编译器用于…

【Nail it】ROS1 ROS2 通信(ros2/ros1_bridge)

情况说明:目标是实现ros2容器和ros1主机的通信,可以起一个ros1容器作为桥梁(若是在一个主机同时包含ros1&ros2,配置更加方便). 1.起一个 noetic 的容器 docker run -it --network host --name my_bridge ros:noe…

Java中的成员内部类

Java中的成员内部类(也称为非静态内部类)是定义在另一个类(外部类)内部的类。 这种内部类与它的外部类之间有着紧密的联系,主要体现在几个方面:它可以访问外部类的所有成员(包括私有成员&#…

C++小白Python选手2小时入门C++

学习链接:C入门/2小时从C到C快速入门(2018,C教程) C在C语言的基础上增加了面向对象和通用算法语言特征。 C头文件不必是.h结尾,C头文件举例:cmath、cstdio注释:单行//、多行/**/为了防止名字冲…

MQ基础1

对应B站视频: MQ入门-01.MQ课程介绍_哔哩哔哩_bilibili 微服务一旦拆分,必然涉及到服务之间的相互调用,目前我们服务之间调用采用的都是基于OpenFeign的调用。这种调用中,调用者发起请求后需要等待服务提供者执行业务返回结果后…

【JavaScript脚本宇宙】强大的自然语言处理:六款JavaScript库详解

从语义到实体:深入了解JavaScript自然语言处理库 前言 随着人工智能和自然语言处理技术的飞速发展,JavaScript在这一领域也有了越来越多的应用。本文将介绍几个优秀的JavaScript库,它们专注于处理英语文本,并提供了丰富的功能和…

求立方体面积体积以及判断(c++)

代码&#xff1a; #include<iostream> using namespace std;class Cube { public:void setL(int l){m_L l;}int getL(){return m_L;}void setW(int w){m_W w;}int getW(){return m_W;}void setH(int h){m_H h;}int getH(){return m_H;}int calculateS(){return 2 * (…