Memantau dan men-debug alur kerja

Halaman ini memberikan informasi untuk membantu Anda memantau dan men-debug alur kerja Dataproc.

Mencantumkan alur kerja

WorkflowTemplate yang dibuat instance-nya disebut "alur kerja" dan dimodelkan sebagai "operasi".

Jalankan perintah gcloud berikut untuk mencantumkan alur kerja project Anda:

gcloud dataproc operations list \
    --region=region \
    --filter="operationType = WORKFLOW"
...
OPERATION_NAME                                                DONE
projects/.../operations/07282b66-2c60-4919-9154-13bd4f03a1f2  True
projects/.../operations/1c0b0fd5-839a-4ad4-9a57-bbb011956690  True

Berikut adalah contoh permintaan untuk mencantumkan semua alur kerja yang dimulai dari template "terasort":

gcloud dataproc operations list \
    --region=region \
    --filter="labels.goog-dataproc-workflow-template-id=terasort"
...
OPERATION_NAME                                     DONE
projects/.../07282b66-2c60-4919-9154-13bd4f03a1f2  True
projects/.../1c0b0fd5-839a-4ad4-9a57-bbb011956690  True

Perhatikan bahwa hanya bagian UUID dari OPERATION_NAME yang digunakan dalam kueri berikutnya.

Menggunakan WorkflowMetadata

Kolom operation.metadata memberikan informasi untuk membantu Anda mendiagnosis kegagalan alur kerja.

Berikut adalah contoh WorkflowMetadata, termasuk grafik node (tugas), yang disematkan dalam operasi:

{
  "name": "projects/my-project/regions/us-central1/operations/671c1d5d-9d24-4cc7-8c93-846e0f886d6e",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.dataproc.v1.WorkflowMetadata",
    "template": "terasort",
    "version": 1,
    "createCluster": {
      "operationId": "projects/my-project/regions/us-central1/operations/8d472870-4a8b-4609-9f7d-48daccb028fc",
      "Done": true
    },
    "graph": {
      "nodes": [
        {
          "stepId": "teragen",
          "jobId": "teragen-vtrprwcgepyny",
          "state": "COMPLETED"
        },
        {
          "stepId": "terasort",
          "prerequisiteStepIds": [
            "teragen"
          ],
          "jobId": "terasort-vtrprwcgepyny",
          "state": "FAILED",
          "error": "Job failed"
        },
        {
          "stepId": "teravalidate",
          "prerequisiteStepIds": [
            "terasort"
          ],
          "state": "FAILED",
          "error": "Skipped, node terasort failed"
        }
      ]
    },
    "deleteCluster": {
      "operationId": "projects/my-project/regions/us-central1/operations/9654c67b-2642-4142-a145-ca908e7c81c9",
      "Done": true
    },
    "state": "DONE",
    "clusterName": "terasort-cluster-vtrprwcgepyny"
  },
  "done": true,
  "error": {
    "message": "Workflow failed"
  }
}
Done!

Mengambil template

Seperti yang ditunjukkan pada contoh sebelumnya, metadata berisi ID dan versi template.

"template": "terasort",
"version": 1,

Jika template tidak dihapus, versi template yang dibuat instance-nya dapat diambil oleh permintaan deskripsi dengan versi.

gcloud dataproc workflow-templates describe terasort \
    --region=region \
    --version=1

Buat daftar operasi cluster yang dimulai oleh template:

gcloud dataproc operations list \
    --region=region \
    --filter="labels.goog-dataproc-workflow-instance-id = 07282b66-2c60-4919-9154-13bd4f03a1f2"
...
OPERATION_NAME                                     DONE
projects/.../cf9ce692-d6c9-4671-a909-09fd62041024  True
projects/.../1bbaefd9-7fd9-460f-9adf-ee9bc448b8b7  True

Berikut adalah contoh permintaan untuk mencantumkan tugas yang dikirimkan dari template:

gcloud dataproc jobs list \
    --region=region \
    --filter="labels.goog-dataproc-workflow-template-id = terasort"
...
JOB_ID                TYPE     STATUS
terasort2-ci2ejdq2ta7l6  pyspark  DONE
terasort2-ci2ejdq2ta7l6  pyspark  DONE
terasort1-ci2ejdq2ta7l6  pyspark  DONE
terasort3-3xwsy6ubbs4ak  pyspark  DONE
terasort2-3xwsy6ubbs4ak  pyspark  DONE
terasort1-3xwsy6ubbs4ak  pyspark  DONE
terasort3-ajov4nptsllti  pyspark  DONE
terasort2-ajov4nptsllti  pyspark  DONE
terasort1-ajov4nptsllti  pyspark  DONE
terasort1-b262xachbv6c4  pyspark  DONE
terasort1-cryvid3kreea2  pyspark  DONE
terasort1-ndprn46nesbv4  pyspark  DONE
terasort1-yznruxam4ppxi  pyspark  DONE
terasort1-ttjbhpqmw55t6  pyspark  DONE
terasort1-d7svwzloplbni  pyspark  DONE

Mencantumkan tugas yang dikirimkan dari instance alur kerja:

gcloud dataproc jobs list \
    --region=region \
    --filter="labels.goog-dataproc-workflow-instance-id = 07282b66-2c60-4919-9154-13bd4f03a1f2"
...
JOB_ID                TYPE     STATUS
terasort3-ci2ejdq2ta7l6  pyspark  DONE
terasort2-ci2ejdq2ta7l6  pyspark  DONE
terasort1-ci2ejdq2ta7l6  pyspark  DONE

Waktu tunggu alur kerja

Anda dapat menetapkan waktu tunggu alur kerja yang akan membatalkan alur kerja jika tugas alur kerja tidak selesai dalam periode waktu tunggu. Periode waktu tunggu berlaku untuk DAG (Directed Acyclic Graph) tugas dalam alur kerja (urutan tugas dalam alur kerja), bukan untuk seluruh operasi alur kerja. Periode waktu tunggu dimulai saat tugas alur kerja pertama dimulai, dan tidak mencakup waktu yang diperlukan untuk membuat cluster terkelola. Jika ada tugas yang berjalan di akhir periode waktu tunggu, semua tugas yang berjalan akan dihentikan, alur kerja akan diakhiri, dan jika alur kerja berjalan di cluster terkelola, cluster akan dihapus.

Manfaat: Gunakan fitur ini agar tidak perlu mengakhiri alur kerja secara manual yang tidak selesai karena tugas macet.

Menetapkan waktu tunggu template alur kerja

Anda dapat menetapkan periode waktu tunggu template alur kerja saat membuat template alur kerja. Anda juga dapat menambahkan waktu tunggu alur kerja ke template alur kerja yang ada dengan memperbarui template alur kerja.

gcloud

Untuk menetapkan waktu tunggu alur kerja pada template baru, gunakan flag --dag-timeout dengan perintah gcloud dataproc workflow-templates create. Anda dapat menggunakan akhiran "s", "m", "h", dan "d" untuk menetapkan nilai durasi detik, menit, jam, dan hari. Durasi waktu tunggu harus antara 10 menit ("10m") hingga 24 jam ("24h" atau "1d").

gcloud dataproc workflow-templates create template-id (such as "my-workflow") \
    --region=region \
    --dag-timeout=duration (from "10m" to "24h" or "1d"") \
    ... other args ...

API

Untuk menetapkan waktu tunggu alur kerja, isi kolom WorkflowTemplate dagTimeout sebagai bagian dari permintaan workflowTemplates.create.

Konsol

Saat ini, konsol Google Cloud tidak mendukung pembuatan template alur kerja.

Waktu tunggu pembaruan template alur kerja

Anda dapat memperbarui template alur kerja yang ada untuk mengubah, menambahkan, atau menghapus waktu tunggu alur kerja.

gcloud

Menambahkan atau mengubah waktu tunggu alur kerja

Untuk menambahkan atau mengubah waktu tunggu alur kerja pada template yang ada, gunakan flag --dag-timeout dengan perintah gcloud dataproc workflow-templates set-dag-timeout. Anda dapat menggunakan akhiran "s", "m", "h", dan "d" untuk menetapkan nilai durasi detik, menit, jam, dan hari. Durasi waktu tunggu habis harus dari 10 menit ("10m") hingga 24 jam ("24h").

gcloud dataproc workflow-templates set-dag-timeout template-id (such as "my-workflow") \
    --region=region \
    --dag-timeout=duration (from "10m" to "24h" or "1d")

Menghapus waktu tunggu alur kerja

Untuk menghapus waktu tunggu alur kerja dari template yang ada, gunakan perintah gcloud dataproc workflow-templates remove-dag-timeout.

gcloud dataproc workflow-templates remove-dag-timeout template-id (such as "my-workflow") \
    --region=region

API

Menambahkan atau mengubah waktu tunggu alur kerja

Untuk menambahkan atau mengubah waktu tunggu alur kerja pada template yang ada, perbarui template alur kerja dengan mengisi kolom dagTimeout template dengan nilai waktu tunggu yang baru atau yang diubah.

Menghapus waktu tunggu alur kerja

Untuk menghapus waktu tunggu alur kerja dari template yang ada, perbarui template alur kerja dengan menghapus kolom dagTimeout template.

Konsol

Saat ini, konsol Google Cloud tidak mendukung pembaruan template alur kerja.