性能分析排查思路之日志(1)
本文是性能问题分析排查思路的展开内容之一,主要分为日志1期,机器4期、环境2期共7篇系列文章,本期是第一篇,讲日志的分析方法和经验。
系列文章传送门:
一图梳理性能问题分析排查思路-总体概述(0)

一般分析步骤
大数据领域,日志的范畴很广泛,主要思路如下:

-
收集相关日志:
- 任务日志:对于运行在YARN等分布式计算框架上的任务,首先要获取任务执行过程中的标准输出(stdout)和标准错误(stderr)日志,这些日志可能包含了任务启动、运行、失败的具体信息,包括错误栈、资源分配状况、任务进度等。
关键在于找到第一现场,最后的错误往往是由更早的错误引发的!
- 服务日志:针对具体的大数据服务组件,如HDFS NameNode、DataNode、YARN ResourceManager、NodeManager、Kafka Broker、HBase RegionServer等,收集其运行时的日志文件,这些日志记录了服务内部状态变化、请求处理情况、异常事件等重要信息。
错误不一定发生在每一个节点上,如不能定位到节点,分布式的服务需要关注每一个节点的信息。
- 上下游服务日志:如果问题涉及到多个服务之间的交互,例如数据流经Elasticsearch、Flink、Kafka等中间件,也需要查看这些上游和下游服务的相关日志,以便确定数据传输是否正常、是否存在接口调用失败或超时等问题。
这招很管用!
-
筛选关键信息:
- 使用grep、awk等命令行工具或日志管理平台进行关键词过滤和搜索,快速定位到包含错误信息或异常堆栈的部分。
- 查看日志中与时间戳相关的条目,找到问题发生的时间窗口内的日志记录(以便回溯对应时间段的硬件资源状态)。
-
关联分析:
- 将不同来源的日志按时间顺序排列,观察同一时间段内各服务的状态和交互情况。
- 分析错误前后的上下文信息,寻找可能导致问题的触发因素,如资源耗尽、并发冲突、配置错误等。
-
深度解析:
- 对于复杂的系统错误或性能瓶颈,可能需要深入理解日志中所反映出的系统内部机制,比如内存溢出、磁盘空间不足、网络延迟高等问题(这在机器相关章节展开)。
- 如果是代码级别的错误,通过错误栈跟踪查找引发问题的具体代码行,结合源码进一步分析(在环境章节展开讲)。
-
重现与调试:
- 在条件允许的情况下,尝试复现问题并开启额外的日志级别(debug或trace级别),以获取更详细的运行时信息。
- 如果有必要,可以通过远程调试或者增加临时日志输出来追踪特定变量的变化或流程控制路径。
不能重现的问题往往是没有找到根因!
常见的错误类型
HDFS与YARN类
| 组件 | 错误关键词 | 解释说明 |
|---|---|---|
| Hadoop | namenode.SafeModeException | 安全模式下无法操作 |
| Hadoop | ConnectException: Call From datanode-host | DataNode连接失败 |
| YARN | ConnectException:Failed to connect to server | ResourceManager无法启动或连接失败 |
| YARN | Failed to launch container … ExitCode xx is -104 | 容器初始化失败 |
| YARN | FileAlreadyExistsException | 输出目录已存在等 |
| Hadoop | RemoteException: StandbyException … | HA模式下Active NameNode变更 |
| Hadoop | UnknownHostException: namenode-host | NameNode服务未响应或不可达 |
| Hadoop | sasl.SaslException: GSS initiate failed | Kerberos认证失败 |
| YARN | OutOfMemoryError: Java heap space | Map或Reduce任务内存溢出 |
| Hadoop | IOException: Failed to handshake with NN | DataNode与NameNode之间通信失败 |
Hive和HBase类
| 组件 | 错误关键词 | 解释说明 |
|---|---|---|
| Hive | FAILED: MetaException(message:Got | 元数据比如表或分区创建、删除、更新等操作失败 |
| Hive | FAILED: ParseException line x:xx | SQL语句解析错误,如语法不符合规范 |
| Hive | SemanticException [Error 10001]: Line xx | SQL语句虽符合语法,但在执行计划生成阶段出现语义错误 |
| Hive | HiveExecutionException Error while processing | 在查询执行过程中发生的异常 |
| Hive | .FileNotFoundException: File does not exist | 与HDFS相关的读写错误,如文件不存在、权限不足 |
| Hive | DAG submission failed due to | Tez作为执行引擎时,由于资源不足等导致失败 |
| Hive | hive.serde2.SerDeException: | 在序列化或反序列化数据时遇到的问题 |
| HBase | ZooKeeperConnectionException: HBase is unable to connect | ZK连接异常 |
| HBase | IllegalArgumentException: KeyValue size too large | RowKey过大错误 |
| HBase | Lease expired on client… for table … | RegionServer租约过期错误 |
Spark类
| 组件 | 错误关键词 | 解释 |
|---|---|---|
| Spark | OutOfMemoryError: Java heap space | 内存溢出 |
| Spark | NoClassDefFoundError, ClassNotFoundException | 依赖库缺失或版本冲突 |
| Spark | SocketTimeoutException: Read timed out | 网络通信错误 |
| Spark | FetchFailedException: Connection from | Spark Shuffle错误 |
| Spark | sql.AnalysisException:Table or view not found | 表或视图不存在,或者SQL语句语法有误 |
| Spark | YarnAllocationException | 向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压缩!
相关文章:
性能分析排查思路之日志(1)
本文是性能问题分析排查思路的展开内容之一,主要分为日志1期,机器4期、环境2期共7篇系列文章,本期是第一篇,讲日志的分析方法和经验。 系列文章传送门: 一图梳理性能问题分析排查思路-总体概述(0ÿ…...
Vue中如何实现条件渲染?
在Vue中实现条件渲染非常简单且灵活,主要通过Vue的指令来实现。在Vue中,我们可以使用v-if和v-else指令来根据条件来渲染不同的内容。下面就让我们通过一个简单的示例来演示如何在Vue中实现条件渲染: <!DOCTYPE html> <html lang&qu…...
Postman上传文件的操作方法
前言 调用某个接口,测试上传文件功能。一时间不知如何上传文件,本文做个操作记录,期望与你有益。 步骤一、设置Headers key:Content-Type value:multipart/form-data 步骤二、设置Body 选择form-data key:file下拉框选择file类型value&…...
linux系统Jenkins工具介绍
Jenkins概念介绍 Jenkins概念Jenkins目的特性产品发布流程 Jenkins概念 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些…...
【python】遵守 robots.txt 规则的数据爬虫程序
程序1 编写一个遵守 robots.txt 规则的数据爬虫程序涉及到多个步骤,包括请求网页、解析 robots.txt 文件、扫描网页内容、存储数据以及处理异常。由于编程语言众多,且每种语言编写爬虫程序的方式可能有所不同,以下将使用 Python 语言举例&am…...
使用爬虫去获取四六级成绩
使用爬虫去获取四六级成绩 今天出成绩,没过,二战六级依然惨死,那么我就写一个简单的爬虫,其实也可以封装成一个接口的,然后直接输入姓名 身份证好 以及四六级即可获取成绩,我就是简单的玩了一下哈…...
洛谷P1256 显示图像
广搜练手题 题目链接 思路 打印每个数与其最近的 1 1 1的曼哈顿距离,显然广搜,存储每一个 1 1 1,针对每一个 1 1 1开始广搜,逐层更新,每轮后更新的为两轮之中的最小曼哈顿距离 ACcode #include<bits/stdc.h>…...
模拟器抓HTTP/S的包时如何绕过单向证书校验(XP框架)
模拟器抓HTTP/S的包时如何绕过单向证书校验(XP框架) 逍遥模拟器无法激活XP框架来绕过单向的证书校验,如下图: 解决办法: 安装JustMePlush.apk安装Just Trust Me.apk安装RE管理器.apk安装Xposedinstaller_逍遥64位…...
【JS 算法题: 将 json 转换为字符串】
题目简介 其实就是手撕 JSON.stringfy()。 算法实现 输入 原则上来说,输入的是一个 json 对象。但需要考虑到异常情况,即输入了其它类型的数据,比如:12, true, ‘abc’, [‘red’, ‘green’], null, undefined 等。 输出 …...
数的范围 刷题笔记
思路 寻找第一个大于等于目标的 数 因为该数组是升序的 所以 我们可以采用二分的方式 逼近答案 定义一个左指针和一个右指针 当左右指针重合时 就是我们要找的答案 当我们寻找第一个大于等于x的数时 a[mid]>x,答案在mid处 或者在mid的左边 因此让rmid继续逼近 如果…...
XSS简介及xsslabs第一关
XSS被称为跨站脚本攻击(Cross-site scripting),由于和CSS(CascadingStyle Sheets)重名,所以改为XSS。 XSS主要速于javascript语言完成恶意的攻击行为,因为javascript可非常灵活的操作html、css和浏览器 XSS就是指通过利用网页开发时留下的漏…...
构建安全的REST API:OAuth2和JWT实践
引言 大家好,我是小黑,小黑在这里跟咱们聊聊,为什么REST API这么重要,同时,为何OAuth2和JWT在构建安全的REST API中扮演着不可或缺的角色。 想象一下,咱们每天都在使用的社交媒体、在线购物、银行服务等等…...
从0开始学习NEON(1)
1、前言 在上个博客中对NEON有了基础的了解,本文将针对一个图像下采样的例子对NEON进行学习。 学习链接:CPU优化技术 - NEON 开发进阶 上文链接:https://blog.csdn.net/weixin_42108183/article/details/136412104 2、第一个例子 现在有一张图片,需…...
(二十三)Flask之高频面试点
目录: 每篇前言:Q1:为什么把request和session放在一起?Q2:Local对象的作用?Q3::LocalStack对象的作用?Q4:一个运行中的Flask应用程序分别包括几个Local/LocalStack&#…...
设计模式(十三)抽象工厂模式
请直接看原文:设计模式(十三)抽象工厂模式_抽象工厂模式告诉我们,要针对接口而不是实现进行设计。( )-CSDN博客 -------------------------------------------------------------------------------------------------------------------------------- …...
HTTP Cookie 你了解多少?
Cookie是什么? 先给大家举个例子,F12 打开浏览器的页面之后,我们能在 Response Headers 的字段里面看到一个header 叫做 Set-Cookie,如下所示 图中包含的 Set-Cookie 为 Set-Cookie:uuid_tt_dd10_20293537580-1709432565344-232…...
【QT+QGIS跨平台编译】之五十六:【QGIS_CORE跨平台编译】—【qgsmeshcalclexer.cpp生成】
文章目录 一、Flex二、生成来源三、构建过程一、Flex Flex (fast lexical analyser generator) 是 Lex 的另一个替代品。它经常和自由软件 Bison 语法分析器生成器 一起使用。Flex 最初由 Vern Paxson 于 1987 年用 C 语言写成。 “flex 是一个生成扫描器的工具,能够识别文本中…...
ar时间序列
AR时间序列模型(AutoRegressive Time Series Model)是一种用于分析和预测时间序列数据的统计模型。该模型假设未来的观测值与过去的观测值相关,且该相关性可以通过线性回归来描述。 AR模型的基本思想是将当前时刻的观测值表示为过去几个时刻的…...
Android 14 AAOS audio
文章目录 乘客音频投放到主音频区动态路由配置controlhal实现的具体流程control hal AudioGain的callbackAudioModuleChange变化的通知 乘客音频投放到主音频区 场景: 是将乘客区的Media 属性的数据通过主屏区的设备进行播放。具体而言 在副屏user11播放的音乐是输出…...
文心一言 VS 讯飞星火 VS chatgpt (207)-- 算法导论15.4 4题
四、说明如何只使用表 c 中 2*min(m,n) 个表项及O(1)的额外空间来计算LCS的长度。然后说明如何只用 min(m,n) 个表项及O(1)的额外空间完成相同的工作。要写代码的时候,请用go语言。 文心一言: 在只使用 2 * min(m, n) 个表项和 …...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...
Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
前言:本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中,跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南,你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案,并结合内网…...
数据库——redis
一、Redis 介绍 1. 概述 Redis(Remote Dictionary Server)是一个开源的、高性能的内存键值数据库系统,具有以下核心特点: 内存存储架构:数据主要存储在内存中,提供微秒级的读写响应 多数据结构支持&…...
