Apache Livy에서 HTTPS 활성화 - Amazon EMR

Apache Livy에서 HTTPS 활성화

  1. 전송 암호화가 활성화된 상태로 Amazon EMR 클러스터를 프로비저닝합니다. 암호화에 대해 자세히 알아보려면 저장 데이터 및 전송 중 데이터 암호화를 참조하세요.

  2. 다음 콘텐츠를 가진 livy_ssl.sh이라는 파일을 생성합니다:

    #!/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. 다음 스크립트를 Amazon EMR 단계로 실행합니다. 이 스크립트는 SSL을 활성화하도록 /etc/livy/conf/livy.conf를 수정합니다.

    --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. 변경 사항을 적용하도록 Apache Livy 서비스를 다시 시작합니다. Apache Livy를 다시 시작하려면 프로세스 중지 및 다시 시작을 참조하세요.

  5. 이제 클라이언트가 HTTPS를 사용하여 통신할 수 있는지 테스트합니다. 예를 들어 작업을 제출하려면 다음 코드를 실행합니다.

    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

    HTTPS를 활성화한 경우 Livy는 명령이 수락되었고 배치 작업이 제출되었음을 알리는 응답을 보냅니다.

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