更新时间:2024-11-29 GMT+08:00

FE服务故障恢复

问题现象

FE可能因为某些原因出现无法启动bdbje、FE之间无法同步等问题,无法进行元数据写操作、没有MASTER等。需要手动操作来恢复FE,手动恢复FE先通过当前“meta_dir”中的元数据,启动一个新的MASTER,然后再逐台添加其他FE。

操作步骤

  1. 结束所有FE进程,同时结束所有业务访问,保证在元数据恢复期间不受外部访问出现不可预期的问题。
  2. 查找FE所有实例节点上元数据,找到最新的一个节点FE,作为恢复的Master。

    1. 进入FE后台节点,查看配置文件“${BIGDATA_HOME}/FusionInsight_Doris_x.x.x/x_x_FE/etc/fe.conf”中参数“meta_dir”的值,该值即为元数据存储目录
    2. 寻找所有FE的元数据存储目录,查看此存储目录下子文件“image/image.xxxx”,其中“image.xxxx”后面的数字越大表示元数据越新,找到最新的一个FE,作为即将首个恢复的FE,即Master。
    3. 备份所有FE的元数据存储目录。

      例如,元数据存储目录为“/srv/BigData/doris_fe/doris-meta”,执行以下命令进行备份:

      cp -r /srv/BigData/doris_fe/doris-meta /srv/BigData/doris_fe/doris-meta.bak

  3. 进入2找到的元数据最新的FE所在节点(即Master),添加配置“metadata_failure_recovery=true”到“${BIGDATA_HOME}/FusionInsight_Doris_x.x.x/x_x_FE/etc/fe.conf”中,如果存在“${BIGDATA_HOME}/FusionInsight_Doris_x.x.x/x_x_FE_UPDATE”目录,则需要在“x_x_FE_UPDATE下fe.conf”中也添加该配置。
  4. 登录 FusionInsight Manager页面,选择“集群 > 服务 > 实例”,勾选3修改配置的FE节点,选择“更多 > 重启实例”重启FE实例,其他实例依旧停止状态不做操作。
  5. 观察FE启动后状态,启动成功后,在浏览器中连接此FE,例如,访问地址为“http://192.168.67.27:29980”。

    登录FE WebUI界面后,单击“Playground”,选择“default_cluster:information_schema”,在右侧命令框中输入show frontends命令,单击“Excute”,若“Results”列表中当前FE的“Alive”列的值为“true”,表示此FE已经恢复正常:

  6. 在FusionInsight Manager页面,选择“集群 > 服务 > 实例”,勾选非Master且运行状态为未启动的FE实例,选择“更多 > 删除实例”:

  7. 删除成功后,单击“添加实例”,重新添加6删除了的FE实例。
  8. 勾选配置过期的实例,选择“更多 > 重启实例”重启配置过期的FE实例,删除手动在FE所在节点上的“fe.conf”中添加的参数“metadata_failure_recovery”。

  9. 检查集群是否已经正常运行,并在FE WebUI中执行命令检查FE、BE、DBroker进程是否健康且都在一个集群中,查询结果中“Results”列表中所有实例的“Alive”列的值为“true”则表示进程健康:

    例如,以下命令都在Doris WebUI界面的“Playground”的“default_cluster:information_schema”中执行:

    • 执行以下命令检查FE进程是否都健康:

      show frontends;

    • 执行以下命令检查BE进程是否都健康:

      show backends;

    • 执行以下命令检查DBroker进程是否都健康:

      show broker;