(十三)大数据实战——hadoop集群之YARN高可用实现自动故障转移

news/2024/2/27 22:26:02

前言

本节内容是关于hadoop集群下yarn服务的高可用搭建,以及其发生故障转移的处理,同样需要依赖zookeeper集群的实现,实现该集群搭建时,我们要预先保证zookeeper集群是启动状态。yarn的高可用同样依赖zookeeper的临时节点及监控,实现服务的故障转移。其ResourceManager的节点任务同样存储于zookeeper集群中,实现数据的共享。

正文

  • 集群规划
YARN高可用
hadoop101hadoop102hadoop103
ResourceManagerResourceManagerResourceManager
NodeManagerNodeManagerNodeManager
ZookeeperZookeeperZookeeper

  •  修改yarn服务配置文件yarn-site.xml

- yarn-site.xml

<?xml version="1.0"?>
<!--Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License. See accompanying LICENSE file.
-->
<configuration><!-- 指定 MR 走 shuffle --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 启用 resourcemanager ha --><property><name>yarn.resourcemanager.ha.enabled</name><value>true</value></property><!-- 声明三台 resourcemanager 的地址 --><property><name>yarn.resourcemanager.cluster-id</name><value>cluster-yarn</value></property><!--指定 resourcemanager 的逻辑列表--><property><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2,rm3</value></property><!-- ========== rm1 的配置 ========== --><!-- 指定 rm1 的主机名 --><property><name>yarn.resourcemanager.hostname.rm1</name><value>hadoop101</value></property><!-- 指定 rm1 的 web 端地址 --><property><name>yarn.resourcemanager.webapp.address.rm1</name><value>hadoop101:8088</value></property><!-- 指定 rm1 的内部通信地址 --><property><name>yarn.resourcemanager.address.rm1</name><value>hadoop101:8032</value></property><!-- 指定 AM 向 rm1 申请资源的地址 --><property><name>yarn.resourcemanager.scheduler.address.rm1</name><value>hadoop101:8030</value></property><!-- 指定供 NM 连接的地址 --><property><name>yarn.resourcemanager.resource-tracker.address.rm1</name><value>hadoop101:8031</value></property><!-- ========== rm2 的配置 ========== --><!-- 指定 rm2 的主机名 --><property><name>yarn.resourcemanager.hostname.rm2</name><value>hadoop102</value></property><property><name>yarn.resourcemanager.webapp.address.rm2</name><value>hadoop102:8088</value></property><property><name>yarn.resourcemanager.address.rm2</name><value>hadoop102:8032</value></property><property><name>yarn.resourcemanager.scheduler.address.rm2</name><value>hadoop102:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address.rm2</name><value>hadoop102:8031</value></property><!-- ========== rm3 的配置 ========== --><!-- 指定 rm1 的主机名 --><property><name>yarn.resourcemanager.hostname.rm3</name><value>hadoop103</value></property><!-- 指定 rm1 的 web 端地址 --><property><name>yarn.resourcemanager.webapp.address.rm3</name><value>hadoop103:8088</value></property><!-- 指定 rm1 的内部通信地址 --><property><name>yarn.resourcemanager.address.rm3</name><value>hadoop103:8032</value></property><!-- 指定 AM 向 rm1 申请资源的地址 --><property><name>yarn.resourcemanager.scheduler.address.rm3</name><value>hadoop103:8030</value></property><!-- 指定供 NM 连接的地址 --><property><name>yarn.resourcemanager.resource-tracker.address.rm3</name><value>hadoop103:8031</value></property><!-- 指定 zookeeper 集群的地址 --><property><name>yarn.resourcemanager.zk-address</name><value>hadoop101:2181,hadoop102:2181,hadoop103:2181</value></property><!-- 启用自动恢复 --><property><name>yarn.resourcemanager.recovery.enabled</name><value>true</value></property><!-- 指定 resourcemanager 的状态信息存储在 zookeeper 集群 --><property><name>yarn.resourcemanager.store.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value></property><!-- 环境变量的继承 --><property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value></property>
</configuration>

  • 同步配置文件yarn-site.xml 

- 命令:hsync yarn-site.xml

  • 启动yarn集群服务

 -命令:start-yarn.sh

  •  访问yarn集群服务

-访问yarn集群服务地址查看yarn服务状态

 - 通过命令查看

  • yarn服务故障转移

- 将hadoop101节点下线,查看ResourceManager的节点切换

- hadoop102切换为了主节点

结语

关于hadoop集群之YARN高可用实现自动故障转移的内容到这里就结束了,我们下期见。。。。。。


http://www.ppmy.cn/news/1018502.html

相关文章

手把手写教学C#写一个串口接收助手

C#上位机 文章目录 C#上位机[TOC](文章目录) C#一个简单串口助手创建工程&#xff1a;一、控件的设置1.显示TextBOX2.选项框comboBOX3.标签label4.按键button 二、组件的设置1.添加定时器time组件2.添加串口组件serialPort 三、代码部分总结 C#一个简单串口助手 实现简单的串口…

流量分析日志查看

一流量分析 buuctf wireshark 从题目出发&#xff0c;既然是上传登录信息&#xff0c;就直接过滤post请求&#xff0c;即搜索 http.request.methodPOST&#xff0c;因为上传用户登录信息使用的一定是http里的post方法 模式过滤 http.request.method “GET” http.request.…

BM5 合并k个已排序的链表 javascript

描述 合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。 数据范围&#xff1a; 示例1 输入&#xff1a; [{1,2,3},{4,5,6,7}] 返回值&#xff1a; {1,2,3,4,5,6,7}示例2 输入&#xff1a; [{1,2},{1,4,5},{6}] 返回值&#xff1a; {1,1,2,4,5,6}解题思路 利用两个…

Nacos集群部署报错No DataSource Set

&#x1f986;博主介绍&#xff1a;小黄鸭技术 &#x1f308;擅长领域&#xff1a;Java、实用工具、运维 &#x1f440; 系列专栏&#xff1a;&#x1f4e2;开发工具 Java之路 八股文之路 &#x1f4e7;如果文章写作时有错误的地方&#xff0c;请各位大佬指正&#xff0c;一起进…

LT8711UXD 是一款高性能双通道 Type-C/DP1.4 至 HDMI2.0 转换器

LT8711UXD 1.描述 LT8711UXD是一款高性能的双车道TypeC/DP1.4到HDMI2.0转换器&#xff0c;设计用于将USB Type-C源或DP1.4源连接到HDMI2.0接收器。LT8711UXD集成了一个DP1.4兼容的接收机&#xff0c;和一个HDMI2.0兼容的发射机。此外&#xff0c;还包括两个CC控制器&#xff0…

向量数据库介绍

1.什么是向量数据 向量数据库是一种专门用于存储和检索向量数据的数据库。它不同于传统的关系型数据库&#xff0c;而是基于向量相似度匹配的方式来实现高效的数据查询和分析。 向量数据库的应用场景非常广泛&#xff0c;包括但不限于以下几个方面&#xff1a; 图片、音频和视频…

idea中提示Unsupported characters for the charset ‘ISO-8859-1‘

application.properties中文注释拉黄线 &#xff0c;提示Unsupported characters for the charset ISO-8859-1 解决办法&#xff1a; 注意&#xff1a; 改完之后之前输入的中文就变成“ &#xff1f;&#xff1f;&#xff1f;”了&#xff0c;建议备份一下 1、打开setti…

lc2536.子矩阵元素加1

暴力解法&#xff1a;直接按照题目所示在矩阵的相应位置加一 时间复杂度&#xff1a;O(n2 * queries.length) 空间复杂度&#xff1a;O(1) 二维差分&#xff1a;创建二维差分数组&#xff0c;通过对差分数组的修改来影响原来的数组&#xff0c;最后还原 时间复杂度&#x…

如何使用 AT+WEBSERVER 指令实现自定义的 Webserver html 网页配网

开启 AT 固件中的 Webserver 指令和 FS 指令支持 乐鑫官网发布的默认通用 AT 固件不支持 webserver 配网功能&#xff0c; 需要用户自己搭建 esp-at 环境&#xff0c;并在 sdkconfig 中开启 webserver AT 指令 和 FS 指令的支持&#xff0c; 如下图所示&#xff1a; 测试 AT 固…

guava-retry使用笔记

guava-retry使用笔记 xml依赖 <dependency><groupId>com.github.rholder</groupId><artifactId>guava-retrying</artifactId><version>2.0.0</version> </dependency>使用案例 重试3次&#xff0c;每次间隔3秒 /*** 重试…

代码随想录day01

数组理论基础 ● 思维不难&#xff0c;主要是考察对代码的掌控能力 ● 内存中的存储方式&#xff1a;存放在连续内存空间上的相同类型数据的集合 ● 数组可以通过下标索引获取到下标对应的数据 ● 数组下标从0开始 ● 因为内存空间地址连续&#xff0c;因此删除或增加元素的时…

基于ant-design的a-modal自定义vue拖拽指令

写一个dragDialog.js 在main.js中引入 import ‘./core/directives/dragDialog.js’ // 让 dialog 支持鼠标拖动 import Vue from vueVue.directive(DragDialog, {update: function (el, binding, vnode) {if (!binding.value || !binding.value.reset) returnconst dialog e…

VR全景的盈利模式你知道吗?VR全景能用在哪些领域?

引言&#xff1a; 随着科技的迅猛发展&#xff0c;虚拟现实技术已经逐渐走进我们的生活。这项令人惊叹的技术让我们能够穿越时间与空间的限制&#xff0c;重新定义人们与世界互动的方式。 一&#xff0e;什么是VR全景&#xff1f; VR全景&#xff0c;是一种通过虚拟现实技术&…

并发——sleep() 方法和 wait() 方法区别和共同点?

两者最主要的区别在于&#xff1a;sleep() 方法没有释放锁&#xff0c;而 wait() 方法释放了锁 。两者都可以暂停线程的执行。wait() 通常被用于线程间交互/通信&#xff0c;sleep() 通常被用于暂停执行。wait() 方法被调用后&#xff0c;线程不会自动苏醒&#xff0c;需要别的…

深入探索Python元组常用函数及实例应用

Python作为一种功能强大且易于学习的编程语言&#xff0c;提供了多种数据结构来处理不同类型的数据。其中&#xff0c;元组&#xff08;Tuple&#xff09;是一种不可变的序列类型&#xff0c;具有多种常用函数&#xff0c;本篇博客将深入介绍元组的常用函数&#xff0c;并通过实…

2023河南萌新联赛第(五)场:郑州轻工业大学 --亚托莉 -我挚爱的时光-

题目描述 亚托莉&#xff0c;-我挚爱的时光- 亚托莉自身机器可能有出了一点小故障&#xff0c;希望你能帮助她解决这个问题&#xff5e; 亚托莉内部的操作系统的是 Linux 操作系统&#xff0c;不同于 Windows 操作系统。在大多数情况下&#xff0c; Linux 操作系统一般是通过…

4 指针与结构体:指针在结构体操作中的灵活应用

推荐最近在工作学习用的一款好用的智能助手AIRight 网址是www.airight.fun。 引言 在数据结构和算法中&#xff0c;结构体是一种用户自定义的数据类型&#xff0c;它可以包含多个不同类型的成员变量。指针是编程中常用的工具&#xff0c;用于存储变量地址。结合指针和结构体的…

成功解决Linux下中文乱码问题,CentOS7设置系统字符编码

在linux中&#xff0c;可以使用以下命令查看当前系统的字符编码&#xff1a; echo $LANG 如果不是UTF-8&#xff0c;就会出现中文乱码现象! 解决办法&#xff1a;设置字符编码环境变量为utf-8 1. 打开 ~/.bashrc 或 ~/.bash_profile 文件 vi ~/.bashrc 或 vi ~/.bash_prof…

Linux小型操作系统项目,《操作系统真象还原》第三章——完善MBR

前引 上一章我们完成了MBR的雏形编写&#xff0c;但是只打印了几个字符&#xff0c;这一章我们才要真正地去完成MBR的功能。 在完成MBR的功能之前我们要先了解一些知识&#xff0c;首先介绍什么是实模式。 书上的内容实在繁杂&#xff0c;简单地说&#xff0c;实模式没有虚拟和…

Netty:标记和重置ByteBuf的readerIndex

说明 io.netty.buffer.ByteBuf有标记和重置readerIndex的函数&#xff1a; markReaderIndex()&#xff1a;标记ByteBuf当前的readerIndex。resetReaderIndex()&#xff1a;重置ByteBuf当前的readerIndex到上次标记的readerIndex。 示例 package com.thb;import io.netty.bu…
最新文章