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

news/发布时间2024/6/17 3:29:40

本文是性能问题分析排查思路的展开内容之一,主要分为日志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.bcls.cn/NxAn/9266.shtml

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

枚举(蓝桥练习)(反倍数、特别数的和、找到最多的数、小蓝的漆房、小蓝和小桥的挑战)

目录 一、枚举算法介绍 二、解空间的类型 三、循环枚举解空间 四、例题 (一、反倍数) (二、特别数的和) (三、找到最多的数) (四、小蓝的漆房) (五、小蓝和小桥的…

Spring 学习记录

Spring 学习记录 1. Spring和SpringFrameWork1.1 广义的Spring2.1 狭义的Spring2.3 SpringFrameWork / Spring框架图 2. Spring IOC容器(即上图中的Core Container)2.1 相关概念 (IOC DI 容器 组件)2.2 Spring IOC容器的作用2.3 Spring IOC容器接口和具体实现类 3. Spring IOC …

Linux零拷贝技术浅谈

Linux零拷贝不是什么新知识点了,网上资料一大堆,这是2021年我要在公司做一次分享,就写了这篇文章,图片很多是来源于网络。 一、零拷贝的由来和定义 1. 基本概念 内核态:Ring0级别,运行在内核空间中&…

神经网络系列---感知机(Neuron)

文章目录 感知机(Neuron)感知机(Neuron)的决策函数可以表示为:感知机(Neuron)的学习算法主要包括以下步骤:感知机可以实现逻辑运算中的AND、OR、NOT和异或(XOR)运算。 感知机(Neuron) 感知机(Neuron)是一种简单而有效的二分类算法,用于将输入…

Docker(运维工具)—— 学习笔记

快速构建、运行、管理应用的工具 一、安装docker 参考Install Docker Engine on Ubuntu | Docker Docs 二、快速入门 1、镜像和容器 docker镜像可以做到忽略操作系统的差异,跨平台运行,忽略安装的差异 当我们利用Docker安装应用时,Dock…

【k8s】-- 查询 pod 磁盘容量

命令:kubectl get pvc -n 你的namespace --context上下文命名 -o wide 举例:kubectl get pvc -n my-bigdata --contextprod-6 -o wide

【BUG 记录】史诗级 BUG - MYSQL 删库删表却没有备份如何恢复数据

【BUG 记录】史诗级 BUG - MYSQL 删库删表却没有备份如何恢复数据 1. 问题描述2. 解决方案(binlog)2.1 构造测试环境2.2 查看 MySQL 环境是否开启 binlog2.3 查看所有的 binlog 日志记录2.4 查看当前正在使用的是哪一个 binlog 文件2.5 查看此时的 binlo…

轻量级模型,重量级性能,TinyLlama、LiteLlama小模型火起来了,针对特定领域较小的语言模型是否与较大的模型同样有效?

轻量级模型,重量级性能,TinyLlama、LiteLlama小模型火起来了,针对特定领域较小的语言模型是否与较大的模型同样有效? 当大家都在研究大模型(LLM)参数规模达到百亿甚至千亿级别的同时,小巧且兼具高性能的小…

06 vim工具

目录 概念模式基本操作配置 1. 概念 vim是一个历史悠久的,多模式的编辑器,是vi的升级版。和ide不同,编辑器仅能编写文本,不能运行代码,现阶段的代码编译的各个过程会分开按步骤执行 2. 模式 vim有很多种模式,想要编…

【学习总结】什么是DoS和DDoS

[Q&A] 什么是DoS DoS 是 “Denial of Service”(拒绝服务)的缩写,它是一种网络攻击方式,其目的是使目标计算机或网络资源无法为合法用户提供正常的服务。通过向目标系统发送大量请求、消耗其带宽、处理器或内存等资源&#…

使用空闲电脑免费搭建一个私人的网盘

如果你也有一台空闲电脑,可以使用它来搭建一个私人的网盘。 这里使用的是飞梦云网盘; 服务端:下载 服务器文件使用hash校验进行储存,实现重复上传的文件秒传功能。 Fuse4Ui(虚拟分区工具):下…

高性能API云原生网关 APISIX安装与配置指南

Apache APISIX是Apache软件基金会下的顶级项目,由API7.ai开发并捐赠。它是一个高性能的云原生API网关,具有动态、实时等特点。 APISIX网关可作为所有业务的流量入口,为用户提供了丰富的功能,包括动态路由、动态上游、动态证书、A…

18 SpringMVC实战

18 SpringMVC实战 1. 课程介绍2. Spring Task定时任务1. 课程介绍 2. Spring Task定时任务 package com.imooc.reader.task

BlackWidow靶场

kali:192.168.223.128 主机发现 nmap -sP 192.168.223.0/24 目标IP:192.168.223.153 端口扫描 nmap -sV -p- -A 192.168.223.153 22/tcp open ssh OpenSSH 7.9p1 Debian 10deb10u2 (protocol 2.0) 80/tcp open http Apache httpd 2.4.38 ((Deb…

Window系统禅道BUG管理系统安装配置并实现公网远程访问

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…

[NPUCTF2020]ezinclude ---不会编程的崽

做完这题,又get到一个新的知识点。上界面 源代码里有线索 secret是秘密值,name与pass应该是可以控制的变量。抓个包看看 发送与请求有hash值,没猜错应该是用来验证的。拿去爆破了,啥也没爆破出来。先传参 右边的hash值改变了。猜想…

小苯的IDE括号问题(CD) -----牛客小白月赛87(双链表)

C题&#xff1a;C-小苯的IDE括号问题&#xff08;easy&#xff09;_牛客小白月赛87 (nowcoder.com) D题&#xff1a; D-小苯的IDE括号问题&#xff08;hard&#xff09;_牛客小白月赛87 (nowcoder.com) C题代码&#xff1a; #include<bits/stdc.h>using namespace std…

百度云AI

百度云AI概述 Face腾讯优图科大讯飞 百度人脸识别基于深度学习的人脸识别方案&#xff0c;准确识别图片中的人脸信息&#xff0c;提供如下功能&#xff1a; 人脸检测&#xff1a;精准定位图中人脸&#xff0c;获得眼、口、鼻等72个关键点位置&#xff0c;分析性别、年龄、表…

武器大师——操作符详解(上)

目录 一、操作符的分类 二、二进制和进制转换 2.1.二进制与十进制的互相转化 2.1.1 二进制转十进制 2.1.2 十进制转二进制 ​编辑 2.2.二进制转8进制和16进制 2.2.1 转8进制 2.2.2 转16进制 三、原码、反码、补码 四、移位操作符 4.1.左移操作符&#xff08;<…

#LLM入门|Prompt#2.2_ AI 应用开发的范式_Language_Models,the_Chat_Format_and_Tokens

在本章中&#xff0c;我们将和您分享大型语言模型&#xff08;LLM&#xff09;的工作原理、训练方式以及分词器&#xff08;tokenizer&#xff09;等细节对 LLM 输出的影响。 我们还将介绍 LLM 的提问范式&#xff08;chat format&#xff09;&#xff0c;这是一种指定系统消息…
推荐文章