Saat otorisasi diaktifkan untuk Hadoop Distributed File System (HDFS), Anda harus memiliki izin yang diperlukan untuk melakukan operasi seperti membaca data atau membuat direktori. Topik ini menjelaskan cara mengaktifkan otorisasi HDFS.
Latar Belakang
Hadoop menyediakan dua mode berikut untuk menentukan identitas pengguna:
-
Simple mode: Sistem operasi klien yang terhubung ke HDFS menentukan identitas pengguna. Pada sistem Unix-like, hal ini setara dengan perintah
whoami. -
Kerberos mode: Kredensial Kerberos klien menentukan identitasnya.
Anda dapat mengaktifkan mode Kerberos saat membuat kluster EMR. Untuk informasi selengkapnya, lihat Kerberos.
Prasyarat
Anda harus memiliki kluster EMR. Untuk informasi selengkapnya, lihat Buat kluster.
Prosedur
-
Untuk kluster yang diaktifkan Kerberos, otorisasi HDFS telah dikonfigurasi secara default (umask adalah 027). Tidak diperlukan konfigurasi tambahan atau restart layanan.
-
Untuk kluster dalam simple mode, Anda harus mengikuti langkah-langkah berikut untuk menambahkan konfigurasi dan me-restart layanan.
-
Buka halaman layanan kluster.
-
Di bilah navigasi atas, pilih wilayah dan kelompok sumber daya sesuai kebutuhan.
-
Pada kolom Actions kluster target, klik Services.
-
Pada halaman Services, di bagian layanan HDFS, klik Configure.
-
Di area Service Configuration, ubah parameter-parameter berikut.
Parameter
Description
dfs.permissions.enabled
Mengaktifkan pemeriksaan izin. Atur nilainya menjadi true.
Nilai default-nya adalah false.
dfs.datanode.data.dir.perm
Izin untuk path direktori lokal DataNode.
fs.permissions.umask-mode
Mask izin yang menentukan izin default untuk file dan direktori baru.
dfs.namenode.acls.enabled
Nilai default-nya adalah false. Atur parameter ini menjadi true untuk mengaktifkan dukungan Access Control List (ACL). Hal ini memungkinkan Anda mengelola izin untuk pengguna dan kelompok tertentu.
Perintah terkait ACL meliputi
hadoop fs -getfacl [-R] <path>danhadoop fs -setfacl [-R] [-b |-k -m |-x <acl_spec> <path>] |[--set <acl_spec> <path>].dfs.permissions.superusergroup
Nama kelompok superuser. Nilai default-nya adalah hadoop. Pengguna dalam kelompok ini memiliki hak istimewa superuser.
-
Simpan perubahan.
-
Klik Save di bagian bawah halaman.
-
Pada kotak dialog yang muncul, masukkan alasan eksekusi dan klik Save.
-
-
Restart layanan.
-
Di pojok kanan atas halaman layanan HDFS, pilih .
-
Pada kotak dialog yang muncul, masukkan Execution Reason dan klik OK.
-
Pada kotak dialog Confirm, klik OK.
Klik Operation History di bagian atas halaman untuk memantau progres tugas. Tunggu hingga proses restart selesai.
-
Contoh
-
Hubungkan ke kluster menggunakan SSH. Untuk informasi selengkapnya, lihat Hubungkan ke kluster.
-
Jalankan perintah berikut untuk beralih ke pengguna emrtest.
-
Jalankan perintah berikut untuk membuat direktori sebagai pengguna emrtest.
-
Jalankan perintah berikut untuk melihat izin direktori yang dibuat.
hadoop fs -ls /tmpPerintah tersebut menghasilkan output yang mirip dengan berikut:
drwxr-x--x - emrtest hadoop 0 2022-10-21 14:08 /tmp/emrtest drwxr-x--x - hadoop hadoop 0 2022-10-21 10:06 /tmp/hadoop-yarn drwx-wx-wx - hive hadoop 0 2022-10-21 10:13 /tmp/hive drwxr-x--x - hadoop hadoop 0 2022-10-21 10:23 /tmp/kyuubi-staging drwxrwxrwt - hadoop hadoop 0 2022-10-21 10:23 /tmp/logs -
Jalankan perintah berikut untuk mengatur ACL pada direktori dan memberikan izin rwx kepada pengguna foo.
-
Jalankan perintah berikut untuk melihat izin direktori.
hadoop fs -ls /tmp/Perintah tersebut menghasilkan output yang mirip dengan berikut:
drwxrwx--x+ - emrtest hadoop 0 2022-10-21 14:08 /tmp/emrtest drwxr-x--x - hadoop hadoop 0 2022-10-21 10:06 /tmp/hadoop-yarn drwx-wx-wx - hive hadoop 0 2022-10-21 10:13 /tmp/hive drwxr-x--x - hadoop hadoop 0 2022-10-21 10:23 /tmp/kyuubi-staging drwxrwxrwt - hadoop hadoop 0 2022-10-21 10:23 /tmp/logsCatatanTanda plus (+) di akhir string izin, seperti drwxrwx--x+, menunjukkan bahwa ACL telah dikonfigurasi.
-
Jalankan perintah berikut untuk melihat detail ACL.
hadoop fs -getfacl /tmp/emrtestPerintah tersebut menghasilkan output yang mirip dengan berikut:
# file: /tmp/emrtest # owner: emrtest # group: hadoop user::rwx user:foo:rwx group::r-x mask::rwx other::--x
su emrtest
hadoop fs -mkdir /tmp/emrtest
hadoop fs -setfacl -m user:foo:rwx /tmp/emrtest