本文摘要
使用 Doris 2.0.3 及以上版本通过 Docker 部署时,若照搬官方文档的 docker run 命令,会遇到 BE 注册失败、FE 心跳超时等报错。原因是官方文档未同步更新,命令中的环境变量与新版 init_be.sh 不匹配,旧变量已弃用。按提交记录换成新变量,并同步修改 docker-compose 的 environment 配置即可解决。

截止2024年5月24日 Doris官方文档,没更新修改!!!!

就是因为这个问题,我真是要哭死了!搞了很久!希望下一个小白不会踩我的坑!

Doris官方文档 - Docker 部署

如果你正在使用官方给出的 Docker Run 命令来进行,那你应该会碰到了我踩的坑!

如果你出现了以下报错,这篇帖子或许能帮到你!

  • 报错1:
Statistics storage initiated failed, will try again later
org.apache.doris.common.DdlException: errCode = 2, detailMessage = System has no available disk capacity or no available BE nodes
  • 报错2:
waiting to receive first heartbeat from frontend before doing report...
waiting to receive first heartbeat from frontend before doing report...
waiting to receive first heartbeat from frontend before doing report
...
  • 报错3:
Register BE to FE is failed. retry.
Register BE to FE is failed. retry.
Register BE to FE is failed. retry.
...
  • 报错4:
start check be status~
register is failed, wait next~
start check be status~
register is failed, wait next~
...

原因

官方文档给出的 Docker Run 命令环境变量与当前版本init_be.sh不符! 到现在!都没有更新!简直先说一声!我上早7+1!!!! 原变量: FE_SERVERS 、 BE_ADDR 弃用 新变量: MASTER_FE_IP 、 CURRENT_BE_IP 、 CURRENT_BE_PORT

究极追溯: https://github.com/apache/doris/commit/c323bc44ff24402152b5c19c69502651ea10ed55#diff-72338387508537b2b23b63be1aa5f218839182d4f4104453475b70b21bcba2b0R70

解决方法:

// --env FE_SERVERS="fe1:127.0.0.1:9010"
--env MASTER_FE_IP="127.0.0.1"
//--env BE_ADDR="127.0.0.1:9050"
--env CURRENT_BE_IP="127.0.0.1"
--env CURRENT_BE_PORT="9050"

如果你在使用docker-compose,相应的修改你的environment!