Bagikan melalui


Menggunakan skrip init yang dilingkup kluster

Skrip init cluster-scoped adalah skrip init yang didefinisikan dalam konfigurasi kluster. Skrip init cluster-scoped berlaku untuk kluster yang Anda buat dan skrip 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 di cluster-scoped menampilkan kode keluar non-nol, peluncuran kluster gagal. Anda dapat memecahkan masalah skrip init cakupan kluster dengan mengonfigurasi pengiriman log kluster dan memeriksa log skrip init. Lihat Pengelogan skrip init.

Konfigurasikan skrip init cluster-scoped 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 yang terlingkup kluster. Jika Anda menggunakan komputasi dengan mode akses pengguna bersama atau tunggal, simpan skrip init di volume Katalog Unity. Jika Anda menggunakan komputasi dengan mode akses bersama tanpa isolasi, gunakan file ruang kerja untuk skrip init.

Untuk mode akses bersama, Anda harus menambahkan skrip init ke allowlist. Lihat Izinkan pustaka dan skrip init pada komputasi bersama.

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

  1. Pada halaman konfigurasi kluster, klik tombol Opsi Lanjutan.
  2. Di bagian bawah halaman, klik tab Skrip Init.
  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 direktori beranda Anda dengan file ruang kerja: /Users/<user-name>/<script-name>.sh.
    • Untuk 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 objek: abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/init-script.
  5. Klik Tambahkan.

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

Dalam mode akses bersama, identitas pemilik kluster digunakan.

Catatan

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

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 jenis sumber ABFSS , 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 Gen2. Gunakan dokumentasi tertaut berikut untuk menyelesaikan penyiapan ini:

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

  2. Simpan kredensial Anda menggunakan rahasia. Lihat rahasianya.

  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) Refaktor 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 yang dilingkup kluster di DBFS adalah akhir masa pakai. 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 cakupan 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.