You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Minikube中部署Druid+Minio+PostgreSQL时任务失败求助

Druid任务失败(Exit Code 137 + 404)排查与解决建议

核心问题拆解

Druid集群组件状态正常,但任务执行时出现Exit Code 137(进程被终止)和Request failed with status code 404,结合配置与环境,主要排查方向集中在Peon进程内存限制、Minio配置错误、元数据存储连接验证三个维度。

具体排查与修复步骤

1. 修复Minio配置的拼写错误

你的S3配置存在明显拼写错误,会导致路径风格访问失效,请求Minio时返回404:

# 错误配置
druid.s3.enabePathStyleAccess=true
# 修正为
druid.s3.enablePathStyleAccess=true

该错误会让Druid使用虚拟主机模式访问Minio,而Minikube环境下Minio的Endpoint未配置对应虚拟主机域名,因此无法找到Bucket,触发404错误。

2. 调整Peon进程内存限制

Exit Code 137通常表示进程因内存不足被OOM Killer终止。虽然你给MiddleManager配置了1Gi内存限制,但执行任务的Peon子进程默认内存可能不足:

  • 在MiddleManager的配置中添加Peon内存参数:
    druid.peon.maxJvmHeapSize=768m
    
    建议将该值设置为MiddleManager内存限制的70%左右(如1Gi限制下分配768M),避免Peon进程占用过多内存触发K8s的OOM终止。

3. 验证Minio Bucket与权限

  • 确认Minio中的test-bucket已创建:进入Minikube环境,使用Minio客户端执行以下命令验证:
    mc alias set minio http://192.168.59.xxx:30000 <your-access-key> <your-secret-key>
    mc ls minio
    
    确保输出中存在test-bucket,且该Bucket具备读写权限。
  • 统一Minio Endpoint配置:你同时配置了s3service.s3-endpoint和druid.s3.endpoint.url,建议保持一致,避免配置冲突。

4. 验证PostgreSQL元数据存储连接

虽然配置了createTables=true,但需确认Druid是否成功连接并创建元数据表:

  • 进入Coordinator Pod,执行PostgreSQL连接命令验证:
    psql -h postgres-service.dev.svc.cluster.local -U postgres -d druid_db
    
    连接成功后,查看是否存在Druid元数据表:
    \dt
    
    正常情况下会看到druid_config、druid_segments、druid_tasks等表。

5. 查看Peon进程详细日志

MiddleManager的主日志可能不够详细,需查看具体任务的Peon日志:

  • 进入MiddleManager Pod,查看Peon日志目录:
    cd /var/log/druid/peon
    cat <task-id>.log
    
    日志中会明确记录404请求的具体URL,帮助定位是Minio访问失败还是其他资源请求错误。

内容的提问来源于stack exchange,提问作者Alexy Pulivelil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 05:44:59