使用 Cloud Dataflow 命令行界面

使用 Dataflow 托管式服务执行流水线时,您可以使用 Dataflow 的 Web 监控界面查看该作业和其他任何作业。Cloud Dataflow 命令行界面是 Cloud SDKgcloud 命令行工具的一部分。

注意:如果您想要使用 Web 界面来查看 Dataflow 作业并与之交互,请使用 Dataflow 监控界面

安装 Cloud Dataflow 命令行组件

如需使用 Dataflow 命令行界面,您首先需要安装 gcloud 工具。

运行可用命令

您可以通过运行可用命令来与 Dataflow 命令行界面进行交互。要运行命令,请将如下命令输入到 Shell 或终端窗口:

  gcloud dataflow

Dataflow 命令行界面包含三大子命令:jobslogsmetrics

Jobs 命令

jobs 子命令组可让您查看 Google Cloud 项目中的 Dataflow 作业并与之交互。您可以使用这些命令执行多种操作,比如查看作业列表、取消作业以及显示特定作业的说明。例如,要查看所有 Dataflow 作业的列表,请将如下命令输入到 Shell 或终端窗口:

gcloud dataflow jobs list

gcloud 工具会返回当前作业列表,如下所示:

  ID                                        NAME                                    TYPE   CREATION_TIME        STATE   REGION
  2015-06-03_16_39_22-4020553808241078833   wordcount-janedoe-0603233849            Batch  2015-06-03 16:39:22  Done    us-central1
  2015-06-03_16_38_28-4363652261786938862   wordcount-johndoe-0603233820            Batch  2015-06-03 16:38:28  Done    us-central1
  2015-05-21_16_24_11-17823098268333533078  bigquerytornadoes-johndoe-0521232402    Batch  2015-05-21 16:24:11  Done    europe-west1
  2015-05-21_13_38_06-16409850040969261121  bigquerytornadoes-johndoe-0521203801    Batch  2015-05-21 13:38:06  Done    us-central1
  2015-05-21_13_17_18-18349574013243942260  bigquerytornadoes-johndoe-0521201710    Batch  2015-05-21 13:17:18  Done    europe-west1
  2015-05-21_12_49_37-9791290545307959963   wordcount-johndoe-0521194928            Batch  2015-05-21 12:49:37  Done    us-central1
  2015-05-20_15_54_51-15905022415025455887  wordcount-johndoe-0520225444            Batch  2015-05-20 15:54:51  Failed  us-central1
  2015-05-20_15_47_02-14774624590029708464  wordcount-johndoe-0520224637            Batch  2015-05-20 15:47:02  Done    us-central1

您可以借助作业 ID 来运行 describe 命令,以显示有关作业的更多信息。

export JOBID=<X>
gcloud dataflow jobs describe $JOBID

例如,如果您针对作业 ID 2015-02-09_11_39_40-15635991037808002875 运行上述命令,gcloud 工具会返回以下信息:

createTime: '2015-02-09T19:39:41.140Z'
currentState: JOB_STATE_DONE
currentStateTime: '2015-02-09T19:56:39.510Z'
id: 2015-02-09_11_39_40-15635991037808002875
name: tfidf-bchambers-0209193926
projectId: google.com:clouddfe
type: JOB_TYPE_BATCH

您可以在运行命令时使用 --format=json 选项,以将结果的格式设置为 JSON。

gcloud --format=json dataflow jobs describe $JOBID

gcloud 工具会返回经过格式设置的如下信息:

{
  "createTime": "2015-02-09T19:39:41.140Z",
  "currentState": "JOB_STATE_DONE",
  "currentStateTime": "2015-02-09T19:56:39.510Z",
  "id": "2015-02-09_11_39_40-15635991037808002875",
  "name": "tfidf-bchambers-0209193926",
  "projectId": "google.com:clouddfe",
  "type": "JOB_TYPE_BATCH"
}

如需查看 jobs 命令的完整列表,请参阅 Cloud SDK 文档中的 gcloud dataflow jobs 命令。

Logs 命令

logs 命令会显示在 Dataflow 服务上运行的作业的日志条目。

例如,您可以使用 list 命令输出有关作业正在执行哪些操作的日志。

export JOBID=<X>
gcloud dataflow logs list $JOBID

对于作业 ID 2015-02-09_11_39_40-15635991037808002875gcloud 工具会返回:

Listed 0 items.

在本示例中,默认严重级别 (Warning) 下没有显示任何日志。您可以运行带有 --importance=detailed 选项的 list 命令来添加 BASIC 日志。

gcloud dataflow logs list $JOBID --importance=detailed

gcloud 工具会输出以下日志:

d 2016-08-29T09:33:28 2015-02-09_11_39_40-15635991037808002875_00000156d72606f7 (39b2a31f5e883423): Starting worker pool synchronously
d 2016-08-29T09:33:28 2015-02-09_11_39_40-15635991037808002875_00000156d7260871 (39b2a31f5e883ce9): Worker pool is running
d 2016-08-29T09:33:28 2015-02-09_11_39_40-15635991037808002875_00000156d7260874 (39b2a31f5e883b77): Executing operation Count.PerElement/Sum.PerKey/GroupByKey/GroupByKeyOnly…
...

如需查看 logs 命令的完整列表,请参阅 Cloud SDK 文档中的 gcloud dataflow logs 命令。

Metrics 命令

借助 metrics 命令,您可以查看给定 Dataflow 作业的指标。

注意metric 命令名称随时可能更改,并且某些指标随时可能删除。

您可以使用 list 命令获取有关作业中各步骤的信息。

gcloud dataflow metrics list $JOBID

对于此命令,gcloud 工具会返回如下结果:

---
name:
  name: s09-s14-start-msecs
  origin: dataflow/v1b3
scalar: 137
updateTime: '2016-08-29T16:35:50.007Z'
---
name:
  context:
    output_user_name: WordCount.CountWords/Count.PerElement/Init-out0
  name: ElementCount
  origin: dataflow/v1b3
scalar: 26181
updateTime: '2016-08-29T16:35:50.007Z'
---
name:
  context:
    step: s2
  name: emptyLines
  origin: user
scalar: 1080
updateTime: '2016-08-29T16:35:50.007Z'
...

您可以在作业运行过程中(或结束后不久)使用 gcloud dataflow metrics list 命令获取暂定指标。如需查看暂定指标,请运行该命令并使用 --tentative 标志。在工作器实例处理流水线数据的过程中,标记为 tentative 的指标将频繁更新。如果工作器遇到错误,更新频率可能会降低。工作器完成作业并提交结果后,tentative 指标将变成 committed 值。

如需查看 metrics 命令的完整列表,请参阅 Cloud SDK 文档中的 gcloud dataflow metrics 命令。

将命令与区域端点结合使用

自 gcloud 工具 176 版起,Dataflow 命令行界面就支持区域端点。通过将 --region 选项与任何命令结合使用,即可指定用于管理作业的区域端点。

例如,gcloud dataflow jobs list 可列出所有区域的作业,但 gcloud dataflow jobs list --region=europe-west1 仅可列出 europe-west1 区域管理的作业。

注意:如需从区域端点获取作业信息,必须使用 --region 选项。如果您未指定区域端点,则 us-central1 将用作默认端点。