一、背景
由于同事不小心,重装服务器。导致一个be节点失败了。
二、解决方案
生产环境doris集群有1个fe节点,3个be节点。由于同事重装服务器,直接剩2个fe节点。因此整个doris不能正常访问。然后我们运行着dophine scheduller 的任务。发现运行表插入数据时,都报错。原来所有的表再建时最低要求3个节点。于是开始添加be节点。
三、添加be节点
1.首先通过安全停用旧be节点:
ALTER SYSTEM DECOMMISSION BACKEND "be_ip:9050";
2.然后copy另一个可用的be节点包,到新的be节点服务器中。
scp /opt/module/doris root@new_be_ip:/opt/module/doris
一般目标主机时root用户,即有scp的权限。否则报无权限。
一搬请跨国下该be节点的空间比较大,可以去除掉be下的log目录和storage目录。
3.然后选择doris下的be目录。如果上面没有清除be下的log目录,和storage目录,那就清除掉即可。接着配置好be的网络,再${doris_home}/be/conf下,vi 编辑be.conf文件。priority_networks = host_ip/24.如果需要配置hostname,也可以配置:通过去修改/etc/hosts文件
补充一条记录
host_ip hostname 例如:192.168.1.1 host1
4.改为配置之后,就可以启动be节点了。
去{doris_home}/be/bin目录下
建议修改下be.pid的进程id防止与其他be节点冲突。
可以首先执行./start_be.sh. 前台执行。可以去${doris_home}/be/log下,查看be.WARNING.
一般都会报这个错:
W1201 14:15:03.765172 21652 storage_engine.cpp:190] check fd number failed, error: Internal error: file descriptors limit is too small
可以修改文件描述符数量:
一定要使用root用户,才能生效
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
echo "* soft nproc 65535" >> /etc/security/limits.conf
echo "* hard nproc 65535" >> /etc/security/limits.conf
然后使用ulimit -n 查看是否修改成功。这样一般都会启动成功。
5.最后一步
如果旧节点没有下掉的话,可以强制下:
ALTER SYSTEM DROPP BACKEND "be_ip:9050";
然后添加新be节点:
ALTER SYSTEM ADD BACKEND "new_be_ip:9050";
此时,我们就可以将启动be节点,改为后台 ./start_be.sh --daemon.
最后通过navicat连接doris。
执行show proc 'backends'; 查看fe节点是否正常,一般正常的话Alive为true.
执行show proc '/backends';查看be节点是否正常,一般正常的话Alive为true.