Menggunakan beberapa kluster Microsoft Azure HDInsight dengan sebuah akun Azure Data Lake Storage

Mulai dari Microsoft Azure HDInsight versi 3.5, Anda dapat membuat kluster Microsoft Azure HDInsight dengan akun Azure Data Lake Storage sebagai sistem file default. Data Lake Storage mendukung penyimpanan tidak terbatas yang membuatnya ideal tidak hanya untuk menjadi hos data dalam jumlah besar; tetapi juga untuk menjadi hos beberapa kluster Microsoft Azure HDInsight yang berbagi satu akun Data Lake Storage. Untuk petunjuk tentang cara membuat kluster Microsoft Azure HDInsight dengan Data Lake Storage sebagai penyimpanan, lihat Mulai Cepat: Menyiapkan kluster di Microsoft Azure HDInsight.

Artikel ini memberikan rekomendasi kepada admin Data Lake Storage untuk menyiapkan satu Akun Data Lake Storage berbagi yang dapat digunakan oleh beberapa kluster Microsoft Azure HDInsight aktif. Rekomendasi ini berlaku untuk hos bagi beberapa kluster Apache Hadoop yang aman serta tidak aman pada sebuah akun Data Lake Storage berbagi.

ACL tingkat file dan folder Data Lake Storage

Bagian selanjutnya dari artikel ini mengasumsikan bahwa Anda memiliki pengetahuan yang memadai tentang ACL tingkat file dan folder di Azure Data Lake Storage, yang dijelaskan secara rinci di Kontrol akses di Azure Data Lake Storage.

Penyiapan Data Lake Storage untuk beberapa kluster Microsoft Azure HDInsight

Mari kita mengambil hierarki folder dua tingkat untuk menjelaskan rekomendasi untuk menggunakan beberapa kluster Microsoft Azure HDInsight dengan sebuah akun Data Lake Storage. Anggap saja Anda memiliki sebuah akun Data Lake Storage dengan struktur folder /clusters/finance. Dengan struktur ini, semua kluster yang dibutuhkan oleh organisasi Keuangan dapat menggunakan /clusters/finance sebagai lokasi penyimpanan. Di masa depan, jika organisasi lain, misalnya Marketing, ingin membuat kluster Microsoft Azure HDInsight menggunakan akun Data Lake Storage yang sama, mereka dapat membuat /clusters/marketing. Untuk saat ini, mari kita gunakan /clusters/finance.

Untuk memungkinkan struktur folder ini dapat digunakan secara efektif oleh kluster Microsoft Azure HDInsight, admin Data Lake Storage harus menetapkan izin yang sesuai, seperti yang dijelaskan dalam tabel. Izin yang ditampilkan dalam tabel sesuai dengan Access-ACL, dan bukan Default-ACL.

Folder Izin Pengguna pemilik Grup pemilik Pengguna bernama Izin pengguna bernama Grup bernama Izin grup bernama
/ rwxr-x--x admin admin Perwakilan layanan --x FINGRP r-x
/clusters rwxr-x--x admin admin Perwakilan layanan --x FINGRP r-x
/clusters/finance rwxr-x--x admin FINGRP Perwakilan layanan rwx - -

Dalam tabel,

  • admin adalah pembuat dan admin akun Data Lake Storage.
  • Perwakilan layanan adalah perwakilan layanan Azure Active Directory (AAD) yang terkait dengan akun tersebut.
  • FINGRP adalah grup pengguna yang dibuat di AAD yang berisi pengguna dari organisasi Keuangan.

Untuk petunjuk tentang cara membuat aplikasi AAD (yang juga membuat Perwakilan Layanan), lihat Membuat aplikasi AAD. Untuk instruksi tentang cara membuat grup pengguna di AAD, lihat Mengelola grup di Layanan Domain Active Directory Azure.

Beberapa poin penting untuk dipertimbangkan.

  • Struktur folder dua tingkat ( /clusters/finance/ ) harus dibuat dan disediakan dengan izin yang sesuai dari admin Data Lake Storage sebelum menggunakan akun penyimpanan untuk kluster. Struktur ini tidak dibuat secara otomatis saat membuat kluster.

  • Contoh di atas merekomendasikan pengaturan grup pemilik /clusters/finance sebagai FINGRP dan mengizinkan akses r-x ke FINGRP ke seluruh hierarki folder mulai dari root. Tujuannya untuk memastikan anggota FINGRP dapat mengetahui struktur folder mulai dari root.

  • Untuk kasus di mana Perwakilan Layanan AAD yang berbeda dapat membuat kluster di bawah /cluster/finance, sticky-bit (ketika diatur pada folder keuangan) akan memastikan folder yang dibuat oleh satu Perwakilan Layanan tidak dapat dihapus oleh yang lain.

  • Setelah struktur dan izin folder siap, proses pembuatan kluster Microsoft Azure HDInsight akan menciptakan lokasi penyimpanan khusus kluster di bawah /cluster/finance/ . Misalnya, penyimpanan untuk kluster dengan nama fincluster01 akan menjadi /clusters/finance/fincluster01. Kepemilikan dan izin untuk folder yang dibuat oleh kluster Microsoft Azure HDInsight ditampilkan dalam tabel di sini.

    Folder Izin Pengguna pemilik Grup pemilik Pengguna bernama Izin pengguna bernama Grup bernama Izin grup bernama
    /clusters/finanace/ fincluster01 rwxr-x--- Perwakilan Layanan FINGRP - - - -

Rekomendasi untuk input pekerjaan dan data output

Kami menyarankan agar input data ke pekerjaan, dan output dari pekerjaan disimpan dalam folder di luar /kluster. Tujuannya untuk memastikan bahwa meski folder khusus kluster dihapus untuk mendapatkan kembali sebagian ruang penyimpanan, input dan output pekerjaan masih tersedia untuk digunakan di masa mendatang. Karena itu, pastikan hierarki folder untuk menyimpan input dan output pekerjaan memungkinkan tingkat akses yang sesuai untuk Perwakilan Layanan.

Membatasi kluster yang berbagi satu akun penyimpanan

Batas jumlah kluster yang dapat berbagi sebuah akun Data Lake Storage tergantung pada beban kerja yang dijalankan pada kluster tersebut. Memiliki terlalu banyak kluster atau beban kerja yang sangat berat pada kluster yang berbagi akun penyimpanan dapat menyebabkan akses masuk/ keluar akun penyimpanan menjadi terhambat.

Dukungan untuk Default-ACL

Saat membuat Perwakilan Layanan dengan akses pengguna bernama (seperti yang ditunjukkan dalam tabel di atas), kami menyarankan untuk tidak menambahkan pengguna bernama dengan default-ACL. Penyediaan akses pengguna-bernama menggunakan default-ACL menghasilkan penetapan 770 izin untuk pengguna-pemilik, grup-pemilik, dan lainnya. Meskipun nilai default 770 ini tidak menyerobot izin dari pengguna-pemilik (7) atau grup-pemilik(7), ia menyerobot semua izin untuk yang lain (0). Hal ini mengakibatkan masalah umum terkait satu kasus penggunaan tertentu yang dibahas secara rinci di bagian Masalah umum dan solusi.

Masalah umum dan solusi

Bagian ini mencantumkan masalah umum saat menggunakan Microsoft Azure HDInsight dengan Data Lake Storage, dan solusinya.

Sumber daya terlokalisasi Apache Hadoop YARN yang dapat dilihat publik

Saat akun Azure Data Lake Storage baru dibuat, direktori root secara otomatis disediakan dengan bit izin Access-ACL diatur ke 770. Pengguna pemilik folder root diatur ke pengguna yang membuat akun (admin Data Lake Storage) dan grup pemilik diatur ke grup utama pengguna yang membuat akun. Tidak ada akses yang disediakan untuk "yang lain".

Pengaturan ini diketahui dapat memengaruhi satu kasus penggunaan Microsoft Azure HDInsight tertentu yang diambil dalam YARN 247. Pengiriman pekerjaan dapat menjadi gagal dengan pesan eror yang mirip dengan ini:

Resource XXXX is not publicly accessible and as such cannot be part of the public cache.

Seperti yang dinyatakan dalam YARN JIRA yang ditautkan sebelumnya, saat melokalisasi sumber daya publik, pelokalisasi memvalidasi bahwa semua sumber daya yang diminta memang bersifat publik dengan memeriksa izin mereka pada sistem file jarak jauh. Setiap LocalResource yang tidak sesuai dengan persyaratan itu tidak dapat dilokalisasi. Pemeriksaan izin, termasuk akses baca ke file untuk "yang lain". Skenario ini tidak akan bekerja di luar kebiasaan saat menjadi hos bagi kluster Microsoft Azure HDInsight pada Azure Data Lake, karena Azure Data Lake menyangkal semua akses ke "yang lain" di tingkat folder root.

Solusi Sementara

Atur izin read-execute untuk yang lain melalui hierarki, misalnya, di / , /clusters dan /clusters/finance seperti yang ditunjukkan dalam tabel di atas.

Lihat juga