Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Konfigurasikan cluster yang didedikasikan dengan Amazon KDC EMR
Topik ini memandu Anda melalui pembuatan cluster dengan pusat distribusi kunci khusus cluster (KDC), menambahkan akun Linux secara manual ke semua node cluster, menambahkan prinsip Kerberos ke node utama, dan memastikan bahwa komputer klien KDC memiliki klien Kerberos yang diinstal.
Untuk informasi selengkapnya tentang EMR dukungan Amazon untuk Kerberos danKDC, serta tautan ke Dokumentasi MIT Kerberos, lihat. Gunakan Kerberos untuk otentikasi dengan Amazon EMR
Langkah 1: Buat klaster Kerberized
-
Buat konfigurasi keamanan yang mengaktifkan Kerberos. Contoh berikut menunjukkan
create-security-configuration
perintah menggunakan AWS CLI yang menentukan konfigurasi keamanan sebagai struktur JSON inline. Anda juga dapat membuat referensi pada file yang disimpan secara lokal.aws emr create-security-configuration --name
MyKerberosConfig
\ --security-configuration '{"AuthenticationConfiguration": {"KerberosConfiguration": {"Provider": "ClusterDedicatedKdc", "ClusterDedicatedKdcConfiguration": {"TicketLifetimeInHours":24
}}}}' -
Buat sebuah klaster yang membuat referensi pada konfigurasi keamanan, menetapkan atribut Kerberos untuk klaster, dan menambahkan akun Linux menggunakan tindakan bootstrap. Contoh berikut menunjukkan perintah
create-cluster
menggunakan AWS CLI. Perintah referensi konfigurasi keamanan yang Anda buat di atas,MyKerberosConfig
. Itu juga membuat referensi script sederhana,createlinuxusers.sh
, sebagai tindakan bootstrap, yang Anda buat dan unggah ke Amazon S3 sebelum membuat klaster.aws emr create-cluster --name "
MyKerberosCluster
" \ --release-labelemr-7.5.0
\ --instance-typem5.xlarge
\ --instance-count3
\ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2KeyPair
\ --service-role EMR_DefaultRole \ --security-configurationMyKerberosConfig
\ --applications Name=Hadoop
Name=Hive
Name=Oozie
Name=Hue
Name=HCatalog
Name=Spark
\ --kerberos-attributes Realm=EC2.INTERNAL
,\ KdcAdminPassword=MyClusterKDCAdminPwd
\ --bootstrap-actionsPath=s3://
amzn-s3-demo-bucket
/createlinuxusers.shKode berikut menunjukkan isi
createlinuxusers.sh
skrip, yang menambahkan user1, user2, dan user3 ke setiap node di cluster. Pada langkah berikutnya, Anda menambahkan pengguna ini sebagai KDC prinsipal.#!/bin/bash sudo adduser user1 sudo adduser user2 sudo adduser user3
Langkah 2: Tambahkan prinsipal keKDC, buat direktori HDFS pengguna, dan konfigurasikan SSH
KDCBerjalan pada node primer membutuhkan prinsipal yang ditambahkan untuk host lokal dan untuk setiap pengguna yang Anda buat di cluster. Anda juga dapat membuat HDFS direktori untuk setiap pengguna jika mereka perlu terhubung ke cluster dan menjalankan pekerjaan Hadoop. Demikian pula, konfigurasikan SSH layanan untuk mengaktifkan GSSAPI otentikasi, yang diperlukan untuk Kerberos. Setelah Anda mengaktifkanGSSAPI, restart SSH layanan.
Cara termudah untuk menyelesaikan tugas-tugas ini adalah kirim langkah ke klaster. Contoh berikut kirim ke script bash configurekdc.sh
untuk klaster yang Anda buat pada langkah sebelumnya, mereferensikan ID klasternya. Script disimpan ke Amazon S3. Atau, Anda dapat terhubung ke node utama menggunakan EC2 key pair untuk menjalankan perintah atau mengirimkan langkah selama pembuatan cluster.
aws emr add-steps --cluster-id
<j-2AL4XXXXXX5T9>
--steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://myregion
.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://amzn-s3-demo-bucket
/configurekdc.sh"]
Kode berikut menunjukkan isi configurekdc.sh
skrip.
#!/bin/bash #Add a principal to the KDC for the primary node, using the primary node's returned host name sudo kadmin.local -q "ktadd -k /etc/krb5.keytab host/`hostname -f`" #Declare an associative array of user names and passwords to add declare -A arr arr=([user1]=pwd1 [user2]=pwd2 [user3]=pwd3) for i in ${!arr[@]}; do #Assign plain language variables for clarity name=${i} password=${arr[${i}]} # Create principal for sshuser in the primary node and require a new password on first logon sudo kadmin.local -q "addprinc -pw $password +needchange $name" #Add user hdfs directory hdfs dfs -mkdir /user/$name #Change owner of user's hdfs directory to user hdfs dfs -chown $name:$name /user/$name done # Enable GSSAPI authentication for SSH and restart SSH service sudo sed -i 's/^.*GSSAPIAuthentication.*$/GSSAPIAuthentication yes/' /etc/ssh/sshd_config sudo sed -i 's/^.*GSSAPICleanupCredentials.*$/GSSAPICleanupCredentials yes/' /etc/ssh/sshd_config sudo systemctl restart sshd
Pengguna yang Anda tambahkan sekarang harus dapat terhubung ke cluster menggunakanSSH. Untuk informasi selengkapnya, lihat Menggunakan SSH untuk terhubung ke cluster Kerberized dengan Amazon EMR.