跳转至

作业管理

在Storage服务上长期运行的任务称为作业,例如COMPACTFLUSHSTATS。 如果图空间的数据量很大,这些作业可能耗时很长。作业管理可以帮助执行、查看、停止和恢复作业。

SUBMIT JOB COMPACT

SUBMIT JOB COMPACT语句会触发RocksDB的长耗时compact操作。

compact配置详情请参见Storage服务配置

示例

nebula> SUBMIT JOB COMPACT;
+------------+
| New Job Id |
+------------+
| 40         |
+------------+

SUBMIT JOB FLUSH

SUBMIT JOB FLUSH语句将内存中的RocksDB memfile写入硬盘。

示例

nebula> SUBMIT JOB FLUSH;
+------------+
| New Job Id |
+------------+
| 96         |
+------------+

SUBMIT JOB STATS

SUBMIT JOB STATS语句启动一个作业,该作业对当前图空间进行统计。作业完成后,用户可以使用SHOW STATS语句列出统计结果。详情请参见SHOW STATS

Note

如果存储在Nebula Graph中的数据有变化,为了获取最新的统计结果,请重新执行SUBMIT JOB STATS

示例

nebula> SUBMIT JOB STATS;
+------------+
| New Job Id |
+------------+
| 97         |
+------------+

SHOW JOB

Meta服务将SUBMIT JOB请求解析为多个任务,然后分配给进程nebula-storaged。SHOW JOB <job_id>语句显示指定作业和相关任务的信息。

job_id在执行SUBMIT JOB语句时会返回。

示例

nebula> SHOW JOB 96;
+----------------+---------------+------------+-------------------------+-------------------------+
| Job Id(TaskId) | Command(Dest) | Status     | Start Time              | Stop Time               |
+----------------+---------------+------------+-------------------------+-------------------------+
| 96             | "FLUSH"       | "FINISHED" | 2020-11-28T14:14:29.000 | 2020-11-28T14:14:29.000 |
+----------------+---------------+------------+-------------------------+-------------------------+
| 0              | "storaged2"   | "FINISHED" | 2020-11-28T14:14:29.000 | 2020-11-28T14:14:29.000 |
+----------------+---------------+-------------------------+------------+-------------------------+
| 1              | "storaged0"   | "FINISHED" | 2020-11-28T14:14:29.000 | 2020-11-28T14:14:29.000 |
+----------------+---------------+------------+-------------------------+-------------------------+
| 2              | "storaged1"   | "FINISHED" | 2020-11-28T14:14:29.000 | 2020-11-28T14:14:29.000 |
+----------------+---------------+------------+-------------------------+-------------------------+
参数 说明
Job Id(TaskId) 第一行显示作业ID,其他行显示作业相关的任务ID。
Command(Dest) 第一行显示执行的作业命令名称,其他行显示任务对应的nebula-storaged进程。
Status 显示作业或任务的状态。详情请参见作业状态
Start Time 显示作业或任务开始执行的时间。
Stop Time 显示作业或任务结束执行的时间,结束后的状态包括FINISHEDFAILEDSTOPPED

作业状态

作业状态的说明如下。

状态 说明
QUEUE 作业或任务在等待队列中。此阶段Start Time为空。
RUNNING 作业或任务在执行中。Start Time为该阶段的起始时间。
FINISHED 作业或任务成功完成。Stop Time为该阶段的起始时间。
FAILED 作业或任务失败。Stop Time为该阶段的起始时间。
STOPPED 作业或任务停止。Stop Time为该阶段的起始时间。
REMOVED 作业或任务被删除。

状态转换的说明如下。

Queue -- running -- finished -- removed
     \          \                /
      \          \ -- failed -- /
       \          \            /
        \ ---------- stopped -/

SHOW JOBS

SHOW JOBS语句列出所有未过期的作业。

作业的默认过期时间为一周。如果需要修改过期时间,请修改Meta服务的参数job_expired_secs。详情请参见Meta服务配置

示例

nebula> SHOW JOBS;
+--------+----------------------+------------+-------------------------+-------------------------+
| Job Id | Command              | Status     | Start Time              | Stop Time               |
+--------+----------------------+------------+-------------------------+-------------------------+
| 97     | "STATS"              | "FINISHED" | 2020-11-28T14:48:52.000 | 2020-11-28T14:48:52.000 |
+--------+----------------------+------------+-------------------------+-------------------------+
| 96     | "FLUSH"              | "FINISHED" | 2020-11-28T14:14:29.000 | 2020-11-28T14:14:29.000 |
+--------+----------------------+------------+-------------------------+-------------------------+
| 95     | "STATS"              | "FINISHED" | 2020-11-28T13:02:11.000 | 2020-11-28T13:02:11.000 |
+--------+----------------------+------------+-------------------------+-------------------------+
| 86     | "REBUILD_EDGE_INDEX" | "FINISHED" | 2020-11-26T13:38:24.000 | 2020-11-26T13:38:24.000 |
+--------+----------------------+------------+-------------------------+-------------------------+

STOP JOB

STOP JOB语句可以停止未完成的作业。

示例

nebula> STOP JOB 22;
+---------------+
| Result        |
+---------------+
| "Job stopped" |
+---------------+

RECOVER JOB

RECOVER JOB语句会重新执行失败的作业,并返回已恢复的作业数量。

示例

nebula> RECOVER JOB;
+-------------------+
| Recovered job num |
+-------------------+
| 5 job recovered   |
+-------------------+

FAQ

如何排查作业问题?

SUBMIT JOB操作使用的是HTTP端口,请检查Storage服务机器上的HTTP端口是否正常工作。用户可以执行如下命令调试:

curl "http://{storaged-ip}:19779/admin?space={space_name}&op=compact"

最后更新: 2021年5月14日