Mengaktifkan HTTPS dengan Apache Livy - Amazon EMR

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

Mengaktifkan HTTPS dengan Apache Livy

  1. Menyediakan klaster Amazon EMR dengan enkripsi transit diaktifkan. Untuk mempelajari enkripsi lebih lanjut, lihat Enkripsi data at rest dan transit.

  2. Buat file bernama livy_ssh.sh dengan konten berikut.

    #!/bin/bash KEYSTORE_FILE=`awk '/ssl.server.keystore.location/{getline; print}' /etc/hadoop/conf/ssl-server.xml | sed -e 's/<[^>]*>//g' | tr -d ' \t\n\r\f'` KEYSTORE_PASS=`awk '/ssl.server.keystore.password/{getline; print}' /etc/hadoop/conf/ssl-server.xml | sed -e 's/<[^>]*>//g' | tr -d ' \t\n\r\f'` KEY_PASS=`awk '/ssl.server.keystore.keypassword/{getline; print}' /etc/hadoop/conf/ssl-server.xml | sed -e 's/<[^>]*>//g' | tr -d ' \t\n\r\f'` echo "livy.keystore $KEYSTORE_FILE livy.keystore.password $KEYSTORE_PASS livy.key-password $KEY_PASS" | sudo tee -a /etc/livy/conf/livy.conf >/dev/null sudo systemctl restart livy-server.service
  3. Jalankan skrip berikut sebagai langkah Amazon EMR. Script ini memodifikasi/etc/livy/conf/livy.conf untuk mengaktifkan SSL.

    --steps '[{"Args":["s3://DOC-EXAMPLE-BUCKET/livy_ssl.sh"],"Type":"CUSTOM_JAR","ActionOnFailure":"CONTINUE","Jar":"s3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar","Properties":"","Name":"Custom JAR"}]'
  4. Mulai ulang layanan Apache Livy sehingga perubahan berlaku. Untuk memulai ulang Apache Livy, lihat Menghentikan dan memulai ulang proses.

  5. Uji bahwa klien sekarang dapat berkomunikasi menggunakan HTTPS. Untuk mengirimkan pekerjaan, misalnya, jalankan kode berikut.

    curl -k -X POST --data '{"file": "local:///usr/lib/spark/examples/jars/spark-examples.jar", "className": "org.apache.spark.examples.SparkPi"}' \ -H "Content-Type: application/json" \ https://EMR_Master_Node_Host:8998/batches

    Jika Anda berhasil mengaktifkan HTTPS, Livy mengirimkan respons yang menunjukkan bahwa perintah diterima dan bahwa tugas batch telah dikirim.

    {"id":1,"name":null,"owner":null,"proxyUser":null,"state":"starting","appId":null,"appInfo": {"driverLogUrl":null,"sparkUiUrl":null},"log":["stdout: ","\nstderr: ","\nYARN Diagnostics: "]}