Memecahkan masalah kesalahan untuk Spark AWS Glue - AWS Glue
Kesalahan: Sumber daya tidak tersediaKesalahan: Tidak dapat menemukan titik akhir S3 atau gateway NAT untuk SubnetID di VPCKesalahan: Aturan masuk dalam grup keamanan diperlukanKesalahan: Aturan keluar dalam grup keamanan diperlukanKesalahan: Job run gagal karena peran yang diteruskan harus diberikan izin peran untuk layanan AWS GlueKesalahan: DescribeVpcEndpoints tindakan tidak sah. tidak dapat memvalidasi VPC ID vpc-idKesalahan: DescribeRouteTables tindakan tidak sah. tidak dapat memvalidasi subnet id: Subnet-ID di VPC id: vpc-idKesalahan: Gagal memanggil ec2: DescribeSubnetsKesalahan: Gagal memanggil ec2: DescribeSecurityGroupsKesalahan: Tidak dapat menemukan subnet untuk AZKesalahan: Pengecualian Job run saat menulis ke target JDBCKesalahan: Amazon S3: Operasi tidak valid untuk kelas penyimpanan objekKesalahan: Batas waktu Amazon S3Kesalahan: Akses Amazon S3 ditolakKesalahan: ID kunci akses Amazon S3 tidak adaKesalahan: Job run gagal saat mengakses Amazon S3 dengan URI s3a://Kesalahan: Token layanan Amazon S3 kedaluwarsaKesalahan: Tidak ada DNS pribadi untuk antarmuka jaringan yang ditemukanKesalahan: Penyediaan titik akhir pengembangan gagalKesalahan: Server notebook CREATE_FAILEDKesalahan: Notebook lokal gagal memulaiKesalahan: Menjalankan crawler gagalKesalahan: Partisi tidak diperbaruiKesalahan: Pembaruan bookmark Job gagal karena ketidakcocokan versiKesalahan: Pekerjaan memproses ulang data saat bookmark pekerjaan diaktifkanKesalahan: Perilaku failover antara VPC di AWS Glue

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memecahkan masalah kesalahan untuk Spark AWS Glue

Jika Anda mengalami kesalahan AWS Glue, gunakan solusi berikut untuk membantu Anda menemukan sumber masalah dan memperbaikinya.

Topik

Kesalahan: Sumber daya tidak tersedia

Jika AWS Glue menampilkan pesan sumber daya yang tidak tersedia, Anda dapat melihat pesan kesalahan atau log untuk membantu Anda mempelajari lebih lanjut tentang masalah tersebut. Tugas berikut menjelaskan metode umum untuk menyelesaikan masalah.

  • Untuk koneksi dan titik akhir pengembangan yang Anda gunakan, periksa apakah klaster Anda tidak kehabisan antarmuka jaringan elastis.

Kesalahan: Tidak dapat menemukan titik akhir S3 atau gateway NAT untuk SubnetID di VPC

Periksa ID subnet dan ID VPC dalam pesan tersebut untuk membantu Anda mendiagnosis masalahnya.

  • Periksa apakah Anda telah menyiapkan VPC endpoint Amazon S3, yang diperlukan dengan AWS Glue. Selain itu, periksa gateway NAT Anda apakah sudah menjadi bagian dari konfigurasi Anda. Untuk informasi selengkapnya, lihat Amazon VPC endpoint untuk Amazon S3.

Kesalahan: Aturan masuk dalam grup keamanan diperlukan

Setidaknya harus ada satu grup keamanan yang membuka semua port ingress-nya. Untuk membatasi lalu lintas, grup keamanan sumber dalam aturan inbound Anda dapat dibatasi untuk grup keamanan yang sama.

Kesalahan: Aturan keluar dalam grup keamanan diperlukan

Setidaknya harus ada satu grup keamanan yang membuka semua port egress-nya. Untuk membatasi lalu lintas, grup keamanan sumber dalam aturan outbound Anda dapat dibatasi untuk grup keamanan yang sama.

Kesalahan: Job run gagal karena peran yang diteruskan harus diberikan izin peran untuk layanan AWS Glue

Pengguna yang mendefinisikan tugas harus memiliki izin untuk iam:PassRole untuk AWS Glue.

Kesalahan: DescribeVpcEndpoints tindakan tidak sah. tidak dapat memvalidasi VPC ID vpc-id

  • Periksa kebijakan yang diteruskan AWS Glue untuk ec2:DescribeVpcEndpoints mendapatkan izin.

Kesalahan: DescribeRouteTables tindakan tidak sah. tidak dapat memvalidasi subnet id: Subnet-ID di VPC id: vpc-id

  • Periksa kebijakan yang diteruskan AWS Glue untuk ec2:DescribeRouteTables mendapatkan izin.

Kesalahan: Gagal memanggil ec2: DescribeSubnets

  • Periksa kebijakan yang diteruskan AWS Glue untuk ec2:DescribeSubnets mendapatkan izin.

Kesalahan: Gagal memanggil ec2: DescribeSecurityGroups

  • Periksa kebijakan yang diteruskan AWS Glue untuk ec2:DescribeSecurityGroups mendapatkan izin.

Kesalahan: Tidak dapat menemukan subnet untuk AZ

  • Availability Zone mungkin tidak tersedia untuk AWS Glue. Membuat dan menggunakan subnet baru di Availability Zone yang berbeda dari yang ditentukan dalam pesan.

Kesalahan: Pengecualian Job run saat menulis ke target JDBC

Ketika Anda menjalankan sebuah tugas yang menulis ke target JDBC, tugas mungkin mengalami kesalahan dalam skenario berikut:

  • Jika tugas Anda menulis ke sebuah tabel Microsoft SQL Server, dan tabel tersebut memiliki kolom yang didefinisikan sebagai jenis Boolean, maka tabel harus ditentukan sebelumnya dalam basis data SQL Server. Saat Anda menentukan pekerjaan di AWS Glue konsol menggunakan target SQL Server dengan opsi Buat tabel di target data Anda, jangan memetakan kolom sumber apa pun ke kolom target dengan tipe Boolean data. Anda mungkin mengalami kesalahan saat tugas berjalan.

    Anda dapat menghindari kesalahan tersebut dengan melakukan hal berikut:

    • Pilih tabel yang ada yang mempunyai kolom Boolean.

    • Edit transformasi ApplyMapping dan petakan kolom Boolean di sumber ke nomor atau string dalam target.

    • Edit transformasi ApplyMapping untuk menghapus kolom Boolean dari sumber.

  • Jika tugas Anda menulis ke tabel Oracle, maka Anda mungkin perlu menyesuaikan panjang nama objek Oracle. Dalam beberapa versi Oracle, panjang pengenal maksimum terbatas pada 30 byte atau 128 byte. Batas ini mempengaruhi nama tabel dan nama kolom dari penyimpanan data target Oracle.

    Anda dapat menghindari kesalahan tersebut dengan melakukan hal berikut:

    • Berikan nama pada tabel target Oracle dengan panjang yang masih dalam batas untuk versi Anda.

    • Nama kolom default dihasilkan dari nama bidang dalam data. Untuk menangani kasus ketika nama kolom lebih panjang dari batas yang berlaku, gunakan transformasi ApplyMapping atau RenameField untuk mengubah nama kolom sehingga masih dalam batas.

Kesalahan: Amazon S3: Operasi tidak valid untuk kelas penyimpanan objek

Jika AWS Glue mengembalikan kesalahan ini, AWS Glue pekerjaan Anda mungkin membaca data dari tabel yang memiliki partisi di seluruh tingkatan kelas penyimpanan Amazon S3.

  • Dengan menggunakan pengecualian kelas penyimpanan, Anda dapat memastikan bahwa AWS Glue pekerjaan Anda akan bekerja pada tabel yang memiliki partisi di seluruh tingkatan kelas penyimpanan ini. Tanpa pengecualian, pekerjaan yang membaca data dari tingkatan ini gagal dengan kesalahan berikut:. AmazonS3Exception: The operation is not valid for the object's storage class

    Untuk informasi selengkapnya, lihat Tidak termasuk kelas penyimpanan Amazon S3.

Kesalahan: Batas waktu Amazon S3

Jika AWS Glue mengembalikan kesalahan kehabisan waktu koneksi, itu mungkin karena mencoba mengakses bucket Amazon S3 di AWS Wilayah lain.

  • Titik akhir VPC Amazon S3 hanya dapat merutekan lalu lintas ke bucket dalam suatu Wilayah. AWS Jika Anda perlu connect ke bucket di Wilayah lain, solusi yang mungkin adalah dengan menggunakan gateway NAT. Untuk informasi selengkapnya, lihat Gateway NAT.

Kesalahan: Akses Amazon S3 ditolak

Jika AWS Glue mengembalikan kesalahan akses ditolak ke bucket atau objek Amazon S3, itu mungkin karena peran IAM yang diberikan tidak memiliki kebijakan dengan izin ke penyimpanan data Anda.

  • Tugas ETL harus memiliki akses ke penyimpanan data Amazon S3 yang digunakan sebagai sumber atau target. Sebuah crawler harus memiliki akses ke penyimpanan data Amazon S3 yang di-crawling-nya. Untuk informasi selengkapnya, lihat Langkah 2: Buat peran IAM untuk AWS Glue.

Kesalahan: ID kunci akses Amazon S3 tidak ada

Jika AWS Glue mengembalikan ID kunci akses tidak ada kesalahan saat menjalankan pekerjaan, itu mungkin karena salah satu alasan berikut:

  • Tugas ETL menggunakan sebuah IAM role untuk mengakses penyimpanan data, konfirmasi bahwa IAM role untuk tugas Anda tidak dihapus sebelum tugas dimulai.

  • IAM role berisi izin untuk mengakses penyimpanan data Anda, konfirmasi bahwa kebijakan Amazon S3 yang dilampirkan berisi s3:ListBucket yang benar.

Kesalahan: Job run gagal saat mengakses Amazon S3 dengan URI s3a://

Jika eksekusi tugas mengembalikan kesalahan seperti Gagal mengurai dokumen XML dengan kelas handler, itu mungkin karena kegagalan mencoba mencantumkan ratusan file menggunakan URI s3a://. Mengakses penyimpanan data Anda menggunakan URI s3:// sebagai gantinya. Jejak pengecualian berikut menyoroti kesalahan untuk mencari:

1. com.amazonaws.SdkClientException: Failed to parse XML document with handler class com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser$ListBucketHandler 2. at com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.parseXmlInputStream(XmlResponsesSaxParser.java:161) 3. at com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.parseListBucketObjectsResponse(XmlResponsesSaxParser.java:317) 4. at com.amazonaws.services.s3.model.transform.Unmarshallers$ListObjectsUnmarshaller.unmarshall(Unmarshallers.java:70) 5. at com.amazonaws.services.s3.model.transform.Unmarshallers$ListObjectsUnmarshaller.unmarshall(Unmarshallers.java:59) 6. at com.amazonaws.services.s3.internal.S3XmlResponseHandler.handle(S3XmlResponseHandler.java:62) 7. at com.amazonaws.services.s3.internal.S3XmlResponseHandler.handle(S3XmlResponseHandler.java:31) 8. at com.amazonaws.http.response.AwsResponseHandlerAdapter.handle(AwsResponseHandlerAdapter.java:70) 9. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleResponse(AmazonHttpClient.java:1554) 10. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1272) 11. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1056) 12. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:743) 13. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717) 14. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699) 15. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667) 16. at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649) 17. at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513) 18. at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4325) 19. at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4272) 20. at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4266) 21. at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:834) 22. at org.apache.hadoop.fs.s3a.S3AFileSystem.getFileStatus(S3AFileSystem.java:971) 23. at org.apache.hadoop.fs.s3a.S3AFileSystem.deleteUnnecessaryFakeDirectories(S3AFileSystem.java:1155) 24. at org.apache.hadoop.fs.s3a.S3AFileSystem.finishedWrite(S3AFileSystem.java:1144) 25. at org.apache.hadoop.fs.s3a.S3AOutputStream.close(S3AOutputStream.java:142) 26. at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.close(FSDataOutputStream.java:74) 27. at org.apache.hadoop.fs.FSDataOutputStream.close(FSDataOutputStream.java:108) 28. at org.apache.parquet.hadoop.ParquetFileWriter.end(ParquetFileWriter.java:467) 29. at org.apache.parquet.hadoop.InternalParquetRecordWriter.close(InternalParquetRecordWriter.java:117) 30. at org.apache.parquet.hadoop.ParquetRecordWriter.close(ParquetRecordWriter.java:112) 31. at org.apache.spark.sql.execution.datasources.parquet.ParquetOutputWriter.close(ParquetOutputWriter.scala:44) 32. at org.apache.spark.sql.execution.datasources.FileFormatWriter$SingleDirectoryWriteTask.releaseResources(FileFormatWriter.scala:252) 33. at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask$3.apply(FileFormatWriter.scala:191) 34. at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask$3.apply(FileFormatWriter.scala:188) 35. at org.apache.spark.util.Utils$.tryWithSafeFinallyAndFailureCallbacks(Utils.scala:1341) 36. at org.apache.spark.sql.execution.datasources.FileFormatWriter$.org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask(FileFormatWriter.scala:193) 37. at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1$$anonfun$3.apply(FileFormatWriter.scala:129) 38. at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1$$anonfun$3.apply(FileFormatWriter.scala:128) 39. at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87) 40. at org.apache.spark.scheduler.Task.run(Task.scala:99) 41. at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:282) 42. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 43. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 44. at java.lang.Thread.run(Thread.java:748)

Kesalahan: Token layanan Amazon S3 kedaluwarsa

Saat memindahkan data ke dan dari Amazon Redshift dengan menggunakan kredensial Amazon S3 sementara yang kedaluwarsa setelah 1 jam. Jika Anda memiliki tugas yang berjalan lama, ia mungkin gagal. Untuk informasi tentang cara menyiapkan tugas yang berjalan lama Anda untuk memindahkan data ke dan dari Amazon Redshift, lihat aws-glue-programming-etl-connect-redshift-home.

Kesalahan: Tidak ada DNS pribadi untuk antarmuka jaringan yang ditemukan

Jika tugas gagal atau titik akhir pengembangan gagal untuk penyediaan, hal itu mungkin karena masalah dalam penyiapan jaringan.

  • Jika Anda menggunakan DNS yang disediakan Amazon, nilai enableDnsHostnames harus diatur ke BETUL. Untuk informasi lebih lanjut, lihat DNS.

Kesalahan: Penyediaan titik akhir pengembangan gagal

Jika AWS Glue gagal menyediakan titik akhir pengembangan dengan sukses, itu mungkin karena masalah dalam pengaturan jaringan.

  • Ketika Anda menentukan titik akhir pengembangan, VPC, subnet, dan grup keamanan divalidasi untuk mengonfirmasi apakah mereka memenuhi persyaratan yang ditentukan.

  • Jika Anda memberikan kunci publik SSH opsional, periksa apakah kunci tersebut adalah kunci publik SSH yang benar.

  • Periksa di konsol VPC bahwa VPC Anda menggunakan Set opsi DHCP. Untuk informasi selengkapnya, lihat Set opsi DHCP.

  • Jika klaster tetap dalam status PROVISSIONING, kontak AWS Support.

Kesalahan: Server notebook CREATE_FAILED

Jika AWS Glue gagal membuat server notebook untuk titik akhir pengembangan, itu mungkin karena salah satu masalah berikut:

  • AWS Glue meneruskan peran IAM ke Amazon EC2 saat menyiapkan server notebook. IAM role harus memiliki hubungan kepercayaan dengan Amazon EC2.

  • IAM role harus memiliki profil instans dengan nama yang sama. Ketika Anda membuat peran untuk Amazon EC2 dengan konsol IAM, profil instans dengan nama yang sama secara otomatis dibuat. Periksa kesalahan dalam log terkait dengan nama profil instans iamInstanceProfile.name yang tidak valid. Untuk informasi selengkapnya, lihat Menggunakan Profil Instance.

  • Periksa apakah peran Anda memiliki izin untuk mengakses bucket aws-glue* dalam kebijakan yang Anda berikan untuk membuat notebook server.

Kesalahan: Notebook lokal gagal memulai

Jika notebook lokal Anda gagal untuk memulai dan melaporkan kesalahan bahwa direktori atau folder tidak dapat ditemukan, hal itu mungkin karena terjadinya salah satu masalah berikut:

  • Jika Anda menjalankan pada Microsoft Windows, pastikan bahwa variabel lingkungan JAVA_HOME mengarahkan ke direktori Java yang benar. Dimungkinkan untuk memperbarui Java tanpa memperbarui variabel ini, dan jika menunjuk ke folder yang tidak ada lagi, notebook Jupyter gagal untuk memulai.

Kesalahan: Menjalankan crawler gagal

Jika AWS Glue gagal menjalankan crawler dengan sukses untuk membuat katalog data Anda, itu mungkin karena salah satu alasan berikut. Pertama periksa apakah ada kesalahan yang tercantum dalam daftar crawler konsol AWS Glue . Periksa apakah ada ikon tanda seru di samping nama crawler dan arahkan kursor ke ikon tersebut untuk melihat pesan terkait.

  • Periksa log untuk crawler yang dijalankan di CloudWatch Log di bawah/aws-glue/crawlers.

Kesalahan: Partisi tidak diperbarui

Jika partisi Anda tidak diperbarui di Katalog Data saat Anda menjalankan pekerjaan ETL, pernyataan log ini dari DataSink kelas di CloudWatch log dapat membantu:

  • "Attempting to fast-forward updates to the Catalog - nameSpace:"  —  Menunjukkan basis data mana, tabel, dan catalogId mana yang berusaha untuk dimodifikasi oleh tugas ini. Jika pernyataan ini tidak ada, periksa apakah enableUpdateCatalog diatur ke BETUL dan diberikan dengan semestinya sebagai parameter getSink() atau di additional_options.

  • "Schema change policy behavior:"  —  Menunjukkan nilai skema updateBehavior yang Anda berikan.

  • "Schemas qualify (schema compare):"  —  Bisa BETUL atau SALAH.

  • "Schemas qualify (case-insensitive compare):"  —  Bisa BETUL atau SALAH.

  • Jika keduanya salah dan Anda tidak updateBehavior disetel ke UPDATE_IN_DATABASE, maka DynamicFrame skema Anda harus identik atau berisi subset kolom yang terlihat dalam skema tabel Katalog Data.

Untuk informasi selengkapnya tentang memperbarui partisi, lihatMemperbarui skema, dan menambahkan partisi baru di Katalog Data menggunakan AWS Glue pekerjaan ETL.

Kesalahan: Pembaruan bookmark Job gagal karena ketidakcocokan versi

Anda mungkin mencoba membuat parameter AWS Glue pekerjaan untuk menerapkan transformasi/logika yang sama pada kumpulan data yang berbeda di Amazon S3. Anda ingin melacak file yang diproses di lokasi yang disediakan. Saat Anda menjalankan pekerjaan yang sama pada bucket sumber yang sama dan menulis ke tujuan yang sama/berbeda secara bersamaan (konkurensi> 1) pekerjaan gagal dengan kesalahan ini:

py4j.protocol.Py4JJavaError: An error occurred while callingz:com.amazonaws.services.glue.util.Job.commit.:com.amazonaws.services.gluejobexecutor.model.VersionMismatchException: Continuation update failed due to version mismatch. Expected version 2 but found version 3

Solusi: atur konkurensi ke 1 atau jangan menjalankan pekerjaan secara bersamaan.

Saat ini AWS Glue bookmark tidak mendukung proses pekerjaan bersamaan dan komit akan gagal.

Kesalahan: Pekerjaan memproses ulang data saat bookmark pekerjaan diaktifkan

Mungkin ada kasus ketika Anda telah mengaktifkan bookmark AWS Glue pekerjaan, tetapi tugas ETL Anda memproses ulang data yang sudah diproses dalam proses sebelumnya. Periksa penyebab-penyebab umum kesalahan ini:

Konkurensi Maksimum

Menyetel jumlah maksimum proses bersamaan untuk pekerjaan yang lebih besar dari nilai default 1 dapat mengganggu bookmark pekerjaan. Hal ini dapat terjadi ketika bookmark pekerjaan memeriksa waktu modifikasi terakhir dari objek untuk memverifikasi objek mana yang perlu diproses ulang. Untuk informasi selengkapnya, lihat pembahasan konkurensi maksimum di Mengkonfigurasi properti pekerjaan untuk pekerjaan Spark di AWS Glue.

Objek Tugas Tidak Ada

Pastikan bahwa skrip eksekusi tugas Anda berakhir dengan melakukan commit berikut:

job.commit()

Saat Anda menyertakan objek ini, AWS Glue catat stempel waktu dan jalur pekerjaan yang dijalankan. Jika Anda menjalankan pekerjaan lagi dengan jalur yang sama, hanya AWS Glue memproses file baru. Jika Anda tidak menyertakan objek ini dan bookmark tugas diaktifkan, maka tugas akan memproses ulang file yang sudah diproses bersama dengan file baru dan membuat redundansi di penyimpanan data target tugas.

Parameter Konteks Transformasi Tidak Ada

Konteks transformasi adalah parameter opsional dalam GlueContext, namun bookmark tugas tidak akan berfungsi jika Anda tidak memasukkannya. Untuk mengatasi kesalahan ini, tambahkan parameter konteks transformasi saat Anda membuat DynamicFrame, seperti yang ditunjukkan berikut:

sample_dynF=create_dynamic_frame_from_catalog(database, table_name,transformation_ctx="sample_dynF")
Sumber Input

Jika Anda menggunakan basis data relasional (koneksi JDBC) untuk sumber input, maka bookmark tugas hanya akan berfungsi jika kunci primer tabel berada dalam urutan yang berurutan. Bookmark tugas bekerja untuk baris baru, tetapi tidak untuk baris yang diperbarui. Hal itu karena bookmark tugas mencari kunci primer, yang sudah ada. Hal ini tidak berlaku jika sumber input Anda adalah Amazon Simple Storage Service (Amazon S3).

Waktu Terakhir Dimodifikasi

Untuk sumber input Amazon S3, bookmark tugas memeriksa waktu modifikasi terakhir atas objek, bukan nama file, untuk memverifikasi objek mana yang perlu diproses ulang. Jika data sumber masukan Anda telah dimodifkasi sejak eksekusi tugas terakhir Anda, maka file akan diproses kembali ketika Anda menjalankan tugas itu lagi.

Kesalahan: Perilaku failover antara VPC di AWS Glue

Proses berikut digunakan untuk failover untuk pekerjaan di AWS Glue 4.0 dan versi sebelumnya.

Ringkasan: AWS Glue koneksi dipilih pada saat pekerjaan dijalankan. Jika job run mengalami beberapa masalah, (kurangnya alamat IP, konektivitas ke sumber, masalah routing), job run akan gagal. Jika percobaan ulang dikonfigurasi, AWS Glue akan mencoba lagi dengan koneksi yang sama.

  1. Untuk setiap upaya run, AWS Glue akan memeriksa kesehatan koneksi dalam urutan yang tercantum dalam konfigurasi pekerjaan, diberikan sampai menemukan satu yang dapat digunakan. Dalam kasus kegagalan Availability Zone (AZ), koneksi dari AZ tersebut akan gagal dalam pemeriksaan dan akan dilewati.

  2. AWS Glue memvalidasi koneksi dengan yang berikut:

    • memeriksa id dan subnet Amazon VPC yang valid.

    • memeriksa apakah gateway NAT atau titik akhir VPC Amazon ada.

    • memeriksa bahwa subnet memiliki lebih dari 0 alamat IP yang dialokasikan.

    • memeriksa apakah AZ sehat.

    AWS Glue tidak dapat memverifikasi konektivitas pada saat pengajuan pekerjaan dijalankan.

  3. Untuk pekerjaan yang menggunakan Amazon VPC, semua driver dan pelaksana akan dibuat di AZ yang sama dengan koneksi yang dipilih pada saat pengiriman pekerjaan dijalankan.

  4. Jika percobaan ulang dikonfigurasi, AWS Glue akan mencoba lagi dengan koneksi yang sama. Ini karena kami tidak dapat menjamin masalah dengan koneksi ini berjalan lama. Jika AZ gagal, pekerjaan yang ada berjalan (tergantung pada tahap pekerjaan yang dijalankan) di AZ tersebut dapat gagal. Coba lagi harus mendeteksi kegagalan AZ dan memilih AZ lain untuk proses baru.