当前位置: 首页 > news >正文

大数据平台迁移后yarn连接zookeeper 异常分析

大数据平台迁移后yarn连接zookeeper 异常分析

XX保险HDP大数据平台机房迁移异常分析。
异常现象:

  1. 机房迁移后大部分组件都能正常启动
  2. Yarn 启动后8088 8042等端口无法访问
  3. Hive spark 作业提交到yarn会出现卡死。
    【备注】虽然迁移,但IP不变。

1. Yarn连接zookeeper 日志报错

问题分析:

  1. yarn 6000毫秒内无法活动连接到活跃的zookeeper服务
  2. hdfs hive kafka等组件正常启动

2. Zookeeper 客户端查看zookeeper正常

问题分析:
1.zookeeper数据存在并正常显示。

3. Zookeeper 中出现错误日志

2023-09-09 11:36:30,009 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@222] - Accepted socket connection from /xx.xx.xx.xx:570702023-09-09 11:36:30,009 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@908] - Processing ruok command from /xx.xx.xx.xx:570702023-09-09 11:36:30,010 - INFO [Thread-178:NIOServerCnxn@1056] - Closed socket connection for client /xx.xx.xx.xx:57070 (no session established for client)2023-09-09 11:37:29,900 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@222] - Accepted socket connection from /xx.xx.xx.xx:591142023-09-09 11:37:29,901 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@908] - Processing ruok command from /xx.xx.xx.xx:591142023-09-09 11:37:29,902 - INFO [Thread-179:NIOServerCnxn@1056] - Closed socket connection for client /xx.xx.xx.xx:59114 (no session established for client)2023-09-09 11:38:29,954 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@222] - Accepted socket connection from /xx.xx.xx.xx:329942023-09-09 11:38:29,955 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@908] - Processing ruok command from /xx.xx.xx.xx:329942023-09-09 11:38:29,956 - INFO [Thread-180:NIOServerCnxn@1056] - Closed socket connection for client /xx.xx.xx.xx:32994 (no session established for client)2023-09-09 11:39:30,008 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@222] - Accepted socket connection from /xx.xx.xx.xx:350902023-09-09 11:39:30,008 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@908] - Processing ruok command from /xx.xx.xx.xx:350902023-09-09 11:39:30,009 - INFO [Thread-181:NIOServerCnxn@1056] - Closed socket connection for client /xx.xx.xx.xx:35090 (no session established for client)

4. 重装yarn服务,仍然报错

由于大数据集群众多组件都会连接zookeeper集群并且数据存放其中,我们选择重装yarn 组件 报错没有任何变化(强制卸载

  • yarn:
rpm -e hadoop_3_1_5_0_152-yarn-3.1.1.3.1.5.0-152.x86_64 
hadoop_3_1_5_0_152-yarn-resourcemanager-3.1.1.3.1.5.0-152.x86_64 –nodeps 
手动安装yarn: 
yum install -y hadoop_3_1_5_0_152-yarn hadoop_3_1_5_0_152-yarn-resourcemanager

其中hive spark tez Zeppelin 对yarn有依赖,可先在管理页面进行增删操作即可)

5. 手动删除zookeeper 中存放yarn集群数据后集群没有自动创建新的选举信息数据,手动创建集群无法识别

6. 分析

分析:zookeeper中缺少正确yarn集群数据信息,手动创建失效,由此可以确认zookeeper data数据出现异常。导致的可能性原因:①可能是在迁移过程中,yarn的组件ResourceManager 和 NodeManager的相关集群信息写入到zk未来得及持久化。②迁移时候服务未完全停止,导致yarn的核心组件RM和NM在zk上的数据文件受损。③新集群环境下,yarn与zookeeper的配置可能有不适配的情况。④网络异常导致的。等等

1)问题分析一

YARN 包含两个主要组件:ResourceManager 和 NodeManager。

在 YARN 中,ResourceManager 负责管理整个集群的资源分配和任务调度,NodeManager 则运行在各个工作节点上,负责启动、监视和停止应用程序的任务。

  • 当 ResourceManager 和 NodeManager 启动时,它们会向 ZooKeeper 写入以下信息:
  1. ResourceManager:ResourceManager 启动时,会向 ZooKeeper 写入有关活跃和非活跃 NM(NodeManager)节点列表、当前活跃集群管理员的信息以及正在处理的应用程序的列表信息。这些信息具体包括:为每个NM分配的容器数量、当前可用资源池的状态以及集群的全局配置。

  2. NodeManager:NodeManager 启动时,会向 ZooKeeper 写入自己的身份信息和集群中其他的 NM 节点信息。它还会向 ZooKeeper 注册自己的地址、端口、该节点的状态等信息。此外,NodeManager 定期向 ZooKeeper 发送心跳消息来更新其状态信息,以便 ResourceManager 可以根据需要重新分配集群中的资源。

​ 通过向 ZooKeeper 写入这些信息,ResourceManager 和 NodeManager 可以协调和管理集群中的各个组件,实现高可用性、容错性以及资源的正常调度。同时,这些信息也可以帮助管理员和开发人员更好地监视和管理 YARN 集群。

请注意,具体写入 ZooKeeper 的信息和路径可能会根据 YARN 的版本和配置有所不同。要了解更详细的信息,建议查阅您使用的 YARN 版本的官方文档和相关配置文件。

YARN 中 ResourceManager 和 NodeManager 向 ZooKeeper 写入的信息通常是存储在持久化节点上的,而不是普通节点。

持久化节点是指在 ZooKeeper 上创建的节点,其数据将被持久地保存在磁盘上,即使在节点断开连接或重启后也不会丢失。这种类型的节点适用于存储较为重要且需要长期保存的数据。

对于 YARN 中的信息,如 ResourceManager 的活跃和非活跃 NM 节点列表、当前活跃集群管理员的信息以及正在处理的应用程序列表等,这些数据通常被写入到持久化节点中。这样做的目的是确保即使在出现故障或重启后,这些关键信息仍然可以被恢复和使用。

相反,普通节点是指在 ZooKeeper 上创建的临时节点,其数据在节点断开连接后会被自动删除。普通节点适合存储临时性的或与会话相关的数据。

总的来说,YARN 中的关键信息通常会被写入到持久化节点中,以确保数据的持久性和可靠性。

2)问题分析二

​ 如果在机房搬迁过程中只是更改了物理位置,而 IP 地址保持不变,一般情况下对于 YARN 和 ZooKeeper 的影响是很小的。这是因为 YARN 和 ZooKeeper 主要依赖的是 IP 地址来进行通信和交互,并且它们的配置通常是基于 IP 地址进行设置的。

只要确保在机房搬迁后网络连接和路由设置正确,并且将相同的 IP 地址分配给 YARN 和 ZooKeeper 组件,它们应该能够正常工作。这意味着 YARN ResourceManager、NodeManager 以及 ZooKeeper 的集群节点都需要能够通过新的网络环境找到彼此的 IP 地址。

但是需要注意的是,在搬迁过程中可能会发生其他因素导致的问题。例如,搬迁过程中出现的硬件故障、网络配置错误、防火墙问题等都可能会对 YARN 和 ZooKeeper 的正常运行产生影响。因此,在机房搬迁后,仍然需要进行仔细的测试和验证,确保所有组件能够正常通信和工作。

总体而言,如果 IP 地址保持不变,并且在机房搬迁后适当地调整网络配置和路由信息,YARN 和 ZooKeeper 应该能够恢复正常运行。如有需要,请在搬迁过程中密切关注相关日志和错误消息,以及确保所有的配置与新的环境相匹配。

7. 解决方案:

  1. 备份zookeeper后删除zookeeper 中data数据文件version-2 ,重启后重新接入大数据集群恢复正常!

结论:由于本次机房迁移过程中出现数据文件异常所致。

相关文章:

大数据平台迁移后yarn连接zookeeper 异常分析

大数据平台迁移后yarn连接zookeeper 异常分析 XX保险HDP大数据平台机房迁移异常分析。 异常现象: 机房迁移后大部分组件都能正常启动Yarn 启动后8088 8042等端口无法访问Hive spark 作业提交到yarn会出现卡死。 【备注】虽然迁移,但IP不变。 1. Yarn连…...

Ubuntu Nginx 配置 SSL 证书

首先需要在 Ubuntu 中安装 Nginx 服务, 打开终端执行以下命令: $ sudo apt update $ sudo apt install nginx -y然后启动 Nginx 服务并设置为开机时自动启动, 执行以下命令: $ sudo systemctl start nginx $ sudo systemctl enable nginx最后再验证一下 Nginx 服务的当前状态…...

将本地前端工程中的npm依赖上传到Nexus

【问题背景】 用Nexus搭建了内网的依赖仓库,需要将前端工程中node_modules中的依赖上传到Nexus上,但是node_modules中的依赖已经是解压后的状态,如果直接机械地将其简单地打包上传到Nexus,那么无法通过npm install下载使用。故有…...

软考高级架构师下篇-16通信系统架构设计理论与实践

目录 1. 引言2. 通信系统网络架构3. 网络构建关键技术4. 网络构建5. 前文回顾1. 引言 此章节主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本节知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中…...

国庆中秋特辑(二)浪漫祝福方式 使用生成对抗网络(GAN)生成具有节日氛围的画作

要用人工智能技术来庆祝国庆中秋,我们可以使用生成对抗网络(GAN)生成具有节日氛围的画作。这里将使用深度学习框架 TensorFlow 和 Keras 来实现。 一、生成对抗网络(GAN) 生成对抗网络(GANs,…...

stm32 串口发送和接收

串口发送 #include "stm32f10x.h" // Device header #include <stdio.h> #include <stdarg.h>//初始化串口 void Serial_Init() {//开启时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Pe…...

Vite + Vue3 实现前端项目工程化

通过官方脚手架初始化项目 第一种方式&#xff0c;这是使用vite命令创建&#xff0c;这种方式除了可以创建vue项目&#xff0c;还可以创建其他类型的项目&#xff0c;比如react项目 npm init vitelatest 第二种方式&#xff0c;这种方式是vite专门为vue做的配置&#xff0c;…...

Java动态代理Aop的好处

1. 预备知识-动态代理 1.1 什么是动态代理 动态代理利用Java的反射技术(Java Reflection)生成字节码&#xff0c;在运行时创建一个实现某些给定接口的新类&#xff08;也称"动态代理类"&#xff09;及其实例。 1.2 动态代理的优势 动态代理的优势是实现无侵入式的代…...

各种存储性能瓶颈如何分析与优化?

【摘要】本文结合实践剖析存储系统的架构及运行原理&#xff0c;深入分析各种存储性能瓶颈场景&#xff0c;并提出相应的性能优化手段&#xff0c;希望对同行有一定的借鉴和参考价值。 【作者】陈萍春&#xff0c;现就职于保险行业&#xff0c;拥有多年的系统、存储以及数据备…...

Android StateFlow初探

Android StateFlow初探 前言&#xff1a; 最近在学习StateFlow&#xff0c;感觉很好用&#xff0c;也很神奇&#xff0c;于是记录了一下. 1.简介&#xff1a; StateFlow 是一个状态容器式可观察数据流&#xff0c;可以向其收集器发出当前状态更新和新状态更新。还可通过其 …...

Docker Compose初使用

简介 Docker-Compose项目是Docker官方的开源项目&#xff0c;负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层&#xff0c;分别是 工程&#xff08;project&#xff09;&#xff0c;服务&#xff08;service&#xff09;以及容器&#xff08;cont…...

测试与FastAPI应用数据之间的差异

【squids.cn】 全网zui低价RDS&#xff0c;免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 当使用两个不同的异步会话来测试FastAPI应用程序与数据库的连接时&#xff0c;可能会出现以下错误&#xff1a; 在测试中&#xff0c;在数据库中创建了一个对象&#x…...

WebStorm 2023年下载、安装教程、亲测有效

文章目录 简介安装步骤常用快捷键 简介 WebStorm 是JetBrains公司旗下一款JavaScript 开发工具。已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源&#xff0c;继承了IntelliJ IDEA强大的JS部分的…...

k8s储存卷

卷的类型 In-Tree存储卷插件 ◼ 临时存储卷 ◆emptyDir ◼ 节点本地存储卷 ◆hostPath, local ◼ 网络存储卷 ◆文件系统&#xff1a;NFS、GlusterFS、CephFS和Cinder ◆块设备&#xff1a;iSCSI、FC、RBD和vSphereVolume ◆存储平台&#xff1a;Quobyte、PortworxVolume、Sto…...

【解决Win】“ 无法打开某exe提示无法成功完成操作,因为文件包含病毒或潜在的垃圾软件“

在下载某个应用程序&#xff0c;打开时出现了“无法成功完成操作因为文件包含病毒或潜在垃圾”的提示&#xff0c;遇到这个情况怎么解决&#xff1f; 下面为大家分享故障原因及具体的处理方法。 故障原因 是由于杀毒 防护等原因引起的。 解决方案 打开Windows 安全中心 选择…...

SpringBoot调用ChatGPT-API实现智能对话

目录 一、说明 二、代码 2.1、对话测试 2.2、单次对话 2.3、连续对话 2.4、AI绘画 一、说明 我们在登录chatgpt官网进行对话是不收费的&#xff0c;但需要魔法。在调用官网的API时&#xff0c;在代码层面上使用&#xff0c;通过API KEY进行对话是收费的&#xff0c;不过刚…...

element-table出现错位解决方法

先看示例图&#xff0c;这个在开发中还是很常遇到的&#xff0c;在table切换不同数据时或者切换页面时&#xff0c;容易出现&#xff1a; 解决方法很简单&#xff0c;官方有提供方法&#xff1a; 我们可以在重新渲染数据后&#xff1a; this.$nextTick(() > {this.$refs.…...

DC电源模块具有不同的安装方式和安全规范

BOSHIDA DC电源模块具有不同的安装方式和安全规范 DC电源模块是将低压直流电转换为需要的输出电压的装置。它们广泛应用于各种领域和行业&#xff0c;如通信、医疗、工业、家用电器等。安装DC电源模块应严格按照相关的安全规范进行&#xff0c;以确保其正常运行和安全使用。 D…...

zabbix自定义监控、钉钉、邮箱报警

目录 一、实验准备 二、安装 三、添加监控对象 四、添加自定义监控项 五、监控mariadb 1、添加模版查看要求 2、安装mariadb、创建用户 3、创建用户文件 4、修改监控模版 5、在上述文件中配置路径 6、重启zabbix-agent验证 六、监控NGINX 1、安装NGINX&#xff0c…...

短信、邮箱验证码本地可以,部署到服务器接口却不能使用

应对公司双验证要求&#xff0c;对本系统做邮箱、短信验证码登录&#xff0c;本地开发正常发送&#xff0c;到服务器上部署却使用失败&#xff0c;已全部解决&#xff0c;记录坑。 一、nginx拦截 先打开你的服务器 nginx.conf 看看有没有做接口拦截。&#xff08;本地可能做Sp…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...