StarRocks3.2 存算分离模式Failed to get primary backend

  1. 查看对应CN节点的9070端口是否存活
  2. 看看CN的进程是否响应9070端口的TCP请求
  3. 确认FE进程是否误开启了一些代理(http_proxy/https_proxy)环境变量.

9070端口还在,并且telnet 也通

image
fe 没有开启过相关代理

StarRocks3.2 存算分离模式Failed to get primary backend 继续讨论:

很奇怪的一点是,cn.INFO 里没有异常。SHOW PROC ‘/compute_nodes’\G 查看cn节点信息也正常。如果是fe和cn失联,这两个地方应该也会有异常的相关信息

image 对应9070活着,而且Telnet也是通的。fe上也没有开启代理

cat /proc/<fe_pid>/environ, 确认一下*_proxy环境变量不存在.

另外CN的日志可以提供一下, 看看有没有可疑的地方

environ 里面没有找到proxy相关的环境变量

cn.INFO
cn日志如下,没有发现相关的异常情况(14.0 MB)

StarRocks3.2 存算分离模式Failed to get primary backend 继续讨论:

environ 里面没有找到proxy相关的环境变量


cn日志:cn.INFO (14.0 MB)

I0219 11:31:15.732360 37173 starlet.cc:98] Empty starmanager address, skip reporting!

看看机器上有没有9070端口监听, 是不是有多个BE/CN部署, 端口占用了.

StarRocks3.2 存算分离模式Failed to get primary backend 继续讨论:netstat -tunlp查看了一下9070端口。就只有一个cn在使用9070端口。而且,我手动换成其他的端口如19070 也是存在一样的情况,fe.log中依然有相同报错:2024-02-28 15:11:45,566 WARN (pool-28-thread-1|113) [StarletAgent.heartbeat():110] sending heartbeat to worker bigdata03:19070 failed, GRPC:DEADLINE_EXCEEDED: Deadline exceeded after 4.999915727s. .

StarRocks3.2 存算分离模式Failed to get primary backend 继续讨论:

[quote=“U_1708918250126_9459, post:11, topic:11373”]
netstat -tunlp查看了一下9070端口。就只有一个cn在使用9070端口。而且,我手动换成其他的端口如19070 也是存在一样的情况,fe.log中依然有相同报错:2024-02-28 15:11:45,566 WARN (pool-28-thread-1|113) [StarletAgent.heartbeat():110] sending heartbeat to worker bigdata03:19070 failed, GRPC:DEADLINE_EXCEEDED: Deadline exceeded after 4.999915727s. .

应该是网络问题, 尝试用tcpdump看一下FE与CN 9070端口的TCP交互. 正常的tcp syn/ack是否正常, tcp包是否正常收发处理. netstat 看看CN进程对应TCP连接接收/发送缓冲区是否有堆积.

已解决。

问题已经解决。不用主机名,用IP问题就没有了。但是很奇怪, 在部署存算不分离时候就是使用主机名,部署存算分离使用主机名就有这个问题。我也用tcpdump 监控了端口交互,cn的9070端口确实没有收到包,但是fe节点 Telnet cn 9070 通,cn节点端口活着,也没有多个cn|be抢占端口啥的。
问题虽然解决,但是这个问题发生的原因没有找到

用主机名时, 集群需要转成FQDN模式, FE会主动去解析域名成IP地址, 否则会当成IP地址直接使用.

StarRocks3.2 存算分离模式Failed to get primary backend 继续讨论:是的,这一章我也注意到了。我在使用 主机名的时候,每台服务器都配置了hosts 而且启动fe时候就是使用FQDN模式启动。而且用主机名模式,搭建存算不分离模式集群就没有任何问题,搭建存算分离模式就出现上述问题

这个我们自己再复现测试看看. 可能跟不同模式下的DNS解析有关.

咨询一下,我们也碰到了一模一样的问题。不过我们一直用的就是ip,区别就是我们都是通过容器部署的。

能不能把怎么解决的发出来,或者配置发下,谢谢