Menggunakan Azure Data Lake Storage Gen2 dengan kluster Azure HDInsight

Azure Data Lake Storage Gen2 adalah layanan penyimpanan cloud yang dikhususkan untuk analitik big data, yang terpasang pada penyimpanan Azure Blob. Data Lake Storage Gen2 menggabungkan kemampuan penyimpanan Azure Blob dan Azure Data Lake Storage Gen1. Layanan yang dihasilkan menawarkan fitur dari Azure Data Lake Storage Gen1 termasuk: semantik sistem file, tingkat direktori dan keamanan tingkat file, dan kemampuan beradaptasi. Juga penyimpanan berbiaya rendah dan berjenjang, ketersediaan tinggi, serta kemampuan pemulihan bencana dari penyimpanan Azure Blob.

Untuk perbandingan lengkap opsi pembuatan klaster menggunakan Data Lake Storage Gen2, lihat Membandingkan opsi penyimpanan untuk digunakan dengan klaster Azure HDInsight.

Peringatan

Tagihan untuk kluster HDInsight dirata-rata per menit, baik Anda menggunakannya maupun tidak. Pastikan untuk menghapus kluster Anda setelah selesai menggunakannya. Lihat cara menghapus kluster HDInsight.

Ketersediaan Data Lake Storage Gen2

Data Lake Storage Gen2 tersedia sebagai opsi penyimpanan untuk hampir semua jenis klaster Azure HDInsight sebagai akun penyimpanan default dan tambahan. HBase, akan tetapi, hanya dapat memiliki satu akun dengan Data Lake Storage Gen2.

Catatan

Setelah Memilih Data Lake Storage Gen2 sebagai jenis penyimpanan utama, Anda tidak dapat memilih Data Lake Storage Gen1 sebagai penyimpanan tambahan.

Membuat klaster HDInsight menggunakan Data Lake Storage Gen2

Gunakan tautan berikut untuk petunjuk terperinci tentang cara membuat klaster HDInsight dengan akses ke Data Lake Storage Gen2.

Kontrol akses untuk Data Lake Storage Gen2 di HDInsight

Jenis izin apa yang didukung Data Lake Storage Gen2?

Data Lake Storage Gen2 menggunakan model kontrol akses yang mendukung kontrol akses berbasis peran Azure (Azure RBAC) dan daftar kontrol akses (ACL) seperti POSIX. Data Lake Storage Gen1 mendukung daftar kontrol akses untuk mengontrol akses ke data saja.

Azure RBAC menggunakan penetapan peran untuk menerapkan set izin secara efektif kepada pengguna, grup, dan perwakilan layanan untuk sumber daya Azure. Biasanya, sumber daya Azure tersebut dibatasi untuk ke sumber daya tingkat teratas (contohnya, akun penyimpanan Azure Blob). Untuk penyimpanan Azure Blob, dan juga Data Lake Storage Gen2, mekanisme ini telah diperluas ke sumber daya sistem file.

Untuk informasi selengkapnya tentang izin file dengan Azure RBAC, lihat Kontrol akses berbasis peran Azure (Azure RBAC).

Untuk informasi selengkapnya tentang izin file dengan ACL, lihat Mengakses daftar kontrol pada file dan direktori.

Bagaimana cara mengontrol akses ke data saya di Data Lake Storage Gen2?

Kemampuan klaster HDInsight Anda untuk mengakses file di Data Lake Storage Gen2 dikontrol melalui identitas terkelola. Identitas terkelola adalah identitas yang terdaftar di Microsoft Entra yang kredensialnya dikelola oleh Azure. Dengan identitas terkelola, Anda tidak perlu mendaftarkan perwakilan layanan di ID Microsoft Entra. Atau mempertahankan kredensial seperti sertifikat.

Layanan Azure memiliki dua jenis identitas terkelola: yang ditetapkan sistem dan ditetapkan pengguna. HDInsight menggunakan identitas terkelola yang ditetapkan pengguna untuk mengakses Data Lake Storage Gen2. user-assigned managed identity dibuat sebagai sumber daya Azure yang mandiri. Melalui proses pembuatan, Azure membuat identitas di penyewa Microsoft Entra yang dipercaya oleh langganan yang digunakan. Setelah identitas dibuat, identitas dapat ditetapkan ke satu atau beberapa instans layanan Azure.

Siklus hidup identitas yang ditetapkan pengguna dikelola secara terpisah dari siklus hidup instans layanan Azure yang ditetapkannya. Untuk informasi selengkapnya tentang identitas terkelola, lihat Apa yang dimaksud dengan identitas terkelola untuk sumber daya Azure?.

Bagaimana cara mengatur izin bagi pengguna Microsoft Entra untuk mengkueri data di Data Lake Storage Gen2 dengan menggunakan Apache Hive atau layanan lainnya?

Untuk mengatur izin bagi pengguna untuk mengkueri data, gunakan grup keamanan Microsoft Entra sebagai prinsipal yang ditetapkan dalam ACL. Jangan secara langsung menetapkan izin akses file untuk masing-masing pengguna atau perwakilan layanan. Dengan grup keamanan Microsoft Entra untuk mengontrol alur izin, Anda dapat menambahkan dan menghapus pengguna atau perwakilan layanan tanpa menerapkan kembali ACL ke seluruh struktur direktori. Anda hanya perlu menambahkan atau menghapus pengguna dari grup keamanan Microsoft Entra yang sesuai. ACL tidak diwariskan, jadi penerapan ulang ACL memerlukan pembaruan ACL pada setiap file dan subdirektori.

Akses file dari kluster

Ada beberapa cara untuk mengakses file di Data Lake Storage Gen2 dari HDInsight.

  • Penggunaan nama yang sepenuhnya memenuhi syarat. Dengan pendekatan ini, Anda menyediakan jalur lengkap ke file yang ingin Anda akses.

    abfs://<containername>@<accountname>.dfs.core.windows.net/<file.path>/
    
  • Menggunakan format jalur yang disingkat. Dengan pendekatan ini, Anda mengganti jalur hingga akar klaster dengan:

    abfs:///<file.path>/
    
  • Menggunakan jalur relatif. Dengan pendekatan ini, Anda hanya menyediakan jalur relatif ke file yang ingin Anda akses.

    /<file.path>/
    

Contoh akses data

Contoh didasarkan pada koneksi ssh ke simpul head kluster. Contohnya menggunakan ketiga skema URI. Mengganti CONTAINERNAME dan STORAGEACCOUNT dengan nilai yang relevan

Beberapa perintah hdfs

  1. Buat file di penyimpanan lokal.

    touch testFile.txt
    
  2. Buat direktori pada penyimpanan klaster.

    hdfs dfs -mkdir abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -mkdir abfs:///sampledata2/
    hdfs dfs -mkdir /sampledata3/
    
  3. Salin data dari penyimpanan lokal ke penyimpanan klaster.

    hdfs dfs -copyFromLocal testFile.txt  abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -copyFromLocal testFile.txt  abfs:///sampledata2/
    hdfs dfs -copyFromLocal testFile.txt  /sampledata3/
    
  4. Cantumkan konten direktori pada penyimpanan klaster.

    hdfs dfs -ls abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -ls abfs:///sampledata2/
    hdfs dfs -ls /sampledata3/
    

Membuat tabel Apache Hive

Tiga lokasi file ditampilkan untuk tujuan ilustrasi. Untuk eksekusi aktual, gunakan hanya salah satu entri LOCATION.

DROP TABLE myTable;
CREATE EXTERNAL TABLE myTable (
    t1 string,
    t2 string,
    t3 string,
    t4 string,
    t5 string,
    t6 string,
    t7 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
STORED AS TEXTFILE
LOCATION 'abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/example/data/';
LOCATION 'abfs:///example/data/';
LOCATION '/example/data/';

Langkah berikutnya