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

Docker Compose部署Presto连接Kafka提示kafka catalog不存在

故障原因
  • 核心问题是ahanaio/prestodb-sandbox镜像的Presto配置根目录为/opt/presto/etc,catalog配置文件的默认加载路径是/opt/presto/etc/catalog,而非你配置里写的/etc/catalog。配置文件挂载到错误路径后,Presto启动时完全扫描不到Kafka连接器的配置,自然无法识别到kafka这个catalog。
  • 常见触发场景:如果启动容器前本地不存在./presto/kafka.properties文件,Docker会默认把这个挂载点创建成目录而非普通文件,就算后续修正了挂载路径,也会因为配置文件是目录导致加载失败。
修复步骤
  1. 停掉当前运行的容器栈,清理残留资源:
    docker-compose down
    
  2. 修改docker-compose.yaml中presto服务的挂载路径,对齐镜像内的实际catalog目录:
    presto:
        image: ahanaio/prestodb-sandbox:latest
        ports:
          - 8087:8080
        volumes:
        # 修正挂载路径为镜像实际的catalog加载目录
        - ./presto/kafka.properties:/opt/presto/etc/catalog/kafka.properties
        networks:
          - shared
    
  3. 提前在本地创建好配置目录和文件,避免Docker误生成目录:
    # 创建配置目录
    mkdir -p ./presto
    # 写入正确的Kafka连接器配置
    cat > ./presto/kafka.properties <<EOF
    connector.name=kafka
    kafka.nodes=kafka1:19092
    kafka.table-names=example_topic
    EOF
    
  4. 重新启动整个服务栈:
    docker-compose up -d
    
  5. 等待30~60秒让Presto完成初始化,再通过CLI连接验证即可。如果依然报相同错误,可以进容器校验配置是否正确挂载:
    # 替换为实际的presto容器名称,可通过docker ps查看
    docker exec -it <presto容器名> bash
    # 检查配置文件是否存在、内容是否正确
    cat /opt/presto/etc/catalog/kafka.properties
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:30:10