Halaman ini menunjukkan cara menyelesaikan masalah pada pipeline batch Cloud Data Fusion.
Error pipeline: File teks sedang digunakan
Error berikut terjadi saat Anda menjalankan pipeline batch, sehingga menyebabkan kegagalan:
error=26, Text file busy
Untuk mengatasi masalah ini, siapkan pemicu yang otomatis mencoba lagi pipeline saat gagal.
- Hentikan pipeline.
- Membuat pemicu. Dalam hal ini, saat Anda memilih peristiwa untuk dieksekusi, pilih Gagal. Untuk mengetahui informasi selengkapnya, lihat Membuat pemicu inbound di pipeline downstream.
- Mulai pipeline.
Pipeline serentak macet
Di Cloud Data Fusion, menjalankan banyak pipeline batch secara bersamaan dapat membebani instance, sehingga menyebabkan tugas macet dalam status Starting, Provisioning, atau Running. Akibatnya, pipeline tidak dapat dihentikan melalui antarmuka web atau panggilan API. Jika Anda menjalankan banyak pipeline secara bersamaan, antarmuka web dapat menjadi lambat atau tidak responsif. Masalah ini terjadi karena beberapa permintaan UI
yang dibuat ke handler HTTP di backend.
Untuk mengatasi masalah ini, kontrol jumlah permintaan baru menggunakan kontrol alur Cloud Data Fusion.
Waktu koneksi SSH habis saat menjalankan pipeline
Error berikut terjadi saat Anda menjalankan pipeline batch:
java.io.IOException: com.jcraft.jsch.JSchException:
java.net.ConnectException: Connection timed out (Connection timed out)
Untuk mengatasi masalah ini, lakukan langkah berikut:
- Periksa aturan firewall yang tidak ada (biasanya port 22). Untuk membuat aturan firewall baru, lihat Konfigurasi jaringan cluster Managed Service for Apache Spark.
- Periksa apakah penegak Compute Engine mengizinkan koneksi antara instance Cloud Data Fusion dan cluster Managed Service for Apache Spark.
Kode respons: 401. Error: error tidak diketahui
Error berikut terjadi saat Anda menjalankan pipeline batch:
java.io.IOException: Failed to send message for program run program_run:
Response code: 401. Error: unknown error
Untuk mengatasi masalah ini, Anda harus
memberikan peran Cloud Data Fusion Runner (roles/datafusion.runner)
ke akun layanan yang digunakan oleh Managed Service for Apache Spark.
Pipeline dengan plugin BigQuery gagal dengan error Access Denied
Ada masalah umum saat pipeline gagal dengan error Access Denied saat menjalankan tugas BigQuery. Hal ini memengaruhi pipeline yang menggunakan plugin berikut:
- Sumber BigQuery
- Sink BigQuery
- Tujuan BigQuery Multi Table
- Pushdown Transformasi
Contoh error dalam log (mungkin berbeda bergantung pada plugin yang Anda gunakan):
POST https://bigquery.googleapis.com/bigquery/v2/projects/PROJECT_ID/jobs
{
"code" : 403,
"errors" : [ {
"domain" : "global",
"message" : "Access Denied: Project xxxx: User does not have bigquery.jobs.create permission in project PROJECT_ID",
"reason" : "accessDenied"
} ],
"message" : "Access Denied: Project PROJECT_ID: User does not have bigquery.jobs.create permission in project PROJECT_ID.",
"status" : "PERMISSION_DENIED"
}
Dalam contoh ini, PROJECT_ID adalah project ID yang Anda tentukan di plugin. Akun layanan untuk project yang ditentukan dalam plugin tidak memiliki izin untuk melakukan setidaknya salah satu hal berikut:
- Menjalankan tugas BigQuery
- Membaca set data BigQuery
- Membuat bucket sementara
- Membuat set data BigQuery
- Membuat tabel BigQuery
Untuk mengatasi masalah ini, berikan peran yang tidak ada ke project (PROJECT_ID) yang Anda tentukan di plugin:
Untuk menjalankan tugas BigQuery, berikan peran BigQuery Job User (
roles/bigquery.jobUser).Untuk membaca set data BigQuery, berikan peran BigQuery Data Viewer (
roles/bigquery.dataViewer).Untuk membuat bucket sementara, berikan peran Storage Admin (
roles/storage.admin).Untuk membuat set data atau tabel BigQuery, berikan peran BigQuery Data Editor (
roles/bigquery.dataEditor).
Untuk mengetahui informasi selengkapnya, lihat dokumentasi pemecahan masalah plugin (Pemecahan Masalah Multi Table Sink Google BigQuery).
Pipeline tidak berhenti pada batas error
Pipeline mungkin tidak berhenti setelah beberapa error, meskipun Anda menetapkan batas error ke 1.
Nilai minimum error ditujukan untuk pengecualian apa pun yang muncul dari direktif jika terjadi kegagalan yang tidak ditangani. Jika direktif sudah menggunakan emitError API, maka batas error tidak diaktifkan.
Untuk mendesain pipeline yang gagal saat nilai minimum tertentu tercapai, gunakan
perintah FAIL.
Setiap kali kondisi yang diteruskan ke direktif FAIL terpenuhi, kondisi tersebut akan dihitung
terhadap batas error dan pipeline akan gagal setelah batas tercapai.
Menghapus cluster Managed Service for Apache Spark sementara
Saat Cloud Data Fusion membuat cluster Managed Service for Apache Spark sementara selama penyediaan eksekusi pipeline, cluster akan dihapus setelah eksekusi pipeline selesai. Dalam kasus yang jarang terjadi, penghapusan cluster gagal.
Sangat direkomendasikan: Upgrade ke versi Cloud Data Fusion terbaru untuk memastikan pemeliharaan cluster yang tepat.
Menetapkan Waktu Tidak Aktif Maksimum
Untuk mengatasi masalah ini, konfigurasi opsi Max Idle Time. Hal ini memungkinkan Managed Service for Apache Spark menghapus cluster secara otomatis, meskipun
panggilan eksplisit pada penyelesaian pipeline gagal.
Max Idle Time tersedia di Cloud Data Fusion versi 6.4 dan yang lebih baru.
Direkomendasikan: Untuk versi sebelum 6.6, setel Max Idle Time secara manual ke 30
menit atau lebih.
Menghapus cluster secara manual
Jika Anda tidak dapat mengupgrade versi atau mengonfigurasi opsi Max Idle Time, hapus cluster yang tidak aktif secara manual:
Dapatkan setiap project ID tempat cluster dibuat:
Di argumen runtime pipeline, periksa apakah project ID Managed Service for Apache Spark disesuaikan untuk run.

Jika ID project Managed Service for Apache Spark tidak ditentukan secara eksplisit, tentukan penyedia yang digunakan, lalu periksa ID project:
Di argumen runtime pipeline, periksa nilai
system.profile.name.
Buka setelan penyedia dan periksa apakah ID project Managed Service for Apache Spark telah ditetapkan. Jika setelan tidak ada atau kolom kosong, project tempat instance Cloud Data Fusion berjalan akan digunakan.
Untuk setiap project:
Buka project di konsol Google Cloud , lalu buka halaman Managed Service for Apache Spark Clusters.
Urutkan cluster berdasarkan tanggal pembuatannya, dari yang terlama hingga yang terbaru.
Jika panel info disembunyikan, klik Tampilkan panel info dan buka tab Label.
Untuk setiap cluster yang tidak digunakan—misalnya, lebih dari satu hari telah berlalu—periksa apakah cluster tersebut memiliki label versi Cloud Data Fusion. Hal ini menunjukkan bahwa file tersebut dibuat oleh Cloud Data Fusion.
Pilih kotak centang di samping nama cluster, lalu klik Hapus.
Pipeline gagal saat dijalankan di cluster Managed Service for Apache Spark dengan worker primer atau sekunder
Di Cloud Data Fusion versi 6.8 dan 6.9, terjadi masalah yang menyebabkan pipeline gagal jika dijalankan di cluster Managed Service for Apache Spark:
ERROR [provisioning-task-2:i.c.c.i.p.t.ProvisioningTask@161] - PROVISION task failed in REQUESTING_CREATE state for program run program_run:default.APP_NAME.UUID.workflow.DataPipelineWorkflow.RUN_ID due to
Caused by: io.grpc.StatusRuntimeException: CANCELLED: Failed to read message.
Caused by: com.google.protobuf.GeneratedMessageV3$Builder.parseUnknownField(Lcom/google/protobuf/CodedInputStream;Lcom/google/protobuf/ExtensionRegistryLite;I)Z.
Untuk mengatasi masalah ini,
upgrade ke revisi patch
6.8.3.1, 6.9.2.1, atau yang lebih baru.
Plugin Cloud Storage gagal secara berkala dengan ekspresi reguler di Managed Service for Apache Spark 2.0
Pipeline mungkin gagal secara berkala di Cloud Data Fusion versi 6.10.1 saat plugin Cloud Storage menggunakan pola ekspresi reguler * di jalur dan lingkungan eksekusinya adalah Managed Service for Apache Spark 2.0.
Untuk mengatasi masalah ini, lakukan salah satu tindakan berikut:
- Update image Managed Service for Apache Spark ke versi 2.1 atau yang lebih baru.
- Kembali ke versi plugin Cloud Storage sebelumnya.
- Tingkatkan memori yang dialokasikan untuk eksekutor Managed Service for Apache Spark.
Pipeline gagal dengan NoSuchMethodError di Managed Service for Apache Spark 2.2
Di Cloud Data Fusion versi 6.10.1.1 dan yang lebih baru, pipeline mungkin gagal dengan error berikut saat berjalan di Managed Service for Apache Spark 2.2:
java.lang.NoSuchMethodError: 'org.apache.spark.sql.catalyst.encoders.ExpressionEncoder
org.apache.spark.sql.catalyst.encoders.RowEncoder.apply(org.apache.spark.sql.types.StructType)'
Untuk mengatasi masalah ini, lakukan salah satu tindakan berikut:
- Mengonfigurasi ulang image Managed Service for Apache Spark ke versi 2.1. Untuk mengetahui informasi selengkapnya, lihat Mengubah versi image Managed Service for Apache Spark di Cloud Data Fusion.
- Mengupgrade instance Cloud Data Fusion Anda ke versi 6.11.
Plugin Multiple database tables gagal jika Nama Referensi berisi spasi
Di Cloud Data Fusion versi 6.10.1 dan yang lebih baru, pipeline yang menggunakan sumber batch Beberapa tabel database mungkin gagal jika kolom Nama Referensi berisi karakter spasi.
Untuk mengatasi masalah ini, update plugin Multiple database tables ke versi 1.4.1 atau yang lebih baru dari Hub. Versi yang diperbarui tidak mengizinkan spasi di kolom Nama Referensi.