作业管理
在Storage服务上长期运行的任务称为作业,例如COMPACT
、FLUSH
和STATS
。 如果图空间的数据量很大,这些作业可能耗时很长。作业管理可以帮助执行、查看、停止和恢复作业。
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 | 显示作业或任务结束执行的时间,结束后的状态包括FINISHED 、FAILED 或STOPPED 。 |
作业状态
作业状态的说明如下。
状态 | 说明 |
---|---|
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"
最后更新: August 20, 2021