Abilitazione di HTTPS con Apache Livy - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Abilitazione di HTTPS con Apache Livy

  1. Esegui il provisioning di un cluster Amazon EMR con crittografia di transito abilitata. Per ulteriori informazioni sulla crittografia, consulta Crittografia dei dati a riposo e in transito.

  2. Crea un file denominato livy_ssl.sh con i seguenti contenuti.

    #!/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. Esegui lo script seguente come fase di Amazon EMR. Questo script modifica /etc/livy/conf/livy.conf per attivare 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. Riavvia il servizio Apache Livy in modo che le modifiche diventino effettive. Per riavviare Apache Livy, consulta Arresto e riavvio di processi.

  5. Verifica che i client possano comunicare utilizzando l'HTTPS. Per inviare un processo, ad esempio, esegui il codice seguente.

    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

    Se HTTPS è stato abilitato correttamente, Livy invia un messaggio di risposta indicante che il comando è stato accettato e che il processo batch è stato inviato.

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