跳到主要内容
版本:4.x

Manager 查看/修改元数据的操作步骤

一、背景

  1. manager目前没有提供任务取消等功能,所以目前会造成任务长时间停滞,需要手动修改元数据中的任务状态;
  2. manager有时会被某些旧的bug导致集群或者节点状态不正确,也需要手动修改元数据。

这里先简单给运维同学展示一下如何在数据库中修改集群和任务的状态

二、登录数据库

manager.conf配置文件里面支持用户配置2种不同的数据库类型,一种是mysql, 一种是内置的h2嵌入式数据库

Mysql 数据库

mysql数据库连接的方式比较多且常见,这里不做介绍

H2 数据库

登录H2数据库稍微复杂一点,下面主要介绍H2的登录方式

开启 H2 的访问

从 Doris Manager 的 23.11.9 和 24.0.3 版本开始,默认不开启H2的访问方式

  • 编辑 webserver/conf/manager.conf 文件,找到 H2_CONSOLE_ENABLE 字段(未找到则新增),设置为 TRUE 则开启 H2 数据库的访问

    H2_CONSOLE_ENABLE = TRUE
  • 重启 webserver 组件

登录 H2 数据库

浏览器访问 http://{ManagerIP}:{ManagerPort}/h2-console 即可找到 H2 数据库的控制台,其中 ManagerIP 就是manager对应的IP,ManagerPort对应 webserver/conf/manager.conf 文件里面的 MANAGER_PORT 字段,默认为 8004

下图即是H2的控制台

图片展示的是H2数据库的登录控制台界面。在“JDBC URL”输入框中,显示了数据库连接地址“jdbc:h2:/root/wdy/doris - manager/webserver/data/data”,其中“/root/wdy/doris - manager/webserver/data/data”部分被红色框突出显示。在“Password”输入框处,也用红色框标出。该图片与文档中介绍登录H2数据库的操作步骤相关,用于直观呈现登录时需填写的数据库连接地址和密码位置,帮助用户正确输入登录信息。

  • JDBC URL: jdbc:h2:{webserver_deploy_dir}/data/data,其中webserver_deploy_dir就是webserver的部署目录的绝对路径(PS:如果你在manager.conf里面显示设置了DATA_PATH字段,那么JDBC URL的值为 jdbc:h2:{DATA_PATH}/data
  • Password: 如果你的manager版本是23.11.9 之前或者 24.0.3 之前,则填写123456789;反之填写 manager@selectdb

三、查看集群ID

Manager 相关的元数据大部分都跟集群有关,所以在更改/查询数据库之前,最好找到自己当前集群的ID

集群信息表名为 clusters

集群ID最快捷的查询方式是直接在manager的页面上面找到,比如以下图片中的78就是当前集群的ID

图片展示了Manager查看集群ID的操作示例。画面中,浏览器地址栏显示网址为“172.20.107.800:7788/operation/nodes”,并用红色箭头和框线突出显示。页面左侧是Manager的导航栏,选中“集群”选项。右侧是集群信息展示区域,分为总览、节点、主机三部分,其中节点部分列出了FE节点、BE节点、WebUI节点的IP、状态、角色、HTTP Port等信息。该图片与文档中“集群ID最快捷的查询方式是直接在manager的页面上面找到”的内容对应,直观呈现了查询集群ID的操作位置。

四、任务取消

用户登录mysql或者H2数据库之后,可以找到JOBS这张表(下图是H2数据库中的展示界面)

图片展示了MySQL数据库中JOBS表的界面。界面顶部有“Run”“Run Selected”“Auto complete”等选项。下方表格中显示了任务ID、任务名称、状态、开始时间、结束时间等信息,如任务ID为1000000000000000000的任务名称为“test”、状态为“Running”等。该图片与文档中“任务取消”部分相关,用于说明用户登录mysql数据库后找到JOBS这张表,点击表名中间输入框会自动出现查询语句,点击“Run”即可找到任务ID等操作。

找到任务表

点击表名中间输入框会自动出现查询语句,点击Run即可;

图片展示了MySQL数据库中H2数据库的JOBS表界面。界面左侧有多个数据库选项,当前选中“model@dev@mysql@dev addCriterion

找到任务ID

下滑到页面的最底部,最近的任务一般就是最后一条记录,第一列即为任务的ID

图片展示了H2数据库中JOBS这张表的

修改任务状态

直接在输入框中输入SQL语句(一般选择第一条sql即可),点击Run即可

// 将任务置为成功
update jobs set status = 'Success' where id = 具体ID;

// 将任务置为失败
update jobs set status = 'Fail' where id = 具体ID;

重启webserver

上面修改了数据库内容,但是webserver进程里面还是用的缓存信息,所以需要重启webserver

到manager的部署目录,找到webserver目录

  • sh bin/stop.sh 停止进程
  • sh bin/start.sh 启动进程

五、重置集群状态

用户在缩容、升级等操作中,可能会因为旧版本的一些bug, 导致集群状态一直不是正常状态(Running),这里需要手动修改集群状态

下图就是一个典型的例子,界面上的集群一直处于"缩容中"状态,导致其他操作(如集群升级、集群重启等)不可执行

图片展示的是Doris管理界面中集群状态页面。界面上方提示节点重启时间的操作,需5 - 15分钟。页面显示了FE节点和ip、状态、HTTP Port等信息,其中20.52.3.72节点状态为“缩容中(Hybrid Node)”,被红色框突出显示。该图片与文档中“重置集群状态”找到集群”

找到集群表

同样的方式,找到集群表CLUSTERS

图片展示了在数据库操作界面中查找集群表CLUSTERS的操作。左侧为数据库表列表,其中CLUSTERS表被选中。右侧输入框内有SQL语句SELECT * FROM CLUSTERS,上方有“Run”“Run Selected”等操作按钮,点击“Run”可执行该查询语句,下方显示了查询结果。此图片与上文“找到集群表CLUSTERS,直接在输入框里面使用sql语句”的内容对应,直观呈现了查找集群表并执行查询语句的操作步骤。

直接在输入框里面使用sql语句

update clusters set status = 'Running' where id = 具体的集群ID;

图片展示的是Doris Manager界面

重启webserver

上面修改了数据库内容,但是webserver进程里面还是用的缓存信息,所以需要重启webserver

到manager的部署目录,找到webserver目录

  • sh bin/stop.sh 停止进程
  • sh bin/start.sh 启动进程

六、重置节点状态

下图也是一个典型的例子,界面上的集群一直处于"缩容中"状态,导致其他操作(如集群升级、集群重启等)不可执行。同时节点状态一直为非正常状态

图片展示的是Doris系统节点 addCriterion>中节点状态页面。页面左侧有“总览”“节点”“主机”等选项,当前选中“节点”。右侧显示了FE节点和BE节点的相关信息,如IP、状态、角色、HTTP Port等。其中,IP为20.52.97的BE节点状态显示为“非正常”,角色为“Hybrid Node”,并有红色框突出显示。该图片与文档中“重

找到节点表

图片展示的是在Manager查看/修改元数据时,找到节点表后输入SQL语句的界面。画面中SQL编辑框中输入了“update cluster_nodes set status = 'Running' where cluster_id = 1;”的SQL语。该图片与上文“找到节点表”后需输入SQL语句的上下文对应,直观呈现了输入SQL语句的操作界面及SQL内容,为后续重启webserver前修改数据库内容的操作提供指引。

输入sql语句

update cluster_nodes set status = 'Running' where cluster_id = 具体的集群ID(比如1);

重启webserver

上面修改了数据库内容,但是webserver进程里面还是用的缓存信息,所以需要重启webserver

到manager的部署目录,找到webserver目录

  • sh bin/stop.sh 停止进程
  • sh bin/start.sh 启动进程

七、停止巡检任务

找到巡检任务表

图片展示的是在Manager中查看SQL语语句界面 addCriterion()操作的界面。界面中SQL编辑框内输入了“SELECT * FROM INSPECTION_JOBS order by created_at desc;”语句,下方结果区域显示有“INSPECTION_JOBS”表的查询结果,显示了Ccluster_idCLOUD_MODE、CLUSTER_ID、CLUSTER_NAME等字段信息。图片与上文“找到巡检任务表”内容对应,直观呈现了执行SQL语句查询巡检任务表的操作结果

SELECT * FROM INSPECTION_JOBS order by created_at desc;
# 这样第一条记录就是最新的巡检任务,记住ID

修改任务状态

update INSPECTION_JOBS set status = 'Success' where id = $ID;

重启webserver即可