

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengkonfigurasi cluster EMR Amazon untuk pengguna HDFS yang diautentikasi KerberOS dan koneksi SSH
<a name="emr-kerberos-configuration-users"></a>

Amazon EMR membuat klien pengguna terautentikasi Kerberos untuk aplikasi yang berjalan di klaster misalnya, pengguna `hadoop`, pengguna `spark`, dan lainnya. Anda juga dapat menambahkan pengguna yang terautentikasi agar klaster memproses menggunakan Kerberos. Pengguna terautentikasi kemudian dapat connect ke klaster dengan kredensial Kerberos mereka dan bekerja dengan aplikasi. Bagi pengguna yang ingin mengautentikasi ke klaster, konfigurasi berikut diperlukan:
+ Akun Linux yang cocok dengan prinsipal Kerberos di KDC harus ada di cluster. Amazon EMR melakukan ini secara otomatis di arsitektur yang mengintegrasikan dengan Direktori Aktif.
+ Anda harus membuat direktori pengguna HDFS pada node utama untuk setiap pengguna, dan memberikan izin pengguna ke direktori.
+ Anda harus mengkonfigurasi layanan SSH sehingga GSSAPI diaktifkan pada node utama. Selain itu, pengguna harus memiliki klien SSH dengan GSSAPI diaktifkan.

## Menambahkan pengguna Linux dan prinsipal Kerberos ke node utama
<a name="emr-kerberos-configure-linux-kdc"></a>

Jika Anda tidak menggunakan Active Directory, Anda harus membuat akun Linux pada node utama cluster dan menambahkan prinsipal untuk pengguna Linux ini ke KDC. Ini termasuk prinsipal di KDC untuk simpul utama. Selain prinsipal pengguna, KDC yang berjalan pada node primer membutuhkan prinsipal untuk host lokal.

Ketika arsitektur Anda termasuk integrasi Direktori Aktif, pengguna Linux dan utama di KDC lokal, jika berlaku, dibuat secara otomatis. Anda bisa melewati langkah ini. Untuk informasi selengkapnya, lihat [Kepercayaan lintas ranah](emr-kerberos-options.md#emr-kerberos-crossrealm-summary) dan [KDC eksternal—KDC klaster di klaster yang berbeda dengan kepercayaan lintas ranah Direktori Aktif](emr-kerberos-options.md#emr-kerberos-extkdc-ad-trust-summary).

**penting**  
KDC, bersama dengan database prinsipal, hilang ketika node utama berakhir karena node utama menggunakan penyimpanan sementara. Jika Anda membuat pengguna untuk koneksi SSH, kami merekomendasikan Anda membuat kepercayaan lintas ranah dengan KDC eksternal yang dikonfigurasi untuk ketersediaan tinggi. Atau, jika Anda membuat pengguna untuk koneksi SSH menggunakan akun Linux, otomatiskan proses pembuatan akun menggunakan tindakan dan skrip bootstrap sehingga dapat diulang saat Anda membuat cluster baru.

Mengirimkan langkah ke klaster setelah Anda membuatnya atau ketika Anda membuat klaster adalah cara termudah untuk menambahkan pengguna dan utama KDC. Atau, Anda dapat terhubung ke node utama menggunakan EC2 key pair sebagai `hadoop` pengguna default untuk menjalankan perintah. Untuk informasi selengkapnya, lihat [Connect ke node primer Amazon EMR cluster menggunakan SSH](emr-connect-master-node-ssh.md).

Contoh berikut mengirimkan script bash `configureCluster.sh` untuk sebuah klaster yang sudah ada, mereferensikan ID klaster. Script disimpan ke Amazon S3. 

```
aws emr add-steps --cluster-id <j-2AL4XXXXXX5T9> \
--steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\
Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,\
Args=["s3://amzn-s3-demo-bucket/configureCluster.sh"]
```

Contoh berikut menunjukkan isi dari script `configureCluster.sh`. Script juga menangani membuat direktori pengguna HDFS dan mengaktifkan GSSAPI untuk SSH, yang dibahas di bagian berikut.

```
#!/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=([lijuan]=pwd1 [marymajor]=pwd2 [richardroe]=pwd3)
for i in ${!arr[@]}; do
    #Assign plain language variables for clarity
     name=${i} 
     password=${arr[${i}]}

     # Create a principal for each user in the primary node and require a new password on first logon
     sudo kadmin.local -q "addprinc -pw $password +needchange $name"

     #Add hdfs directory for each user
     hdfs dfs -mkdir /user/$name

     #Change owner of each user's hdfs directory to that 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
```

## Menambahkan direktori HDFS pengguna
<a name="emr-kerberos-configure-HDFS"></a>

Untuk memungkinkan pengguna Anda masuk ke cluster untuk menjalankan pekerjaan Hadoop, Anda harus menambahkan direktori pengguna HDFS untuk akun Linux mereka, dan memberikan setiap pengguna kepemilikan direktori mereka.

Mengirimkan langkah ke klaster setelah Anda membuat atau ketika Anda membuat klaster adalah cara termudah untuk membuat direktori HDFS. Atau, Anda dapat terhubung ke node utama menggunakan EC2 key pair sebagai `hadoop` pengguna default untuk menjalankan perintah. Untuk informasi selengkapnya, lihat [Connect ke node primer Amazon EMR cluster menggunakan SSH](emr-connect-master-node-ssh.md).

Contoh berikut mengirimkan script bash `AddHDFSUsers.sh` untuk sebuah klaster yang sudah ada, mereferensikan ID klaster. Script disimpan ke Amazon S3. 

```
aws emr add-steps --cluster-id <j-2AL4XXXXXX5T9> \
--steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\
Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://amzn-s3-demo-bucket/AddHDFSUsers.sh"]
```

Contoh berikut menunjukkan isi dari script `AddHDFSUsers.sh`.

```
#!/bin/bash
# AddHDFSUsers.sh script

# Initialize an array of user names from AD, or Linux users created manually on the cluster
ADUSERS=("lijuan" "marymajor" "richardroe" "myusername")

# For each user listed, create an HDFS user directory
# and change ownership to the user

for username in ${ADUSERS[@]}; do
     hdfs dfs -mkdir /user/$username
     hdfs dfs -chown $username:$username /user/$username
done
```

## Mengaktifkan GSSAPI untuk SSH
<a name="emr-kerberos-ssh-config"></a>

Agar pengguna yang diautentikasi KerberOS dapat terhubung ke node utama menggunakan SSH, layanan SSH harus mengaktifkan otentikasi GSSAPI. Untuk mengaktifkan GSSAPI, jalankan perintah berikut dari baris perintah node utama atau gunakan langkah untuk menjalankannya sebagai skrip. Setelah mengonfigurasi ulang SSH, Anda harus me-restart layanan.

```
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
```