YARN 集群的 Node 节点都处在 Unhealthy 状态

2023-10-28 17:59

本文主要是介绍YARN 集群的 Node 节点都处在 Unhealthy 状态,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述

在客户的 Yarn UI 可以看到有 local-dirs are badlog-dirs are bad 报错,node 节点都是 unhealthy 状态,如图:

原因分析

之所以会有 local-dirs are badlog-dirs are bad 报错,是因为在我们集群的 yarn-site.xml 里参数 yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage 的默认值是 90%,到达到这个值会触发上述报错。之所以会触发 yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage 的默认值是因为:

  1. 客户的数据是存储在 Storage 里的,在进行计算之前需要将数据先读取到各个节点,客户在读取数据生成 RDD 之后对 RDD 的缓存采用的是 MEMORY_AND_DISK_2,也没有采用序列化的方式,也就是说如果内存存不下会存到本地磁盘,而且会存在不同的节点上存 2 份。
  2. 在计算的过程中会产生大量的中间数据结果,如果内存中存不下也会将结果写到磁盘上。
  3. 一个 batch 的数据还没处理完,下一个 batch 就来了,上一个 batch 占用的内存还没释放(batch 任务还没执行完),最后都会堆积到磁盘上。

解决方法

  1. 首先要先 kill 掉所有的任务,因为当前客户的所有节点已经是 unhealthy 状态了,可以采用如下办法 kill 所有的任务:

    shell复制

    for app in `yarn application -list | awk '$6 == "ACCEPTED" { print $1 }'`; do yarn application -kill "$app";  done
    
  2. 重启所有节点。

  3. 重新提交任务。

     

【现象】查看到yarn监控页面上有十几个Unhealthy 节点,分别进去Unhealthy Nodes查看各个目录的占用磁盘情况,发现是HDFS的有关目录占用过多了,这是因为有很多临时文件占用了Hdfs。

tmp_users=`hdfs dfs -ls /tmp/ | awk '{print $8}' | cut -d"/" -f3 | xargs `
echo $tmp_users 	# 查看总共有多少个用户使用hive on yarn

 【解决1】批量清理每个用户在hdfs临时目录下产生的文件

for user in $tmp_users; do hdfs dfs -rm -r /tmp/${user}/.staging/*; done

需要清理HDFS上的回收站

for user in $tmp_users; do hdfs dfs -rm -r /user/yarn/.Trash/Current/tmp/${user}/.staging/*; echo CLEANED ${user} Trash on HDFS; done

终极恢复方案:

 更换目录:

 yarn nodemanager format

重启服务 

 

 

这篇关于YARN 集群的 Node 节点都处在 Unhealthy 状态的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/294966

相关文章

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

VSCode中配置node.js的实现示例

《VSCode中配置node.js的实现示例》本文主要介绍了VSCode中配置node.js的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一.node.js下载安装教程二.配置npm三.配置环境变量四.VSCode配置五.心得一.no

Redis高可用-主从复制、哨兵模式与集群模式详解

《Redis高可用-主从复制、哨兵模式与集群模式详解》:本文主要介绍Redis高可用-主从复制、哨兵模式与集群模式的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录Redis高可用-主从复制、哨兵模式与集群模式概要一、主从复制(Master-Slave Repli

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

SpringSecurity JWT基于令牌的无状态认证实现

《SpringSecurityJWT基于令牌的无状态认证实现》SpringSecurity中实现基于JWT的无状态认证是一种常见的做法,本文就来介绍一下SpringSecurityJWT基于令牌的无... 目录引言一、JWT基本原理与结构二、Spring Security JWT依赖配置三、JWT令牌生成与

Redis分片集群的实现

《Redis分片集群的实现》Redis分片集群是一种将Redis数据库分散到多个节点上的方式,以提供更高的性能和可伸缩性,本文主要介绍了Redis分片集群的实现,具有一定的参考价值,感兴趣的可以了解一... 目录1. Redis Cluster的核心概念哈希槽(Hash Slots)主从复制与故障转移2.