Hadoop 怎么委任和解除节点?

news2024/12/23 13:12:16

前言

本文隶属于专栏《大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见大数据技术体系


正文

在这里插入图片描述

Hadoop 集群的管理员经常需要向集群中添加节点,或从集群中移除节点。

例如,为了扩大存储容量,需要委任节点。

相反的,如果想要缩小集群规模,则需解除节点。

如果某些节点表现反常,例如故障率过高或性能过于低下,则需要解除该节点。

通常情况下,节点同时运行 DataNode 和 NodeManager,因而两者一般同时被委任或解除。


1.委任新节点

委任一个新节点非常简单。

  • 首先,配置 hdfs-site.xml 文件,指向 NameNode;
  • 其次,配置 yarn-site.xml 文件,指向 ResourceManager;
  • 最后,启动 DataNode 和 ResourceManager 守护进程。

然而,预先指定一些经过审核的节点以从中挑选新节点仍不失为一种好的方法。

随便允许一台机器以 DataNode 身份连接到 NameNode 是不安全的,因为该机器很可能会访问未授权的数据。

此外,这种机器并非真正的 DataNode, 不在集群的控制之下,随时可能停止,导致潜在的数据丟失。

由于错误配置的可能性,即使这些机器都在本机构的防火墙之内,这种做法的风险也很高。

因此所有工作集群上的 DataNode( 以及NodeManager)都应该被明确管理。

允许连接到 NameNode 的所有 DataNode 放在一个文件中,文件名称由 dfs.hosts 属性指定。

该文件放在 NameNode 的本地文件系统中,每行对应一个 DataNode 的网络地址(由 DataNode 报告——可以通过 NameNode 的网页查看)。

如果需要为一个 DataNode 指定多个网络地址,可将多个网络地址放在一行,由空格隔开。

类似的,可能连接到 ResourceManager 的各个 NodeManager 也在同一个文件中指定(该文件的名称由 yarn.resourcemanager.nodes.inclade-path 属性指定。
在通常情况下,由于集群中的节点同时运行 DataNode 和 NodeManager 守护进程,dfs.hostsyarn.resourcemanager.nodes.include-path 会同时指向一个文件,即include 文件。

向集群添加新节点的步骤如下

在这里插入图片描述

  1. 将新节点的网络地址添加到 include 文件中。
  2. 运行以下指令,将审核过的一系列 DataNode 集合更新至 NameNode 信息:
% hdfs dfsadmin -refreshNodes 
  1. 运行以下指令,将审核过的一系列 NodeManager信息更新至 ResourceManager:
% yarn rmadmin -refreshNodes
  1. 以新节点更新 slaves 文件。这样的话,Hadoop控制脚本会将新节点包括在未来操作之中。
  2. 启动新的 DataNode 和 NodeManager。
  3. 检查新的 DataNode 和 NodeManager是否都出现在网页界面中。

HDFS 不会自动将块从旧的 DataNode 移到新的 DataNode 以平衡集群。用户需要自行运行均衡器。

可以参考我的这篇博客——《一篇文章搞懂HDFS的数据负载均衡策略》


2.解除旧节点

HDFS 能够容忍 DataNode 故障,但这并不意味着允许随意终止 DataNode。

以三复本策略为例,如果同时关闭不同机架上的三个 DataNode, 则数据丢失的概率会非常高。

正确的方法是,用户将拟退出的若干 DataNode 告知 NameNode, Hadoop 系统就可在这些DataNode 停机之前将块复制到其他DataNode。

有了 NodeManager的支持,Hadoop 对故障的容忍度更高。

如果关闭一个正在运行 MapReduce 任务的 NodeManager,application master 会检测到故障, 并在其他节点上重新调度任务。

解除节点的过程由 exclude 文件控制。

对于HDFS 来说,文件由dfs.
hosts.exclude
属性设置;

对于 YARN 来说,文件由 yarn.resourcemanager.
nodes.exclude-path
属性设置。

这些文件列出若干未被允许连接到集群的节点。

通常,这两个属性指向同一个文件。

判断一个 NodeManager能否连接到 ResourceManager非常简单。

仅当 NodeManager出现在 exclude 文件且不出现在 exclude 文件中时,才能够连接到 ResourceManager。

注意,如果未指定 include 文件,或 exclude 文件为空,则意味着所有节点都包含在 exclude 文件中。

HDFS 的规则稍有不同。

如果一个 DataNode 同时出现在 include 和 exclude 文件中,则该节点可以连接,但是很快会被解除委任。

与 NodeManager类似,如果未指定 include 文件或 include 文件为空,都意味着包含所有节点。

从集群中移除节点的步骤如下

在这里插入图片描述

  1. 将待解除节点的网络地址添加到 exclude 文件中,不更新 include 文件。
  2. 执行以下指令,使用一组新的审核过的 DataNode 来更新 NameNode 设置:
% hdfs dfsadmin -refreshNodes 
  1. 使用一组新的审核过的 NodeManager来更新 ResourceManager设置:
% yarn rmadmin -refreshNodes
  1. 转到网页界面,查看待解除 dataNode 的管理状态是否已经变为“正在解除” (Decommission In Progress),因为此时相关的 DataNode 正在被解除过程之中。这些 DataNode 会把它们的块复制到其他 DataNode 中。
  2. 当所有 DataNode 的状态变为 “解除完毕” (Decommissioned)时,表明所有块都己经复制完毕。关闭已经解除的节点。
  3. 从 include 文件中移除这些节点,并运行以下命令:
% hdfs dfsadmin -refreshNodes 
% yarn rmadmin -refreshNodes
  1. 从slaves 文件中移除节点。

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

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

相关文章

Android Studio引用第三方库的方式

title: 大小端详解 date: 2023-06-06 21:01:24 comments: true #是否可评论 toc: true #是否显示文章目录 categories: #分类 - gradle - android studio tags: #标签 - gradle - android studio summary: android stduio 导入第三方库方式 Android Studio引用第三方库的方式 …

NCUTer 我的创作纪念日(2023-06-06)

前言 大家好,我是NCUTer,今天收到私信,突然发现,我来到CSDN已经2年多了,距离发布第一篇博客已经2年整了。正式规划性的写博客,是在2021年6月底开始的,当时啥也不懂,不知道该怎么去做…

10万字XX市开发区智慧综治中心平台建设一期工程招标文件word

(一)智慧综治中心信息化平台 需基于“一个平台,多级用户”的原则,利用移动互联网、物联网、大数据、人工智能和地理信息等新一代信息技术,整合辖区多方社会治理数据,建立一个覆盖全区三级综治中心用户的统一…

2个原因解答:为什么网络安全缺口大,招聘却很少?

2023年我国网络空间安全人才数量缺口超过了140万,就业人数却只有10多万,缺口高达了93%。这里就有人会问了: 1、网络安全行业为什么这么缺人? 2、明明人才那么稀缺,为什么招聘时招安全的人员却没有那么多呢?…

【博客639】Life of a label in prometheus

prometheus中label的生命周期 前言 Prometheus labels allow you to model your application deployment in the manner best suited to your organisation. As directly supporting every potential configurations would be impossible, we offer relabelling to give you t…

Paxos算法

组成 Paxos算法有proposer, accepter, leaner三种角色节点,其中proposer有点像客户端,而accepter是存储节点。 持久化需要 basic-Paxos是二阶段进行的 第一阶段 propose发起prepare请求,带上rnd accpeter如果发现rnd,比如自己…

图论在数学建模中的应用及MATLAB实现

2023年9月数学建模国赛期间提供ABCDE题思路加Matlab代码,专栏链接(赛前一个月恢复源码199,欢迎大家订阅):http://t.csdn.cn/Um9Zd 目录 图论基本概念 图论原理 1. 最短路径问题 2. 最小生成树问题 MATLAB实现 1. 创建图 2. 最短路径算法 3. 最小生成树算法 数学建模案…

第一章 小程序入门

文章目录 前言一、❎ 环境搭建1、AppID2、设置外观和代理3、小程序项目构成小程序的基本结构小程序的页面组成部分 4、JSON 配置文件JSON 配置文件的作用app.json 配置文件project.config.json 配置文件sitemap.json 配置文件页面 .json 配置文件 5、WXML 模板什么是 wxmlwxml …

Java --- springboot3之web静态资源配置

目录 一、静态资源规则 二、欢迎页规则 三、favicon.ioc规则 四、HTTP缓存机制 五、自定义静态资源规则 5.1、配置方式 5.2、代码方式 一、静态资源规则 Override public void addResourceHandlers(ResourceHandlerRegistry registry) {if (!this.resourceProperties.is…

UA-ModelCompiler 的编译和使用

UA-ModelCompiler 是OPCFoundation的开源程序,它实现将NodeSet 的xml 文件编译成C# 的类,以便结合到UA Server 中。同时,它也能够将一种简便的模型xml 文档(ModelDesgin.xml) 转换成为NodeSet2.xml 。 最近的项目中要使用UA-ModelCompiler &…

【C++】C++ 右值 相关常见问题

【C】C 右值 相关常见问题 文章目录 【C】C 右值 相关常见问题1.介绍一下左值引用和右值引用1.1左值和左值引用1.2右值和右值引用 2.左值引用与右值引用比较3.左值引用的使用场景4. move语义5.完美转发 C 11 关于右值相关概念: 在 C 中,右值是指仅作为表…

【3DsMAX】从零开始建房(3)

目录 步骤 1. 统一材质 2. 制作椅子 3. 制作货物盒 步骤 1. 统一材质 选中所有的模型,按下M键打开材质编辑器 选择精简材质编辑器 选择64示例窗 可以随便选中一个材质球,然后将材质指定给选定对象 然后可以修改线框颜色为黑色 2. 制作椅子 激活…

【力扣周赛】第348场周赛

【力扣周赛】第348场周赛 2716. 最小化字符串长度题目描述解题思路 2717. 半有序排列题目描述解题思路 2718. 查询后矩阵的和题目描述解题思路 2719. 统计整数数目题目描述解题思路 2716. 最小化字符串长度 题目描述 描述:给你一个下标从 0 开始的字符串 s &#…

30个接口自动化测试面试题,看过的已经在上班了

1. 什么是接口自动化测试? 答:接口自动化测试是指使用自动化工具对接口进行测试,验证接口的正确性、稳定性和性能等方面的指标。2. 为什么要进行接口自动化测试? 答:接口自动化测试可以提高测试效率,减少人…

STM32 实现简单定时任务调度器,动态创建任务,两种思路实现跑马灯

代码实现和硬件没关系,所以并不限于STM32,Arduino 之类的其他地方也能用,只要有一个能获取时间的函数就行,或者说,只要有一个会随着时间自动增加的变量就行,时间单位无所谓,所以确实想的话&…

地图实火!断货加印,限时折扣抢购通道开启

(关注公众号点击图片三折购买《社交泛娱乐出海作战地图》) 实火! 融云自制《社交泛娱乐出海作战地图》 “WICC 泛娱乐出海嘉年华”最热单品 关注【融云全球互联网通信云】了解更多 《出海作战地图》线下首发立刻引爆现场,“如…

分布式数据库-事务一致性

version: v-2023060601 author: 路__ 一、什么是“强一致性” 分布式数据库的“强一致性”应该包含两个方面:serializability(串行) and linearizability(线性一致),上述图为“Highly Available Transact…

Tomcat优化与动静分离

Tomcat优化 一、Tomcat配置文件参数优化二、负载均衡,动静分离七层代理配置四层代理配置 Tomcat 默认安装下的缺省配置并不适合生产环境,它会频繁出现假死现象需要重启,只有通过不断压测优化才能让它最高效率稳定的运行。优化主要包括三方面&…

二、tienchin健身系统技术点复现-注解限流

二、tienchin健身系统技术点复现-注解限流 在上一章节写到编写 lua 脚本。基本的配置类都已经创建,下面创建一个 请求获取IP的工具类和全局异常处理即可。 1、创建工具类IpUtils package com.yangjiapo.rate_limiter.utils;import javax.servlet.http.HttpServlet…

Spark RDD实现分组排行榜

文章目录 一,提出任务二,实现思路三,准备工作1、在本地创建成绩文件2、将成绩文件上传到HDFS上指定目录 四,完成任务1、在Spark Shell里完成任务(1)读取成绩文件得到RDD(2)利用映射算…