Bagikan melalui


Skrip inisialisasi dengan cakupan klaster

Skrip init dengan lingkup kluster adalah skrip init yang didefinisikan dalam konfigurasi kluster. Skrip-skrip init yang cakupannya cluster berlaku untuk kluster yang Anda buat dan kluster yang dibuat untuk menjalankan pekerjaan.

Anda dapat mengonfigurasi skrip init yang di lingkup kluster menggunakan UI, CLI, dan dengan memanggil CLUSTERS API. Bagian ini berfokus pada melakukan tugas-tugas ini menggunakan UI. Untuk metode lain, lihat Databricks CLI dan CLUSTERs API.

Anda dapat menambahkan sejumlah skrip, dan skrip dijalankan secara berurutan dalam urutan yang disediakan.

Jika skrip init yang bersifat ruang lingkup kluster mengembalikan kode keluar non-nol, peluncuran kluster gagal. Anda dapat memecahkan masalah skrip init dengan cakupan seluruh kluster dengan mengonfigurasi pengantaran log kluster dan memeriksa log skrip init. Lihat Pencatatan skrip Init.

Konfigurasikan skrip inisialisasi lingkup-kluster menggunakan UI

Bagian ini berisi instruksi untuk mengonfigurasi kluster untuk menjalankan skrip init menggunakan antarmuka pengguna Azure Databricks.

Databricks merekomendasikan untuk mengelola semua skrip init sebagai skrip init berlingkup kluster. Jika Anda menggunakan komputasi dengan mode akses standar atau khusus (sebelumnya mode akses pengguna bersama dan tunggal), simpan skrip init dalam volume Katalog Unity. Jika Anda menggunakan komputasi dengan mode akses bersama tanpa isolasi, gunakan file ruang kerja untuk skrip init.

Untuk mode akses standar, Anda harus menambahkan skrip init ke allowlist. Lihat pustaka Allowlist dan skrip inisialisasi di komputer dengan mode akses standar (sebelumnya mode akses bersama).

Untuk menggunakan UI untuk mengonfigurasi kluster untuk menjalankan skrip init, selesaikan langkah-langkah berikut:

  1. Pada halaman konfigurasi kluster, klik tombol Advanced.
  2. Di bagian bawah halaman, klik tab Init Scripts.
  3. Di menu drop-down Sumber, pilih jenis sumber Ruang Kerja, Volume, atau ABFSS.
  4. Tentukan jalur ke skrip init, seperti salah satu contoh berikut:
    • Untuk skrip init yang disimpan di file ruang kerja Anda: /Workspace/<path-to-script>/<script-name>.sh
    • Untuk sebuah skrip init yang disimpan dengan volume Unity Catalog: /Volumes/<catalog>/<schema>/<volume>/<path-to-script>/<script-name>.sh
    • Untuk skrip init yang disimpan dengan penyimpanan berbasis objek: abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/init-script
  5. Klik Tambahkan.

Dalam mode akses khusus, identitas prinsipal yang ditetapkan (pengguna atau perwakilan layanan) digunakan.

Dalam mode akses standar, identitas pemilik kluster digunakan.

Catatan

Mode akses bersama tanpa isolasi tidak mendukung volume, tetapi menggunakan penetapan identitas yang sama dengan mode akses standar.

Untuk menghapus skrip dari konfigurasi kluster, klik ikon sampah di sebelah kanan skrip. Saat Anda mengonfirmasi penghapusan, Anda akan diminta untuk memulai ulang kluster. Secara opsional Anda dapat menghapus file skrip dari lokasi tempat Anda mengunggahnya.

Catatan

Jika Anda mengonfigurasi skrip init menggunakan ABFSS jenis sumber, Anda harus mengonfigurasi kredensial akses.

Databricks merekomendasikan penggunaan perwakilan layanan ID Microsoft Entra untuk mengelola akses ke skrip init yang disimpan di Azure Data Lake Storage. Gunakan dokumentasi tertaut berikut untuk menyelesaikan penyiapan ini:

  1. Buat prinsipal layanan dengan izin baca dan melihat pada blob yang Anda inginkan. Lihat Mengakses penyimpanan menggunakan perwakilan layanan & ID Microsoft Entra(Azure Active Directory).

  2. Simpan kredensial Anda menggunakan rahasia. Lihat Kelola rahasia.

  3. Atur properti dalam konfigurasi Spark dan variabel lingkungan saat membuat kluster, seperti dalam contoh berikut:

    Konfigurasi Spark:

    spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth
    spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
    spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id>
    spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}}
    spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<tenant-id>/oauth2/token
    

    Variabel lingkungan:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Opsional) Merombak skrip init menggunakan azcopy atau Azure CLI.

    Anda dapat mereferensikan variabel lingkungan yang ditetapkan selama konfigurasi kluster dalam skrip init Anda untuk meneruskan kredensial yang disimpan sebagai rahasia untuk validasi.

Peringatan

Skrip init dengan cakupan kluster di DBFS telah mencapai akhir masa pakainya. Opsi DBFS di UI ada di beberapa ruang kerja untuk mendukung beban kerja warisan dan tidak disarankan. Semua skrip init yang disimpan di DBFS harus dimigrasikan. Untuk instruksi migrasi, lihat Memigrasikan skrip init dari DBFS.

Pemecahan masalah skrip init bercakupan kluster

  • Skrip harus ada di lokasi yang dikonfigurasi. Jika skrip tidak ada, upaya untuk memulai kluster atau meningkatkan skala pelaksana mengakibatkan kegagalan.
  • Skrip init tidak boleh lebih besar dari 64KB. Jika skrip melebihi ukuran itu, kluster akan gagal diluncurkan dan pesan kegagalan akan muncul di log kluster.