Memecahkan masalah pembuatan cluster

Menggunakan alat gcpdiag

gcpdiag adalah alat open source. Ini bukan produk Google Cloud yang didukung secara resmi. Anda dapat menggunakan alat gcpdiag untuk membantu mengidentifikasi dan memperbaiki masalah project Google Cloud. Untuk mengetahui informasi selengkapnya, lihat project gcpdiag di GitHub.

Alat gcpdiag membantu Anda menemukan masalah pembuatan cluster Dataproc berikut dengan melakukan pemeriksaan berikut:

  • Error kehabisan stok: Mengevaluasi log Logs Explorer untuk menemukan kehabisan stok di wilayah dan zona.
  • Kuota tidak mencukupi: Memeriksa ketersediaan kuota di project cluster Dataproc.
  • Konfigurasi jaringan tidak lengkap: Melakukan pengujian konektivitas jaringan, termasuk pemeriksaan aturan firewall yang diperlukan serta konfigurasi IP eksternal dan internal. Jika cluster telah dihapus, alat gcpdiag tidak dapat melakukan pemeriksaan konektivitas jaringan.
  • Konfigurasi lintas project yang salah: Memeriksa akun layanan lintas project dan meninjau penerapan kebijakan organisasi dan peran tambahan.
  • Peran IAM jaringan Virtual Private Cloud bersama tidak ada: Jika cluster Dataproc menggunakan jaringan VPC Bersama, periksa penambahan peran akun layanan yang diperlukan.
  • Kegagalan tindakan inisialisasi: Mengevaluasi log Logs Explorer untuk menemukan kegagalan dan waktu tunggu habis skrip tindakan inisialisasi.

Untuk mengetahui daftar langkah-langkah pembuatan cluster gcpdiag, lihat Langkah-langkah yang mungkin dilakukan.

Jalankan perintah gcpdiag

Anda dapat menjalankan perintah gcpdiag dari Cloud Shell di konsolGoogle Cloud atau dalam container Docker.

Google Cloud console

  1. Lengkapi, lalu salin perintah berikut.
  2. gcpdiag runbook dataproc/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS
  3. Buka Google Cloud konsol dan aktifkan Cloud Shell.
  4. Buka Konsol Cloud
  5. Tempel perintah yang disalin.
  6. Jalankan perintah gcpdiag, yang mendownload image Docker gcpdiag, lalu melakukan pemeriksaan diagnostik. Jika berlaku, ikuti petunjuk output untuk memperbaiki pemeriksaan yang gagal.

Docker

Anda dapat menjalankan gcpdiag menggunakan wrapper yang memulai gcpdiag dalam container Docker. Docker atau Podman harus diinstal.

  1. Salin dan jalankan perintah berikut di workstation lokal Anda.
    curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
  2. Jalankan perintah gcpdiag.
    ./gcpdiag runbook dataproc/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS

Lihat parameter yang tersedia untuk runbook ini.

Ganti kode berikut:

    • PROJECT_ID: ID project yang berisi resource
    • CLUSTER_NAME: Nama cluster Dataproc target di project Anda
    • OPTIONAL_PARAMETERS: Tambahkan satu atau beberapa parameter opsional berikut. Parameter ini diperlukan jika cluster telah dihapus.
      • cluster_uuid: UUID cluster Dataproc target di project Anda
      • service_account: Cluster Dataproc akun layanan VM
      • subnetwork: Jalur URI lengkap subnetwork cluster Dataproc
      • internal_ip_only: Benar atau Salah
      • cross_project: ID lintas project jika cluster Dataproc menggunakan akun layanan VM di project lain

Flag yang berguna:

Untuk mengetahui daftar dan deskripsi semua flag alat gcpdiag, lihat petunjuk penggunaan gcpdiag.

Memahami dan memperbaiki error pembuatan cluster

Bagian ini mencantumkan pesan error Dataproc, serta penyebab dan solusi umumnya.

  • Waktu operasi habis: Hanya 0 dari 2 datanode/pengelola node minimum yang diperlukan yang berjalan.

    Penyebab: Node pengontrol tidak dapat membuat cluster karena tidak dapat berkomunikasi dengan node pekerja.

    Solusi:

    • Periksa peringatan aturan firewall.
    • Pastikan aturan firewall yang benar telah diterapkan. Untuk mengetahui informasi selengkapnya, lihat Ringkasan aturan firewall Dataproc default.
    • Lakukan uji konektivitas di konsol Google Cloud untuk menentukan apa yang memblokir komunikasi antara node pengontrol dan pekerja.
  • Izin compute.subnetworks.use yang diperlukan untuk projects/{projectId}/regions/{region}/subnetworks/{subnetwork}

    Penyebab: Error ini dapat terjadi saat Anda mencoba menyiapkan cluster Dataproc menggunakan jaringan VPC di project lain dan akun layanan Agen Layanan Dataproc tidak memiliki izin yang diperlukan pada project VPC Bersama yang menghosting jaringan.

    Solusi: Ikuti langkah-langkah yang tercantum dalam Membuat cluster yang menggunakan jaringan VPC di project lain.

  • Zona projects/zones/{zone} tidak memiliki cukup resource yang tersedia untuk memenuhi permintaan (resource type:compute)

    Penyebab: Zona yang digunakan untuk membuat cluster tidak memiliki resource yang cukup.

    Solusi:

  • Error Kuota Terlampaui

    Kuota CPUS/CPUS_ALL_REGIONS tidak mencukupi
    Kuota 'DISKS_TOTAL_GB' tidak mencukupi
    Kuota 'IN_USE_ADDRESSES' tidak mencukupi

    Penyebab: Permintaan CPU, disk, atau alamat IP Anda melampaui kuota yang tersedia.

    Solusi: Minta kuota tambahan dari Google Cloud konsol.

  • Tindakan inisialisasi gagal

    Penyebab: Tindakan inisialisasi yang diberikan selama pembuatan cluster gagal diinstal.

    Solusi:

  • Gagal menginisialisasi node CLUSTER-NAME-m. ... Lihat output di: <gs://PATH_TO_STARTUP_SCRIPT_OUTPUT>

    Penyebab: Node pengontrol cluster Dataproc gagal diinisialisasi.

    Solusi:

  • Pembuatan cluster gagal: Ruang alamat IP habis

    Penyebab: Ruang alamat IP yang diperlukan untuk menyediakan node cluster yang diminta tidak tersedia.

    Solusi:

    • Buat cluster di subnetwork atau jaringan yang berbeda.
    • Kurangi penggunaan di jaringan untuk membebaskan ruang alamat IP.
    • Tunggu hingga ruang IP yang memadai tersedia di jaringan.
  • Pesan error skrip inisialisasi: Repositori REPO_NAME tidak lagi memiliki file Rilis

    Penyebab: Repositori backport oldstable Debian telah dihapus.

    Solusi:

    Tambahkan kode berikut sebelum kode yang menjalankan apt-get dalam skrip inisialisasi Anda.

    oldstable=$(curl -s https://deb.debian.org/debian/dists/oldstable/Release | awk '/^Codename/ {print $2}');
    stable=$(curl -s https://deb.debian.org/debian/dists/stable/Release | awk '/^Codename/ {print $2}');
    
    matched_files="$(grep -rsil '\-backports' /etc/apt/sources.list*)"
    if [[ -n "$matched_files" ]]; then
      for filename in "$matched_files"; do
        grep -e "$oldstable-backports" -e "$stable-backports" "$filename" || \
          sed -i -e 's/^.*-backports.*$//' "$filename"
      done
    fi
    
  • Waktu tunggu habis saat menunggu instance DATAPROC_CLUSTER_VM_NAME melaporkan atau Jaringan tidak dapat dijangkau: dataproccontrol-REGION.googleapis.com

    Penyebab: Pesan error ini menunjukkan bahwa penyiapan jaringan cluster Dataproc Anda belum selesai: Anda mungkin tidak memiliki rute ke gateway internet default atau aturan firewall.

    Solusi:

    Untuk memecahkan masalah ini, Anda dapat membuat Uji Konektivitas berikut:

    • Buat Uji Konektivitas antara dua VM cluster Dataproc. Hasil pengujian ini akan membantu Anda memahami apakah aturan firewall yang mengizinkan masuk atau keluar dari jaringan Anda diterapkan ke VM cluster dengan benar.
    • Buat Uji Konektivitas antara VM cluster Dataproc dan alamat IP API kontrol Dataproc saat ini. Untuk mendapatkan alamat IP API kontrol Dataproc saat ini, gunakan perintah berikut:
    dig dataproccontrol-REGION.googleapis.com A
    

    Gunakan salah satu alamat IPv4 di bagian jawaban output.

    Hasil Uji Konektivitas akan membantu Anda memahami apakah rute ke gateway internet default dan firewall yang mengizinkan keluar dikonfigurasi dengan benar.

    Berdasarkan hasil Uji Konektivitas:

  • Error karena update

    Penyebab: Cluster menerima tugas yang dikirimkan ke layanan Dataproc, tetapi tidak dapat melakukan penskalaan naik atau turun secara manual atau melalui penskalaan otomatis. Error ini juga dapat disebabkan oleh konfigurasi cluster yang tidak standar.

    Solusi:

    • Reset cluster: Buka tiket dukungan, sertakan file tar diagnostik, dan minta agar cluster direset ke status RUNNING.

    • Cluster baru: Buat ulang cluster dengan konfigurasi yang sama. Solusi ini bisa lebih cepat daripada reset yang diberikan dukungan.

Tips pemecahan masalah cluster

Bagian ini memberikan panduan tambahan tentang cara memecahkan masalah umum yang dapat mencegah pembuatan cluster Dataproc.

Jika penyediaan cluster Dataproc gagal, pesan error umum atau status PENDING atau PROVISIONING akan sering ditampilkan sebelum gagal. Kunci untuk mendiagnosis dan menyelesaikan masalah kegagalan cluster adalah dengan memeriksa log cluster dan menilai titik kegagalan umum.

Gejala dan pesan error umum

Berikut adalah gejala dan pesan error umum yang terkait dengan kegagalan pembuatan cluster:

  • Status cluster tetap PENDING atau PROVISIONING untuk jangka waktu yang lebih lama.
  • Cluster bertransisi ke status ERROR.
  • Error API umum selama pembuatan cluster, seperti Operation timed out.
  • Pesan error respons API atau yang dicatat, seperti:

    • RESOURCE_EXHAUSTED: terkait dengan kuota CPU, disk, atau alamat IP
    • Instance failed to start
    • Permission denied
    • Unable to connect to service_name.googleapis.com atau Could not reach required Google APIs
    • Connection refused atau network unreachable
    • Error terkait kegagalan tindakan inisialisasi, seperti error eksekusi skrip dan file tidak ditemukan.

Meninjau log cluster

Langkah awal penting saat mendiagnosis kegagalan pembuatan cluster adalah meninjau log cluster mendetail yang tersedia di Cloud Logging.

  1. Buka Logs Explorer: Buka Logs Explorer di konsol Google Cloud .
  2. Filter untuk cluster Dataproc:
    • Di drop-down Resource, pilih Cloud Dataproc Cluster.
    • Masukkan cluster_name dan project_id Anda. Anda juga dapat memfilter menurut location (wilayah).
  3. Periksa Entri Log:
    • Cari pesan tingkat ERROR atau WARNING yang terjadi mendekati waktu kegagalan pembuatan cluster.
    • Perhatikan log dari komponen master-startup, worker-startup, dan agent untuk mendapatkan insight tentang masalah tingkat VM atau agen Dataproc.
    • Untuk mendapatkan insight tentang masalah waktu booting VM, filter log menurut resource.type="gce_instance", dan cari pesan dari nama instance yang terkait dengan node cluster Anda, seperti CLUSTER_NAME-m atau CLUSTER_NAME-w-0. Log konsol serial dapat mengungkapkan masalah konfigurasi jaringan, masalah disk, dan kegagalan skrip yang terjadi di awal siklus proses VM.

Penyebab umum kegagalan cluster dan tips pemecahan masalah

Bagian ini menguraikan alasan umum pembuatan cluster Dataproc mungkin gagal dan memberikan tips pemecahan masalah untuk membantu memecahkan masalah kegagalan cluster.

Izin IAM tidak memadai

Akun layanan VM yang digunakan oleh cluster Dataproc Anda harus memiliki peran IAM yang sesuai untuk menyediakan instance Compute Engine, mengakses bucket Cloud Storage, menulis log, dan berinteraksi dengan layanan Google Cloud lainnya.

  • Peran Worker yang diperlukan: Pastikan akun layanan VM memiliki peran Dataproc Worker (roles/dataproc.worker). Peran ini memiliki izin minimum yang diperlukan agar Dataproc dapat mengelola resource cluster.
  • Izin akses data: Jika tugas Anda membaca dari atau menulis ke Cloud Storage atau BigQuery, akun layanan memerlukan peran terkait, seperti Storage Object Viewer, Storage Object Creator, atau Storage Object Admin untuk Cloud Storage, atau BigQuery Data Viewer atau BigQuery Editor untuk BigQuery.
  • Izin logging: Akun layanan harus memiliki peran dengan izin yang diperlukan untuk menulis log ke Cloud Logging, seperti peran Logging Writer.

Tips pemecahan masalah:

  • Identifikasi akun layanan: Tentukan akun layanan VM yang dikonfigurasi untuk digunakan oleh cluster Anda. Jika tidak ditentukan, nilai defaultnya adalah akun layanan default Compute Engine.

  • Verifikasi peran IAM: Buka halaman IAM & Admin > IAM di konsol Google Cloud , temukan akun layanan VM cluster, lalu verifikasi bahwa akun tersebut memiliki peran yang diperlukan untuk operasi cluster. Berikan peran yang belum ada.

Kuota resource terlampaui

Cluster Dataproc menggunakan resource dari Compute Engine dan layanan Google Cloud lainnya. Melampaui kuota project atau regional dapat menyebabkan kegagalan pembuatan cluster.

  • Kuota Dataproc umum yang perlu diperiksa:
    • CPUs (regional)
    • DISKS_TOTAL_GB (regional)
    • IN_USE_ADDRESSES (regional untuk IP internal, global untuk IP eksternal)
    • Kuota Dataproc API, seperti ClusterOperationRequestsPerMinutePerProjectPerRegion .

Tips pemecahan masalah:

  • Tinjau kuota: Buka halaman IAM & Admin > IAM di konsol Google Cloud . Filter menurut "Service" untuk "Compute Engine API" dan "Dataproc API".
  • Periksa penggunaan vs. batas: Identifikasi kuota yang telah mencapai atau mendekati batasnya.
  • Jika perlu, minta penambahan kuota.

Masalah konfigurasi jaringan

Masalah konfigurasi jaringan, seperti kesalahan konfigurasi jaringan VPC, subnet, firewall, atau DNS, adalah penyebab umum kegagalan pembuatan cluster. Instance cluster harus dapat berkomunikasi satu sama lain dan dengan Google API.

  • Jaringan dan subnet VPC:
    • Pastikan jaringan dan subnet VPC cluster ada dan dikonfigurasi dengan benar.
    • Pastikan subnet memiliki rentang alamat IP yang tersedia yang memadai.
  • Akses Google Pribadi (PGA): Jika VM cluster memiliki alamat IP internal dan perlu menjangkau Google API untuk Cloud Storage, Cloud Logging, dan operasi lainnya, pastikan Akses Google Pribadi diaktifkan di subnet. Secara default, cluster Dataproc yang dibuat dengan versi image 2.2+ menyediakan VM dengan alamat IP khusus internal dengan Akses Google Pribadi diaktifkan di subnet regional cluster.
  • Private Service Connect (PSC): Jika Anda menggunakan Private Service Connect untuk mengakses Google API, pastikan endpoint Private Service Connect yang diperlukan dikonfigurasi dengan benar untuk Google API yang menjadi dependensi Dataproc, seperti dataproc.googleapis.com, storage.googleapis.com, compute.googleapis.com, dan logging.googleapis.com. Entri DNS untuk API harus di-resolve ke alamat IP pribadi. Perhatikan bahwa penggunaan Private Service Connect tidak menghilangkan kebutuhan untuk menggunakan peering VPC untuk berkomunikasi dengan jaringan VPC yang dikelola pelanggan lainnya. .
  • Peering VPC: Jika cluster Anda berkomunikasi dengan resource di jaringan VPC lain, seperti project host VPC bersama atau VPC pelanggan lain, pastikan peering VPC dikonfigurasi dengan benar dan rute disebarkan.
  • Aturan firewall:

    • Aturan default: Verifikasi bahwa aturan firewall default, seperti allow-internal atau allow-ssh, tidak terlalu ketat.
    • Aturan kustom: Jika aturan firewall kustom diterapkan, verifikasi bahwa aturan tersebut mengizinkan jalur komunikasi yang diperlukan:

      • Komunikasi internal dalam cluster (antara node -m dan -w).
      • Traffic keluar dari VM cluster ke Google API, menggunakan IP publik atau gateway internet, Akses Google Pribadi, atau endpoint Private Service Connect.

      • Traffic ke sumber atau layanan data eksternal yang menjadi dependensi tugas Anda.

  • Resolusi DNS: Pastikan instance cluster dapat menyelesaikan nama DNS dengan benar untuk Google API dan layanan internal atau eksternal.

Tips pemecahan masalah:

  • Tinjau konfigurasi jaringan: Periksa setelan jaringan dan subnet VPC tempat cluster di-deploy.
  • Periksa aturan firewall: Tinjau aturan firewall di jaringan VPC atau project host VPC Bersama.
  • Uji konektivitas: Luncurkan VM Compute Engine sementara di subnet cluster dan jalankan langkah-langkah berikut:
    • ping atau curl ke domain Google API eksternal, seperti storage.googleapis.com.
    • nslookup untuk memverifikasi resolusi DNS ke alamat IP yang diharapkan (Akses Google Pribadi atau Private Service Connect).
    • Jalankan Google Cloud uji konektivitas untuk mendiagnosis jalur dari VM pengujian ke endpoint yang relevan.

Kegagalan tindakan inisialisasi

Tindakan inisialisasi Dataproc adalah skrip yang berjalan di VM cluster selama pembuatan cluster. Error dalam skrip ini dapat mencegah startup cluster.

Tips pemecahan masalah:

  • Periksa log untuk mengetahui error tindakan inisialisasi: Cari entri log yang terkait dengan init-actions atau startup-script untuk instance cluster di Cloud Logging.
  • Periksa jalur dan izin skrip: Pastikan skrip tindakan inisialisasi terletak dengan benar di Cloud Storage dan akun layanan VM cluster memiliki peran Storage Object Viewer yang diperlukan untuk membaca skrip Cloud Storage.
  • Men-debug logika skrip: Uji logika skrip di VM Compute Engine terpisah yang meniru lingkungan cluster untuk mengidentifikasi error. Tambahkan pencatatan aktivitas yang lebih detail ke skrip.

Ketersediaan resource regional (kehabisan stok)

Terkadang, jenis mesin atau resource di region atau zona mengalami ketidaktersediaan sementara (kehabisan stok). Biasanya, hal ini akan menghasilkan error RESOURCE_EXHAUSTED yang tidak terkait dengan masalah kuota project.

Tips pemecahan masalah:

  • Coba zona atau region lain: Coba buat cluster di zona lain dalam region yang sama, atau di region lain.
  • Menggunakan penempatan Zona Otomatis: Gunakan fitur penempatan Zona Otomatis Dataproc untuk memilih zona dengan kapasitas secara otomatis.
  • Sesuaikan jenis mesin: Jika menggunakan jenis mesin kustom atau khusus, coba jenis mesin standar untuk melihat apakah masalah teratasi.

Langkah berikutnya

Jika Anda terus mengalami masalah kegagalan cluster:

  • Hubungi Cloud Customer Care. Jelaskan masalah kegagalan cluster dan langkah-langkah pemecahan masalah yang telah dilakukan. Berikan juga informasi berikut:
    • Data diagnostik cluster
    • Output dari perintah berikut:
      gcloud dataproc clusters describe CLUSTER_NAME \
          -region=REGION
      
    • Mengekspor log untuk cluster yang gagal.