Alur kerja pemantauan dan proses debug

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

Alur kerja listingan

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 OPERATION_NAME yang digunakan dalam kueri berikutnya.

Menggunakan WorkflowMetadata

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

Berikut ini 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 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 melalui permintaan deskripsi dengan versi.

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

Menampilkan 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 dikirim 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

Cantumkan tugas yang dikirim 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. Periode ini tidak termasuk waktu yang dibutuhkan untuk membuat cluster terkelola. Jika ada tugas yang berjalan pada akhir periode waktu tunggu, semua tugas yang sedang berjalan akan dihentikan, alur kerja akan berakhir, dan jika alur kerja berjalan pada cluster terkelola, cluster akan dihapus.

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

Menyetel 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 tanda --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 secara berurutan. Durasi waktu tunggu harus dari 10 menit ("10 mnt") hingga 24 jam ("24 jam" atau "1 hari").

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, lengkapi kolom WorkflowTemplate dagTimeout sebagai bagian dari permintaan workflowTemplates.create.

Konsol

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

Memperbarui waktu tunggu 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 sudah 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 secara berurutan. Durasi waktu tunggu harus dari 10 menit ("10 mnt") hingga 24 jam ("24 jam").

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 baru atau yang telah 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 update template alur kerja.