部署场景问题梳理

部署场景问题梳理

FE

1. 进程查不到

查看fe.warning日志,查找是否有以下报错:

1.1 端口占用

关键字:port xxx is used

解决方法:修改fe.conf中相应被占用端口为闲置端口,重启即可。

1.2 缺少meta目录

关键字:meta not exist

解决方法:在fe安装目录下新建meta目录,然后重启

1.3 jdk环境错误

关键字:Could not initialize class org.apache.doris.rpc.BackendServiceProxy

解决方法:检查是否使用的是jre,如果使用的jre换成jdk即可,推荐使用oraclejdk版本1.8+。

2. fe进程存在,但是fe状态false

查看fe.warning日志,查找是否有以下报错:

2.1 Fe身份识别失败

关键字:Fe type:unknown ,is ready :false

2.1.1 是否没有add相应节点到集群里。

关键字: current node is not added to the cluster, will exit

解决方案:非第一台启动的fe节点首次加入集群时需要在集群中add相应节点信息,

使用MySQL客户端连接已有的FE, 添加新实例的信息,信息包括角色、ip、port:

mysql> ALTER SYSTEM ADD FOLLOWER "host:port";

mysql> ALTER SYSTEM ADD OBSERVER "host:port";

2.1.2 集群有add信息,但是ip识别出错

关键字:backend ip saved in master does not equal to backend local ip xxx vs 127.0.0.1

解决方案: 检查机器是否多网卡多ip,需要在fe.conf中配置priority_networks为xxx,然后重启

2.1.3 服务器同步超时

关键字:this replica exceeds max peimissible delta:5000ms

故障分析:fe.warning一直刷Fe type:unknown ,is ready :false,没其他信息时,查看jbd信息是否有所示错误。路径/xx/StarRocks-xxx/fe/meta/bdb/je.info.0

解决方案:

需要同步集群机器时间,默认超过5s认为同步失败,建议开启utc校准后重启fe。

2.1.4 网络故障,连接失败

关键字:connection refused

解决方案:确认集群间http_port时互相能ping通的。有权限问题联系集群运维人员开通后重启。

2.2 FE transfer成功,但是show frontends显示false

2.2.1 Fe type:master,is ready :true,但是连接其他fe节点show forntends显示状态false

是因为非第一台启动的fe节点首次加入集群时需要加上–helper启动,第一次启动不加–helper会把自己当作master启动,与其他节点通信失败,此时需要清空meta目录。然后加上–helper参数重新启动。

./bin/start_fe.sh --helper host:port --daemon

host为helper节点的IP,如果有多个IP,需要选取priority_networks里的IP。port为edit_log_port,默认为9010。

当FE再次启动时,无须指定–helper参数,因为FE已经将其他FE的配置信息存储于本地目录, 因此可直接启动:

./bin/start_fe.sh --daemon

2.2.2 Fe type:follower,is ready :true,但是连接其他fe节点show forntends显示状态false

查看bdb文件大小,若内存使用超过机器内存的60%,则不会做checkpoint,bdb文件夹会增大,然后初次启动读取bdb文件过长,这个过程会导致fe状态false不可用,此时需要调整fe 的jvm大小,修改fe.conf中的JAVA_OPTS,然后重启。

BE

1. 进程查不到

查看be.warning日志,查找是否有以下报错:

1.1 端口占用

关键字1:port xxx is used;fail to report disk state to xxx:9030,err=-1

解决方法:修改be.conf中相应被占用端口为闲置端口,重启即可。

1.2 缺少storage目录

关键字:storage not exist

解决方法:在be安装目录下新建storage目录,然后重启

1.3 http_service启动失败

关键字:Be http service did not start correctly,exiting

解决方法:该问题是be webservice端口被占用,可以尝试修改be.conf中的相关端口并重启。如果多次修改没有被占用的端口也重复报错,检查是否装有yarn等程序,确认监听端口选择修改监听规则,或者be的端口选取范围绕过即可。

1.4 jdk环境错误

关键字:Could not initialize class org.apache.doris.rpc.BackendServiceProxy

解决方法:检查是否使用的是jre,如果使用的jre换成jdk即可,推荐使用oraclejdk版本1.8+。

2. be进程存在,但是be不可用

2.1 是否没有add相应节点到集群里。

关键字: show backends 显示empty

解决方案:通过mysql客户端添加BE节点:

mysql> ALTER SYSTEM ADD BACKEND "host:port";

这里IP地址为和priority_networks设置匹配的IP,portheartbeat_service_port,默认为9050

2.2 网络故障,连接失败

关键字:connection refused

解决方案:确认集群间http_port时互相能ping通的。有权限问题联系集群运维人员开通后重启。

2.3 磁盘不足

关键字:Failed to get scan range, no queryable replica found in tablet: 11903

解决方案:定位磁盘不足,需要修改be.conf中的storage_root_path,可以指定多个目录,用;隔开。