性能分析排查思路之日志(1)

news2024/11/17 13:19:14

本文是性能问题分析排查思路的展开内容之一,主要分为日志1期,机器4期、环境2期共7篇系列文章,本期是第一篇,讲日志的分析方法和经验。

系列文章传送门:
一图梳理性能问题分析排查思路-总体概述(0)

一般分析步骤

大数据领域,日志的范畴很广泛,主要思路如下:

  1. 收集相关日志

    • 任务日志:对于运行在YARN等分布式计算框架上的任务,首先要获取任务执行过程中的标准输出(stdout)和标准错误(stderr)日志,这些日志可能包含了任务启动、运行、失败的具体信息,包括错误栈、资源分配状况、任务进度等。

    关键在于找到第一现场,最后的错误往往是由更早的错误引发的!

    • 服务日志:针对具体的大数据服务组件,如HDFS NameNode、DataNode、YARN ResourceManager、NodeManager、Kafka Broker、HBase RegionServer等,收集其运行时的日志文件,这些日志记录了服务内部状态变化、请求处理情况、异常事件等重要信息。

错误不一定发生在每一个节点上,如不能定位到节点,分布式的服务需要关注每一个节点的信息。

  • 上下游服务日志:如果问题涉及到多个服务之间的交互,例如数据流经Elasticsearch、Flink、Kafka等中间件,也需要查看这些上游和下游服务的相关日志,以便确定数据传输是否正常、是否存在接口调用失败或超时等问题。

这招很管用!

  1. 筛选关键信息

    • 使用grep、awk等命令行工具或日志管理平台进行关键词过滤和搜索,快速定位到包含错误信息或异常堆栈的部分。
    • 查看日志中与时间戳相关的条目,找到问题发生的时间窗口内的日志记录(以便回溯对应时间段的硬件资源状态)。
  2. 关联分析

    • 将不同来源的日志按时间顺序排列,观察同一时间段内各服务的状态和交互情况。
    • 分析错误前后的上下文信息,寻找可能导致问题的触发因素,如资源耗尽、并发冲突、配置错误等。
  3. 深度解析

    • 对于复杂的系统错误或性能瓶颈,可能需要深入理解日志中所反映出的系统内部机制,比如内存溢出、磁盘空间不足、网络延迟高等问题(这在机器相关章节展开)。
    • 如果是代码级别的错误,通过错误栈跟踪查找引发问题的具体代码行,结合源码进一步分析(在环境章节展开讲)。
  4. 重现与调试

    • 在条件允许的情况下,尝试复现问题并开启额外的日志级别(debug或trace级别),以获取更详细的运行时信息。
    • 如果有必要,可以通过远程调试或者增加临时日志输出来追踪特定变量的变化或流程控制路径。

    不能重现的问题往往是没有找到根因!

常见的错误类型

HDFS与YARN类

组件错误关键词解释说明
Hadoopnamenode.SafeModeException安全模式下无法操作
HadoopConnectException: Call From datanode-hostDataNode连接失败
YARNConnectException:Failed to connect to serverResourceManager无法启动或连接失败
YARNFailed to launch container … ExitCode xx is -104容器初始化失败
YARNFileAlreadyExistsException输出目录已存在等
HadoopRemoteException: StandbyException …HA模式下Active NameNode变更
HadoopUnknownHostException: namenode-hostNameNode服务未响应或不可达
Hadoopsasl.SaslException: GSS initiate failedKerberos认证失败
YARNOutOfMemoryError: Java heap spaceMap或Reduce任务内存溢出
HadoopIOException: Failed to handshake with NNDataNode与NameNode之间通信失败

Hive和HBase类

组件错误关键词解释说明
HiveFAILED: MetaException(message:Got元数据比如表或分区创建、删除、更新等操作失败
HiveFAILED: ParseException line x:xxSQL语句解析错误,如语法不符合规范
HiveSemanticException [Error 10001]: Line xxSQL语句虽符合语法,但在执行计划生成阶段出现语义错误
HiveHiveExecutionException Error while processing在查询执行过程中发生的异常
Hive.FileNotFoundException: File does not exist与HDFS相关的读写错误,如文件不存在、权限不足
HiveDAG submission failed due toTez作为执行引擎时,由于资源不足等导致失败
Hivehive.serde2.SerDeException:在序列化或反序列化数据时遇到的问题
HBaseZooKeeperConnectionException: HBase is unable to connectZK连接异常
HBaseIllegalArgumentException: KeyValue size too largeRowKey过大错误
HBaseLease expired on client… for table …RegionServer租约过期错误

Spark类

组件错误关键词解释
SparkOutOfMemoryError: Java heap space内存溢出
SparkNoClassDefFoundError, ClassNotFoundException依赖库缺失或版本冲突
SparkSocketTimeoutException: Read timed out网络通信错误
SparkFetchFailedException: Connection fromSpark Shuffle错误
Sparksql.AnalysisException:Table or view not found表或视图不存在,或者SQL语句语法有误
SparkYarnAllocationException向YARN资源管理器申请资源失败

日志处理的常用命令

基础类:cat + grep关键字,less、more、tail

统计类:wc统计行数、字符数

管道类:awk配合grep

tail -n 1000 /var/log/hadoop/xxxx.log | grep "Error" | awk '{print $1, $4}' > errors.txt

工具类:split将很大的日志文件切分成小文件,zip或tar压缩!

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

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

相关文章

‘grafana.ini‘ is read only ‘defaults.ini‘ is read only

docker安装grafana 关闭匿名登录情况下的免密登录遇到问题 grafana.ini is read only defaults.ini is read only 参考回答(Grafana.ini giving me the creeps - #2 by bartweemaels - Configuration - Grafana Labs Community Forums) 正确启动脚本 …

HarmonyOS开发云工程与开发云函数

创建函数 您可直接在DevEco Studio创建函数、编写函数业务代码、为函数配置调用触发器。 1.右击“cloudfunctions”目录,选择“New > Cloud Function”。 2.输入函数名称后,点击“OK”。 函数名称仅支持小写英文字母、数字、中划线(-&a…

高性能图表组件LightningChart .NET v11.0发布——增强DPI感知能力

LightningChart完全由GPU加速,并且性能经过优化,可用于实时显示海量数据-超过10亿个数据点。 LightningChart包括广泛的2D,高级3D,Polar,Smith,3D饼/甜甜圈,地理地图和GIS图表以及适用于科学&am…

【从零开始学习重要知识点 | 第一篇】快速了解什么是幂等性以及常见解决方案

前言: 当我们在设计和实现分布式系统时,幂等性是一个非常重要的概念。幂等性可以简单地理解为:对于同一操作,不论执行多少次,产生的影响都是相同的。这个概念在分布式系统中非常重要,因为在这种环境下&…

Python多功能课堂点名器、抽签工具

一、问题缘起 去年,ChatGPT浪潮袭来,我懂简单的Python基础语法,又有一些点子,于是借助于人工智能问答工具,一步一步地制作了一个点名器,也可以用于抽签。当时,我已经设计好页面和基础的功能&am…

vue中组合式API和选项式API的区别

组合式api(Composition API)是vue3对我们开发者来说变化非常大的更新,我们先不关注具体语法,先对它有一个大的感知。 通过vue2, vue3两种形式实现同一个需求,理解vue3的compition api 带来的好处 两个独立的功能&…

CSS3详解

1.什么是CSS css的优势 1、内容和表现分离 2、网页结构表现统一&#xff0c;可以实现复用 3、样式十分的丰富 4、建议使用独立于html的css文件 5、利用SE0,容易被搜索引擎收录&#xff01; CSS的几种导入方法 内部式 <style>h1{color: red;}</style> 外部式 嵌…

搭建服务器及跨域处理

使用内置的模块搭建服务器 自己电脑: 域名:localhost ip:127.0.0.1 http模块搭建服务器 const http = require(http)// 创建一个http对应的服务器,每次改完服务器的代码后都需要重新启动下服务器 /*方式一: const server = http.createServer((request,response)=>{…

Vue 环境安装以及项目创建

环境安装 nodejs 安装 下载地址&#xff1a;https://nodejs.org/dist/v18.16.1/ 根据系统类型选择对应安装包&#xff0c;选择安装路径那个后一直下一步即可安装完成。 配置npm 代理镜像,设置为淘宝的镜像地址&#xff08;后面按照依赖可以加速下载安装包&#xff09; npm c…

【C++进阶】哈希 + unordered系列容器

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;C航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1…

前端css、js、bootstrap、vue2.x、ajax查漏补缺(1)

学到的总是忘&#xff0c;遇到了就随手过来补一下 1.【JS】innerHTML innerHTML属性允许更改HTML元素的内容可以解析HTML标签 2.【CSS】display: none 设置元素不可见&#xff0c;不占空间&#xff0c;约等于将元素删除一样&#xff0c;只是源代码还存在 3.【CSS】行内样式 4.【…

机器学习专项课程03:Unsupervised Learning, Recommenders, Reinforcement Learning笔记 Week01

Week 01 of Unsupervised Learning, Recommenders, Reinforcement Learning 本笔记包含字幕&#xff0c;quiz的答案以及作业的代码&#xff0c;仅供个人学习使用&#xff0c;如有侵权&#xff0c;请联系删除。 课程地址&#xff1a; https://www.coursera.org/learn/unsupervi…

前端视角对Rust的浅析

概述 本文将从 Rust 的历史&#xff0c;前端的使用场景和业界使用案例一步步带你走进 Rust的世界。并且通过一些简单的例子&#xff0c;了解 Rust 如何应用到前端&#xff0c;提高前端的生产效率。 Rust简史 2006年&#xff0c;软件开发者Graydon Hoare在Mozilla工作期间&#…

单细胞Seurat - 细胞聚类(3)

本系列持续更新Seurat单细胞分析教程&#xff0c;欢迎关注&#xff01; 维度确定 为了克服 scRNA-seq 数据的任何单个特征中广泛的技术噪音&#xff0c;Seurat 根据 PCA 分数对细胞进行聚类&#xff0c;每个 PC 本质上代表一个“元特征”&#xff0c;它结合了相关特征集的信息。…

【三维重建】【slam】【分块重建】LocalRF:逐步优化的局部辐射场的鲁棒视图合成

项目地址&#xff1a;https://localrf.github.io/ 题目&#xff1a;Progressively Optimized Local Radiance Fields for Robust View Synthesis 来源&#xff1a;KAIST、National Taiwan University、Meta 、University of Maryland, College Park 提示&#xff1a;文章用了s…

学习Android的第十八天

目录 Android 可复用 BaseAdapter 为什么使用BaseAdapter&#xff1f; 如何使用BaseAdapter&#xff1f; Android GridView 网格视图 GridView 属性 示例 Android Spinner 下拉选项框 Spinner Spinner 属性 示例 Android AutoCompleteTextView 自动完成文本框 Auto…

观成科技:加密C2框架Covenant流量分析

工具介绍 Covenant是一个基于.NET的开源C2服务器&#xff0c;可以通过HTTP/HTTPS 控制Covenant agent&#xff0c;从而实现对目标的远程控制。Covenant agent在与C2通信时&#xff0c;使用base64/AES加密载荷的HTTP隧道构建加密通道。亦可选择使用SSL/TLS标准加密协议&#xf…

【C/C++】inline内联函数详解

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

使用drawio画数据库实体关系图

在drawio中使用数据库实体关系图 drawio是一款强大的图表绘制软件&#xff0c;支持在线云端版本以及windows, macOS, linux安装版。 如果想在线直接使用&#xff0c;则直接输入网址drawon.cn或者使用drawon(桌案), drawon.cn内部完整的集成了drawio的所有功能&#xff0c;并实现…

如何利用ChatGPT搞科研?论文检索、写作、基金润色、数据分析、科研绘图(全球地图、植被图、箱型图、雷达图、玫瑰图、气泡图、森林图等)

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…