大数据开发之Hive案例篇14:某个节点HDFS块比较多

news2025/1/31 7:59:17

文章目录

  • 一. 问题描述
  • 二. 解决方案
    • 2.1 查看节点安装的组件
    • 2.2 排查HDFS配置
    • 2.3 排查Yarn配置
      • 2.3.1 首先查看下nodemanager的日志
      • 2.3.2 查看container分配情况
      • 2.3.3 查看调度机制
      • 2.3.4 查看集群任务情况
      • 2.3.5 集群负载情况
      • 2.3.6 resourcemanager与nodemanager是否可以混合部署
    • 2.4 初步判断
    • 2.5 最终结论
  • 参考:

一. 问题描述

今天早上到公司,突然收到CDH集群某个节点的存储量的告警,如下图所示:
image.png

从图中可以看出,每个节点的HDFS空间是相同的,大多节点HDFS使用量在40%左右,而出问题的这个节点居然直逼80%,鉴于之前问题出现过多次,且每次都是利用空余时间使用HDFS的rebalance进行解决的,此处需要找出具体问题,规避此类问题。

二. 解决方案

2.1 查看节点安装的组件

image.png

2.2 排查HDFS配置

初步排查了一下各个节点的HDFS配置,暂未发现问题,且各个节点HDFS的配置是通过 Cloudera Manager进行配置的,配置也相同,不存在某个节点的HDFS相关配置出现问题,进而出现个别节点资源使用率高的情况。

2.3 排查Yarn配置

2.3.1 首先查看下nodemanager的日志

对比出问题的节点和正常的节点,从审计日志量来看,出问题的节点审计日志明显比正常节点多。
image.png

审计日志内容均是申请AM的,现在的问题是为什么cdh10节点的AM比其他节点多那么多?
image.png

2.3.2 查看container分配情况

正在运行container:
从下面截图来看,未发现啥异常情况。
image.png

从历史分配情况来看:
对比了cdh10和cdh7,发现近7天分配的container是均匀的。
image.png

image.png

2.3.3 查看调度机制

那么此时可以这么理解,当集群处于空闲时,突然来了一个任务,那么此时因为所有container的优先级相同,优先选择的就是本节点的container,而第一个container 用于启动作业的AM进程,这也就对应了之前的,chd10节点申请AM会比其他节点多很多。
image.png

我们知道AM用于协调,并不直接参与预算,真正参与运算的是container,而HDFS一般是计算节点优先写一份数据导datanode,然后再写其他副本。但是从上一步的分配情况来看,container分布是均匀的,

2.3.4 查看集群任务情况

从 job history上来看,可以看到,集群内小任务比较多,而因为是CDH集群,调度采用的是 Fair Scheduler(公平调度器),没有给小任务预留一部分集群资源。
image.png

2.3.5 集群负载情况

从集群的负载情况来看,集群存在明显的业务高峰期和空闲期。
image.png

image.png

image.png

2.3.6 resourcemanager与nodemanager是否可以混合部署

搜索到某个大佬给得说法:
image.png

一般是建议分开进行部署。

2.4 初步判断

初步判断,由于cdh10节点,既包含resourcemanager又包含nodemanager,且对于优先级相同的 Containers,优选选择满足本地性的 Container,参与计算的Container会优先写一份到本地的HDFS,故cdh10节点写HDFS会比较多。

于是建议运维先进行 HDFS rebalance,然后将cdh10节点nodemanager进行删除。

2.5 最终结论

近期比较忙,没让运维的处理,然后又有flume消费Kafka的数据实时同步到HDFS,因为之前缺失一部分数据,然后某几个节点在补录数据,刚好补录历史数据的进程出现了问题,就把这部分数据从HDFS上删除了,打算重新补录。

删除后发现,cdh10和cdh3的HDFS使用量突然降下来了,问题最终浮出水面。

cdh10和cdh3上刚好就是补录数据,而HDFS的写流程,第一个副本客户端优先,此例中flume节点所在的节点就是客户端。

参考:

  1. https://www.cnblogs.com/lemonu/p/13566208.html
  2. https://www.saoniuhuo.com/question/detail-1955187.html

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

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

相关文章

基于Springboot的在线竞拍系统(拍卖系统)

今天给大家带来了一个在线竞拍(拍卖)系统(带设计报告),项目功能完善。 用户功能 包括沙箱支付宝支付,在线竞拍,收藏管理,个人资料管理,竞拍管理等等。 机构功能 包括,上传竞拍项目…

springboot球赛管理小程序

球赛管理系统 springboot球赛管理系统小程序 java球赛管理小程序 技术: 基于springbootvue小程序球赛管理系统的设计与实现 运行环境: JAVA版本:JDK1.8 IDE类型:IDEA、Eclipse都可运行 数据库类型:MySql(…

优盘无法识别?恢复U盘数据就这样做!

到底是怎么回事呢?我的优盘用得好好的,突然就无法识别了。优盘里有对我很重要的数据,这些数据还能找回来吗?希望大家帮帮我! 优盘作为常用的便携式存储设备。为我们随时随地保存数据提供了很大的便利。我们可以利用u盘…

C++并发编程之玩转condition_variable

C并发编程之玩转condition_variable 0.导语 最近在看并发编程相关的代码,自己顺手从0开始写了个小项目玩转并发场景下的生产消费者模型,如果你想提高多线程编程方面的能力,想熟练掌握condition_variable的使用,甚至想在面试当中凸…

Go 语言精进之路——Go 中常见并发模式总结

文章目录 前言创建模式退出模式分离模式join 模式notify-and-wait模式退出模式的应用 管道模式扇出与扇入模式 超时与取消模式 前言 在语言层面,Go针对CSP模型提供了三种并发原语。 goroutine:对应CSP模型中的P,封装了数据的处理逻辑&#x…

数字化赋能大健康实体行业迈入发展新阶段,大健康招商加盟系统优势有哪些?

数字经济的发展,正推动大健康实体行业迈入高质量发展新阶段。大健康实体行业应如何在数字化浪潮中抢占先机?大健康实体行业招商加盟平台应如何开发设计,才能帮助大健康企业主取得营收突破? 围绕蚓链大健康招商加盟系统&#xff0c…

ppt制作相关内容小结

ppt制作是天大的事!是讲清一件事,表达自己的最好方式 1.删除ppt中的所有备注信息2.ppt制作中的快捷键3.精美的ppt收集 这里还是要提醒自己一下,做好ppt是外在的事情,把道理吃透才是根本! 但是ppt外在也是表达的一种方式…

闭包实现函数柯里化,js实现

闭包实现函数柯里化,js实现 函数柯里化定义代码实现 函数柯里化定义 柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术 即函数可以接…

.NET 8 Preview 4 中的 ASP.NET Core 更新

作者:Daniel Roth - Principal Program Manager, ASP.NET 翻译:Alan Wang 排版:Alan Wang .NET 8 Preview 4 现已可用,并包括了许多对 ASP.NET Core 的新改进。 以下是本预览版本中的新内容摘要: Blazor 使用 Blazor …

图片:前端展示图像(img 、picture、svg、canvas )及常用图片格式(PNG、JPG、JPEG、WebP、GIF、SVG、AVIF等)

一、浏览器网页展示图片方法 1.1、HTML <img> 标签 <!DOCTYPE html> <html><head><title>图片展示</title></head><body><h1>图片展示</h1><img src"example.jpg" alt"Example Image" w…

项目——学生信息管理系统3

目录 班级添加的界面实现 创建班级的实体类 在org.xingyun.dao 包下 编写 ClassDao 创建 AddStudentClassFrm 添加班级页面 注意创建成 JInternalFrame 类型 给控件起个名字 注释掉main方法 给提交按钮绑定事件 回到 MainFrm.java 给添加班级按钮绑定事件 启动测试 班…

chatgpt赋能python:Python重写父类的方法

Python重写父类的方法 在Python中&#xff0c;继承是一个常见的概念。通过继承&#xff0c;子类可以使用父类中定义的属性和方法。有时候&#xff0c;子类需要改变父类中的行为。这时候&#xff0c;可以通过重写父类的方法来实现这一目的。 什么是重写方法&#xff1f; 当一…

区块链生态发展

文章目录 前言以太坊的到来什么是图灵完备&#xff1f;什么是智能合约&#xff1f; 以太坊的应用去中心化应用 DApp代币发行 公有链&联盟链区块链应用总结 前言 前面的区块链文章有介绍区块链的诞生以及底层运行原理&#xff0c; 本文主要介绍一下区块链应用的发展&#x…

(八)灌溉系统-将nodejs部署到云服务器(未实现,思路供参考)

这里之后我就是升级优化了 如果不想再学习的话&#xff0c;前面的就足够用了 Node后端部署上线详细步骤及踩坑记录&#xff08;使用宝塔面板&#xff09;&#xff1a;参考文章 Xshelll7下载&#xff1a;教程 这里是成功连上了

如何使用 Terraform 和 Git 分支有效管理多环境?

作者&#xff5c;Sumeet Ninawe 翻译&#xff5c;Seal软件 链接&#xff5c;https://spacelift.io/blog/terraform-environments 通常我们使用 Terraform 将我们的基础设施定义为代码&#xff0c;然后用 Terraform CLI 在我们选择的云平台中创建制定的基础设施组件。从表面上看…

C++primer(第五版)第五章(语句)

5.1简单语句 一个语句在末尾加上分号;就变成了表达式语句.表达式语句的作用是执行表达式并丢弃掉求值结果(也可以用赋值运算符将求值结果存起来),不存起来的话,大多数表达式语句是没有什么实际用处的表达式语句,例如: int a10; a5; //这就是没什么用的表达式语句 ; …

《Linux操作系统编程》第四章 屏幕编程器vi : 了解屏幕编辑器vi的概述和基本操作命令

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

基于单片机自动控制的电动模型汽车

摘 要 本文研究了一种基于单片机自动控制的电动模型汽车。主要论述了自动循迹、避障、测距跟随等自动驾驶相关技术在模型车上的应用。 模型汽车以STM32为主控芯片&#xff0c;采用了多种传感器、驱动电机、控制舵机等检测与控制模块&#xff0c;实现了路径循迹行驶和检测避障的…

【python】numpy的array数组与pandas的DataFrame表格互相转换(图文代码超详细)

目录 0.环境 1.array数组和DataFrame表格的简单介绍 2.转换方式详解&#xff08;代码&#xff09; 0&#xff09;前提&#xff1a;【需注意】 1&#xff09;array转化为DataFrame 2&#xff09;DataFrame转化为array 3&#xff09;完整代码 0.环境 windows jupyter note…

英语统考错题集_作文题---网络教育统考工作笔记003

scholar 学者 下面是关于统考中的作文的如何书写,要打个照面,不能到时候蒙了 sincere 真诚的 cover 覆盖 excited 激动的 兴奋的 sincerely 真诚的 absent 缺勤的 citizen 公民 居民 每种题型都接触一下,然后后面有时间继续扩充中.. 152下上