Habilitación con Apache Livy HTTPS - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Habilitación con Apache Livy HTTPS

  1. Aprovisione un EMR clúster de Amazon con el cifrado de tránsito activado. Para obtener más información sobre el cifrado, consulte Cifrado de datos en reposo y en tránsito.

  2. Cree un archivo denominado livy_ssl.sh con el siguiente contenido.

    #!/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. Ejecute el siguiente script como un EMR paso de Amazon. Este script se modifica /etc/livy/conf/livy.conf para SSL activarse.

    --steps '[{"Args":["s3://amzn-s3-demo-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. Vuelva a iniciar el servicio Apache Livy para que los cambios se apliquen. Para reiniciar Apache Livy, consulte Detener y reiniciar procesos.

  5. Pruebe que los clientes ahora pueden comunicarse utilizandoHTTPS. Para enviar un trabajo, por ejemplo, ejecute el siguiente código.

    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

    Si lo has activado HTTPS correctamente, Livy envía una respuesta en la que indica que el comando se ha aceptado y que se ha enviado el trabajo por lotes.

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