部署FE替换问题

一共4台机器,其中一台部署了FE和BE,其他都是FE,
现在加了一台机器,想要把原先的FE给替代掉。
我直接添加了 ALTER SYSTEM ADD FOLLOWER “host:port”;
原来的FE有数据
mysql> show databases;
±-------------------+
| Database |
±-------------------+
| statistics |
| information_schema |
| t1 |
| tpch |
±-------------------+

新的FE没数据,而且还删除不了新的FE,新FE变成了IsMaster: true
MySQL [(none)]> show databases;
±-------------------+
| Database |
±-------------------+
| statistics |
| information_schema |
±-------------------+

请参考我们的扩容文档进行操作。
这个看起来是因为你启动的时候没有制定helper。

扩容FE
./start_fe.sh --helper 主FE的ip:9010 --daemon 这样吗
扩容的FE
EditLogPort: 9010
HttpPort: 8030
QueryPort: 0
RpcPort: 0
Role: FOLLOWER
IsMaster: false
ClusterId: 1334776774
Join: false
Alive: false
ReplayedJournalId: 0
LastHeartbeat: NULL
IsHelper: true
ErrMsg: got exception
2 rows in set (1 min 20.05 sec)

对的。

如果第一次没有按照这个操作。可以drop掉新增的FE,删除掉新的FE的meta目录。重新操作一遍。

我先试一下,不行再来问你

添加的是新FE的私网地址还是不行,防火墙这些需要设置吗

在扩容的机器上启动fe时,–helper指定的是已经启动的那个主fe的ip:port。如果扩容第一次没有以–helper启动,需要将当前节点的元数据目录fe/meta下面的数据清空,然后重新以–helper的形式启动。

我把doris-meta/下的都删除了
./start_fe.sh --helper 主FE的私网ip:9010 --daemon启动
mysql -P9030 -h主FE的ip -uroot 连接不上

你主fe节点的fe启动正常嘛?主fe节点是否有多个ip?fe.conf中配置要使用的ip没有?

*************************** 1. row ***************************
Name: 主FE的私有ip_9010_1635315331447
IP: 主FE的私有ip
HostName: iZbp18qk0thz016bb8qneoZ
EditLogPort: 9010
HttpPort: 8030
QueryPort: 9030
RpcPort: 9020
Role: FOLLOWER
IsMaster: true
ClusterId: 1334776774
Join: true
Alive: true
ReplayedJournalId: 180393
LastHeartbeat: 2021-11-04 14:40:01
IsHelper: true
ErrMsg:
*************************** 2. row ***************************
Name: 扩容的FE的私有ip_9010_1636007894345
IP: 扩容的FE的私有ip
HostName: 扩容的FE的
EditLogPort: 9010
HttpPort: 8030
QueryPort: 0
RpcPort: 0
Role: FOLLOWER
IsMaster: false
ClusterId: 1334776774
Join: false
Alive: false
ReplayedJournalId: 0
LastHeartbeat: NULL
IsHelper: true
ErrMsg: got exception
2 rows in set (1 min 20.08 sec)

##################### FE.conf ########################
LOG_DIR = ${DORIS_HOME}/log

DATE = “$(date +%Y%m%d-%H%M%S)”

JAVA_OPTS="-Xmx8192m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -
XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -
XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -
XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -
Xloggc:$DORIS_HOME/log/fe.gc.log.$DATE"

JAVA_OPTS_FOR_JDK_9="-Xmx8192m -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xlog:gc*:$DORIS_HOME/log/fe.gc.log.$DATE:time"

sys_log_level = INFO

http_port = 8030

rpc_port = 9020

query_port = 9030

edit_log_port = 9010

mysql_service_nio_enabled = true

如果机器有多个网卡,你需要在fe.conf中通过priority_networks=xxxx的方式,指定你需要的ip

ifconfig只有一个网卡eth0地址,也需要配置priority_networks吗?
mysql链接报错
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘xx.xx.xx.xx’ (111)

主fe节点你目前已经连接不上了嘛?

新的FE一直是 Alive: false

添加的是私有ip还是公网ip

主FE 进mysql -P9030 -h127.0.0.1 -uroot
mysql> SHOW PROC ‘/frontends’\G
*************************** 1. row ***************************
Name: xx.xx.xx.xx_9010_1635315331447
IP: xx.xx.xx.xx
HostName: iZbp18qk0thz016bb8qneoZ
EditLogPort: 9010
HttpPort: 8030
QueryPort: 9030
RpcPort: 9020
Role: FOLLOWER
IsMaster: true
ClusterId: 1334776774
Join: true
Alive: true
ReplayedJournalId: 181531
LastHeartbeat: 2021-11-04 15:28:14
IsHelper: true
ErrMsg:
*************************** 2. row ***************************
Name: 192.168.xx.xx_9010_1636007894345
IP: 扩容的FE
HostName: 192.168.xx.xx
EditLogPort: 9010
HttpPort: 8030
QueryPort: 0
RpcPort: 0
Role: FOLLOWER
IsMaster: false
ClusterId: 1334776774
Join: false
Alive: false
ReplayedJournalId: 0
LastHeartbeat: NULL
IsHelper: true
ErrMsg: got exception
2 rows in set (1 min 20.08 sec)

扩容的FE 进mysql -P9030 -h127.0.0.1 -uroot
MySQL [(none)]> SHOW PROC ‘/frontends’\G
*************************** 1. row ***************************
Name: xx.xx.xx.xx_9010_1636010859689
IP: xx.xx.xx.xx
HostName: test-ai
EditLogPort: 9010
HttpPort: 8030
QueryPort: 9030
RpcPort: 9020
Role: FOLLOWER
IsMaster: true
ClusterId: 711432134
Join: true
Alive: true
ReplayedJournalId: 70
LastHeartbeat: 2021-11-04 15:31:30
IsHelper: true
ErrMsg:
1 row in set (0.02 sec)

能和你主fe正常通信的ip,新添加的节点如果有多个网卡的话,需要配置priority_networks来指明和主fe通信的

扩容fe的时候,只需要在主fe上进行一次add即可。add完毕之后,扩容的fe启动的时候启动需要以–helper 主feip:port启动,告诉当前启动的fe需要和哪一台fe进行通信,同步元数据

1.扩容的私网ip添加到
ALTER SYSTEM ADD FOLLOWER “扩容的FE私网IP:9010”;
2. 修改主FE的fe.conf
priority_networks = xx.xx.xx.xx/16
3. 去扩容FE启动
./bin/start_fe.sh --helper 主FE的私网IP:9010 --daemon
这个步骤对吗

我现在主要想把一台服务器集中FE/BE中的FE关闭,在新的服务器上开一个FE代替旧的主FE,该怎么操作