Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Peniruan pengguna
Sebuah tugas Spark berjalan di dalam notebook Jupyter melintasi beberapa aplikasi selama pelaksanaannya di Amazon EMR. Misalnya, PySpark 3 kode yang dijalankan pengguna di dalam Jupyter diterima oleh Sparkmagic, yang menggunakan permintaan HTTP POST untuk mengirimkannya ke Livy, yang kemudian menciptakan tugas Spark untuk mengeksekusi pada klaster menggunakan YARN.
Secara default, tugas YARN yang dikirimkan dengan cara ini dijalankan sebagai pengguna livy
, terlepas dari pengguna yang memulai pekerjaan. Dengan menyiapkan Peniruan pengguna Anda dapat memiliki ID pengguna dari pengguna notebook yang juga menjadi pengguna yang terkait dengan tugas YARN. Daripada memiliki tugas yang dimulai oleh shirley
dan diego
terkait dengan pengguna livy
, tugas yang dimulai setiap pengguna terkait dengan shirley
dan diego
masing-masing. Hal ini membantu Anda untuk melakukan audit penggunaan Jupyter dan mengelola aplikasi dalam organisasi Anda.
Konfigurasi ini hanya didukung bila panggilan dari Sparkmagic ke Livy tidak diautentikasi. Aplikasi yang menyediakan autentikasi atau proksi lapisan antara aplikasi Hadoop dan Livy (seperti Apache Knox Gateway) tidak didukung. Langkah-langkah untuk mengonfigurasi peniruan pengguna di bagian ini mengasumsikan bahwa JupyterHub dan Livy berjalan pada simpul utama yang sama. Jika aplikasi Anda memiliki klaster terpisah, Langkah 3: Buat direktori home HDFS untuk pengguna perlu dimodifikasi agar direktori HDFS bisa dibuat pada simpul utama Livy.
Langkah-langkah untuk mengonfigurasi peniruan pengguna
Langkah 1: Konfigurasikan Livy
Anda menggunakan klasifikasi konfigurasi livy-conf
dan core-site
ketika membuat klaster untuk mengaktifkan peniruan pengguna Livy seperti yang ditunjukkan dalam contoh berikut. Simpan klasifikasi konfigurasi sebagai JSON dan kemudian referensikan ketika Anda membuat klaster, atau tentukan klasifikasi konfigurasi inline. Untuk informasi selengkapnya, lihat Konfigurasikan aplikasi.
[ { "Classification": "livy-conf", "Properties": { "livy.impersonation.enabled": "true" } }, { "Classification": "core-site", "Properties": { "hadoop.proxyuser.livy.groups": "*", "hadoop.proxyuser.livy.hosts": "*" } } ]
Langkah 2: Tambahkan pengguna
Tambahkan JupyterHub pengguna menggunakan PAM atau LDAP. Untuk informasi selengkapnya, lihat Menggunakan autentikasi PAM dan Menggunakan autentikasi LDAP.
Langkah 3: Buat direktori home HDFS untuk pengguna
Anda terhubung ke simpul utama untuk membuat pengguna. Sementara masih terhubung ke simpul utama, salin isi di bawah ini dan simpan ke file skrip. Skrip menciptakan direktori home HDFS untuk setiap JupyterHub pengguna pada simpul master. Skrip mengasumsikan Anda menggunakan ID pengguna administrator default,jovyan
.
#!/bin/bash CURL="curl --silent -k" HOST=$(curl -s http://169.254.169.254/latest/meta-data/local-hostname) admin_token() { local user=
jovyan
local pwd=jupyter
local token=$($CURL https://$HOST:9443/hub/api/authorizations/token \ -d "{\"username\":\"$user\", \"password\":\"$pwd\"}" | jq ".token") if [[ $token != null ]]; then token=$(echo $token | sed 's/"//g') else echo "Unable to get Jupyter API Token." exit 1 fi echo $token } # Get Jupyter Admin token token=$(admin_token) # Get list of Jupyter users users=$(curl -XGET -s -k https://$HOST:9443/hub/api/users \ -H "Authorization: token $token" | jq '.[].name' | sed 's/"//g') # Create HDFS home dir for user in ${users[@]}; do echo "Create hdfs home dir for $user" hadoop fs -mkdir /user/$user hadoop fs -chmod 777 /user/$user done