docker-compose - Apache Druid 无法连接到 zookeeper,Apache Druid 作为 docker 镜像部署在一个容器中
问题描述
我正在尝试在 docker 容器中部署 Apache -Druid。镜像构建成功。部署 Apache-druid 的 Docker Image 后,包括 zookeeper 在内的所有服务都正常启动。
这是我的设置,我在 Docker 远程主机上部署 Druid docker 映像,它在内部使用 Docker swarm。我为 Apache Druid 的每个服务配置了不同的容器名称、主机名。我已经配置了外部网络,我发现内部 swarm 正在不同的主机上启动这些服务。我已将“链接”配置为 Druid 服务的 Zookeeper,反之亦然。
但是,中间人、协调者和经纪人无法连接到 Zookeeper。以下是错误:
org.apache.zookeeper.ClientCnxn - 打开与服务器 zookeeper/IP 地址的套接字连接:2181。不会尝试使用 SASL 进行身份验证(未知错误)2020-03-19T22:04:05,673 INFO [main-SendThread(localhost:2181)] org.apache.zookeeper.ClientCnxn - 发生套接字错误:zookeeper/IP 地址:2181。 : 拒绝连接
所以我在 Docker 网络上运行不同的服务,在不同的节点上(Linux 上的 Docker)。这些服务是 Apache Druid 的一部分,如中层管理器、代理、路由器等。这些服务是单个 docker compose 文件的一部分。服务启动但无法连接到作为 Apache Druid 软件包一部分的 zookeeper。从我的基础设施团队发现,这些服务是在网络内的不同节点上启动的。我使用了定义的外部网络。另外,我正在定义 links 。如何配置服务以相互通信。这是我的码头工人撰写。这是我在下面评论中的 docker-compose 文件
请求输入。
谢谢和问候, Shubhada
解决方案
我已经解决了这个问题,将 druid 主机设置为 gateway.docker.internal
推荐阅读
- scala - 为什么 SBT 发布一个被跳过的 JAR?
- android - 如何在 android 的 agora.io 直播视频流中维护点赞计数器?
- typescript - Firebase - 未定义 importScripts
- app-inventor - AppInventor - WebViewer - 访问手机文件
- string - 无法将字符串变量中的日期分配给 C# 中的日期时间变量
- dynamics-crm - EntityReference 不适用于 AlternateKey
- wordpress - Woocommerce 可变产品创建所有属性的变化
- python - 如何用数据框列中的空格替换任意数量的特殊字符
- r - 应用带有值和标签的数据框中的标签
- unity3d - 在 Unity3d 的项目视图中从资产商店中搜索资产