河源哪里做网站,中文电商网站模板,上海发布首页,我爱做衣服网站本文是性能问题分析排查思路的展开内容之一#xff0c;主要分为日志1期#xff0c;机器4期、环境2期共7篇系列文章#xff0c;本期是第一篇#xff0c;讲日志的分析方法和经验。
系列文章传送门#xff1a; 一图梳理性能问题分析排查思路-总体概述#xff08;0#xff…本文是性能问题分析排查思路的展开内容之一主要分为日志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类
组件错误关键词解释说明Hadoopnamenode.SafeModeException安全模式下无法操作HadoopConnectException: Call From datanode-hostDataNode连接失败YARNConnectExceptionFailed 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压缩