如何在CDP集群中查找Hive三天前的旧日志?可用哪些命令?
在CDP集群中查找Hive三天前旧日志的命令
一、查找Hive服务组件日志(HiveServer2/Metastore等)
CDP集群中Hive服务日志默认存储在/var/log/hive/目录下(不同节点路径以Cloudera Manager实际配置为准),可通过以下命令定位三天前的日志文件:
- 列出所有Hive服务下三天前的日志文件(含压缩日志):
find /var/log/hive/ -type f -mtime +3 \( -name "*.log" -o -name "*.log.gz" \)
说明:
-mtime +3匹配修改时间超过3天的文件(即三天前及更早生成的日志);-o用于同时匹配普通日志和压缩日志。
- 查看指定组件(如HiveServer2)三天前日志中的关键词内容:
# 普通日志 find /var/log/hive/hiveserver2 -type f -mtime +3 -name "*.log" -exec grep "ERROR" {} \; # 压缩日志(使用zgrep直接读取.gz文件) find /var/log/hive/hiveserver2 -type f -mtime +3 -name "*.log.gz" -exec zgrep "ERROR" {} \;
二、查找Hive作业运行日志
Hive作业依赖YARN执行,作业日志可通过YARN命令或日志目录查找:
1. 定位三天前完成的Hive作业ID
yarn application -list -appStates FINISHED | awk -v target_date=$(date -d '-3 days' +%Y-%m-%d) '$2 >= target_date'
说明:
$2对应YARN作业列表中的提交日期列,target_date生成三天前的日期格式(如2024-05-20),过滤出该日期及之前提交的作业。
2. 根据作业ID查看完整日志
yarn logs -applicationId <你的作业ID>
3. 直接在YARN日志目录中查找三天前的作业日志
YARN作业日志默认存储在/var/log/hadoop-yarn/containers/或Cloudera Manager指定路径:
find /var/log/hadoop-yarn/containers/ -type f -mtime +3 -name "*hive*" -exec cat {} \;
三、注意事项
- 若集群启用了日志归档(如HDFS归档),需先从归档存储拉取日志文件再进行查找;
- 部分CDP集群可能通过Cloudera Manager配置了自定义日志路径,可通过
hive --config查看Hive配置文件中的日志路径参数。
内容的提问来源于stack exchange,提问作者Huzefa Shah
相关产品推荐
相关产品推荐

