Bagikan melalui


Tutorial: Menyambungkan ke Azure Data Lake Storage Gen2

Catatan

Artikel ini menjelaskan pola warisan untuk mengonfigurasi akses ke Azure Data Lake Storage Gen2. Databricks merekomendasikan penggunaan Unity Catalog. Lihat Membuat metastore Katalog Unity dan Koneksi ke penyimpanan objek cloud menggunakan Katalog Unity.

Tutorial ini memandu Anda melalui semua langkah yang diperlukan untuk terhubung dari Azure Databricks ke Azure Data Lake Storage Gen2 menggunakan OAuth 2.0 dengan perwakilan layanan ID Microsoft Entra.

Persyaratan

Selesaikan tugas berikut sebelum Anda memulai tutorial ini:

Langkah 1: Membuat perwakilan layanan ID Microsoft Entra

Untuk menggunakan perwakilan layanan untuk menyambungkan ke Azure Data Lake Storage Gen2, pengguna admin harus membuat aplikasi ID Microsoft Entra (sebelumnya Azure Active Directory) baru. Jika Anda sudah memiliki perwakilan layanan ID Microsoft Entra yang tersedia, lewati ke Langkah 2: Buat rahasia klien untuk perwakilan layanan Anda.

Untuk membuat perwakilan layanan ID Microsoft Entra, ikuti instruksi berikut:

  1. Masuk ke portal Azure.

    Catatan

    Portal yang akan digunakan berbeda tergantung pada apakah aplikasi ID Microsoft Entra Anda berjalan di cloud publik Azure atau di cloud nasional atau berdaulat. Untuk informasi selengkapnya, lihat Cloud nasional.

  2. Jika Anda memiliki akses ke beberapa penyewa, langganan, atau direktori, klik ikon Direktori + langganan (direktori dengan filter) di menu atas untuk beralih ke direktori tempat Anda ingin memprovisikan perwakilan layanan.

  3. Mencari dan memilih <Microsoft Entra ID.

  4. Di Kelola, klik Pendaftaran aplikasi > Pendaftaran baru.

  5. Untuk Nama, masukkan nama untuk aplikasi.

  6. Di bagian Jenis akun yang didukung, pilih Akun hanya dalam direktori organisasi ini (Penyewa tunggal).

  7. Klik Daftar.

Langkah 2: Buat rahasia klien untuk perwakilan layanan Anda

  1. Di Kelola, klik Sertifikat & rahasia.

  2. Pada tab Rahasia klien, klik Rahasia klien baru.

    Rahasia klien baru

  3. Di panel Tambahkan rahasia klien, untuk Deskripsi, masukkan deskripsi untuk rahasia klien.

  4. Untuk Kedaluwarsa, pilih jangka waktu kedaluwarsa untuk rahasia klien, lalu klik Tambahkan.

  5. Salin dan simpan Nilai rahasia klien di tempat yang aman, karena rahasia klien ini adalah kata sandi untuk aplikasi Anda.

  6. Pada halaman Gambaran Umum halaman aplikasi, di bagian Essentials, salin nilai-nilai berikut:

    • ID aplikasi (klien)
    • ID direktori (tenant)

    Gambaran umum aplikasi terdaftar Azure

Langkah 3: Berikan akses perwakilan layanan ke Azure Data Lake Storage Gen2

Anda memberikan akses ke sumber daya penyimpanan dengan menetapkan peran ke perwakilan layanan Anda. Dalam tutorial ini, Anda menetapkan Kontributor Data Blob Penyimpanan ke perwakilan layanan di akun Azure Data Lake Storage Gen2 Anda. Anda mungkin perlu menetapkan peran lain tergantung pada persyaratan tertentu.

  1. Di portal Microsoft Azure, pergi ke layanan Akun penyimpanan.
  2. Pilih akun penyimpanan Azure yang akan digunakan.
  3. Klik Access Control (IAM).
  4. Pilih +Tambah, dan pilih Tambahkan penetapan peran dari menu dropdown.
  5. Atur bidang Pilih ke nama aplikasi ID Microsoft Entra yang Anda buat di langkah 1 dan atur Peran ke Kontributor Data Blob Penyimpanan.
  6. Klik Simpan.

Langkah 4: Tambahkan rahasia klien ke Azure Key Vault

Anda dapat menyimpan rahasia klien dari langkah 1 di Azure Key Vault.

  1. Di portal Azure, buka layanan Brankas kunci.
  2. Pilih Azure Key Vault untuk digunakan.
  3. Di halaman pengaturan Key Vault, pilih Rahasia.
  4. Klik + Hasilkan/Impor.
  5. Di Opsi unggah, pilih Manual.
  6. Untuk Nama, masukkan nama untuk rahasia tersebut. Nama rahasia dalam Key Vault harus unik.
  7. Untuk Nilai, tempelkan Rahasia Klien yang Anda simpan di Langkah 1.
  8. Klik Buat.

Langkah 5: Buat cakupan rahasia yang didukung Azure Key Vault di ruang kerja Azure Databricks Anda

Untuk mereferensikan rahasia klien yang disimpan di Azure Key Vault, Anda dapat membuat cakupan rahasia yang didukung oleh Azure Key Vault di Azure Databricks.

  1. Buka https://<databricks-instance>#secrets/createScope. URL ini peka huruf besar/kecil; cakupan dalam createScope harus huruf besar.

    Buat cakupan

  2. Masukkan nama cakupan rahasia. Nama lingkup rahasia tidak peka huruf besar/kecil.

  3. Gunakan menu dropdown Kelola Utama untuk menentukan apakah Semua Pengguna memiliki MANAGE izin untuk cakupan rahasia ini atau hanya Pembuat cakupan rahasia (artinya, Anda).

  4. Masukkan Nama DNS (misalnya, https://databrickskv.vault.azure.net/) dan ID Sumber Daya, misalnya:

    /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
    

    Properti ini tersedia dari tab Properti Azure Key Vault di portal Microsoft Azure Anda.

    Tab Properti Azure Key Vault

  5. Klik tombol Buat.

Langkah 6: Koneksi ke Azure Data Lake Storage Gen2 menggunakan python

Anda sekarang dapat mengakses data dengan aman di akun penyimpanan Azure menggunakan OAuth 2.0 dengan perwakilan layanan aplikasi ID Microsoft Entra Anda untuk autentikasi dari buku catatan Azure Databricks.

  1. Navigasikan ke ruang kerja Azure Databricks Anda dan buat buku catatan python baru.

  2. Jalankan kode python berikut, dengan penggantian di bawah ini, untuk menyambungkan ke Azure Data Lake Storage Gen2.

    service_credential = dbutils.secrets.get(scope="<scope>",key="<service-credential-key>")
    
    spark.conf.set("fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net", "OAuth")
    spark.conf.set("fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
    spark.conf.set("fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net", "<application-id>")
    spark.conf.set("fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net", service_credential)
    spark.conf.set("fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net", "https://login.microsoftonline.com/<directory-id>/oauth2/token")
    

    Menggantikan

    • <scope> dengan nama cakupan rahasia dari langkah 5.
    • <service-credential-key> dengan nama kunci yang berisi rahasia klien.
    • <storage-account> dengan nama akun penyimpanan Azure.
    • <application-id>dengan ID Aplikasi (klien) untuk aplikasi ID Microsoft Entra.
    • <directory-id>dengan ID Direktori (penyewa) untuk aplikasi ID Microsoft Entra.

    Anda sekarang telah berhasil menyambungkan ruang kerja Azure Databricks ke akun Azure Data Lake Storage Gen2 Anda.

Memberikan akses ruang kerja Azure Databricks Anda ke Azure Data Lake Storage Gen2

Jika Mengonfigurasi firewall di Azure Data Lake Storage Gen2, Anda harus mengonfigurasi pengaturan jaringan untuk mengizinkan ruang kerja Azure Databricks Anda tersambung ke Azure Data Lake Storage Gen2. Pertama, pastikan ruang kerja Azure Databricks Anda disebarkan di jaringan virtual Anda sendiri setelah Menyebarkan Azure Databricks di jaringan virtual Azure Anda (injeksi VNet). Anda kemudian dapat mengonfigurasi titik akhir privat atau akses dari jaringan virtual Anda untuk mengizinkan koneksi dari subnet Anda ke akun Azure Data Lake Storage Gen2 Anda.

Jika Anda menggunakan komputasi tanpa server seperti gudang SQL tanpa server, Anda harus memberikan akses dari bidang komputasi tanpa server ke Azure Data Lake Storage Gen2. Lihat Jaringan sarana komputasi tanpa server.

Memberikan akses menggunakan titik akhir privat

Anda dapat menggunakan titik akhir privat untuk akun Azure Data Lake Storage Gen2 Anda untuk memungkinkan ruang kerja Azure Databricks Anda mengakses data dengan aman melalui tautan privat.

Untuk membuat titik akhir privat dengan menggunakan Portal Microsoft Azure, lihat Tutorial: Koneksi ke akun penyimpanan menggunakan Titik Akhir Privat Azure. Pastikan untuk membuat titik akhir privat di jaringan virtual yang sama dengan tempat ruang kerja Azure Databricks Anda disebarkan.

Memberikan akses dari jaringan virtual Anda

Titik akhir layanan Virtual Network memungkinkan Anda mengamankan sumber daya layanan Azure penting hanya ke jaringan virtual Anda. Anda dapat mengaktifkan titik akhir layanan untuk Azure Storage dalam VNet yang Anda gunakan untuk ruang kerja Azure Databricks Anda.

Untuk informasi selengkapnya, termasuk instruksi Azure CLI dan PowerShell, lihat Memberikan akses dari jaringan virtual.

  1. Masuk ke Portal Microsoft Azure, sebagai pengguna dengan peran Kontributor Akun Penyimpanan di akun Azure Data Lake Storage Gen2 Anda.
  2. Navigasi ke akun Azure Storage Anda, dan buka tab Jaringan .
  3. Periksa apakah Anda telah memilih untuk mengizinkan akses dari Jaringan virtual dan alamat IP yang dipilih.
  4. Di bawah Jaringan virtual, pilih Tambahkan jaringan virtual yang ada.
  5. Di panel samping, di bawah Langganan, pilih langganan tempat jaringan virtual Anda berada.
  6. Di bawah Jaringan virtual, pilih jaringan virtual tempat ruang kerja Azure Databricks Anda disebarkan.
  7. Di bawah Subnet, pilih Pilih semua.
  8. Klik Aktifkan.
  9. Pilih Simpan untuk menerapkan perubahan Anda.

Pemecahan Masalah

Kesalahan: IllegalArgumentException: Rahasia tidak ada dengan cakupan: KeyVaultScope dan kunci

Kesalahan ini mungkin berarti:

  • Cakupan yang didukung Databricks yang dirujuk dalam kode tidak valid.

Tinjau nama rahasia Anda dari langkah 4 di artikel ini.

Kesalahan: com.databricks.common.client.DatabricksServiceHttpClientException: INVALID_STATE: Databricks tidak dapat mengakses keyvault

Kesalahan ini mungkin berarti:

  • Cakupan yang didukung Databricks yang dimaksud dalam kode tidak valid. atau rahasia yang disimpan di Key Vault telah kedaluwarsa.

Tinjau langkah 3 untuk memastikan rahasia Azure Key Vault Anda valid. Tinjau nama rahasia Anda dari langkah 4 di artikel ini.

Kesalahan: ADAuthenticator$HttpException: Kesalahan HTTP 401: token gagal untuk mendapatkan token dari respons AzureAD

Kesalahan ini mungkin berarti:

  • Kunci rahasia klien perwakilan layanan telah kedaluwarsa.

Buat rahasia klien baru setelah langkah 2 di artikel ini dan perbarui rahasia di Azure Key Vault Anda.

Sumber