부트스트랩 단계 후에 모든 Amazon EMR 노드를 업데이트하려면 어떻게 해야 하나요?

2분 분량
0

BOOTSTRAPPING 상태가 완료된 후 Amazon EMR 클러스터의 모든 노드를 업데이트하고 싶습니다.

간략한 설명

부트스트랩 단계는 Amazon EMR이 Apache 하둡 및 Apache Spark와 같은 애플리케이션을 설치하고 구성하기 전에 발생합니다. Amazon EMR이 애플리케이션을 설치하고 구성한 후 모든 클러스터 노드를 추가로 변경하려면 다른 스크립트를 다운로드하여 실행하는 부트스트랩 작업을 실행합니다.

해결 방법

1.    모든 클러스터 노드에서 적용하려는 변경 사항을 지정하는 bash 스크립트를 만듭니다. 다음 예제를 참조하세요.

예제 1: 이 스크립트는 구성 파일(/etc/hadoop/conf/hadoop-env.sh)을 사용할 수 있을 때까지 기다린 다음 추가 작업을 수행합니다.

#!/bin/bash
#
# This is an example of script_b.sh
#
while [ ! -f /etc/hadoop/conf/hadoop-env.sh ]
do
  sleep 1
done
#
# Now the file is available, do your work here
#

exit 0

예제 2: 이 스크립트는 EMR 클러스터가 WAITING 상태가 될 때까지 기다렸다가 추가 사용자 지정을 구현합니다. 이를 통해 EMR 클러스터가 하둡 및 기타 애플리케이션의 설치 및 구성을 마칠 수 있습니다.

#!/bin/bash
#
# This is an example of script_b.sh
#
# Wait for EMR provisioning to become successful.
#
while [[ $(sed '/localInstance {/{:1; /}/!{N; b1}; /nodeProvision/p}; d' /emr/instance-controller/lib/info/job-flow-state.txt | sed '/nodeProvisionCheckinRecord {/{:1; /}/!{N; b1}; /status/p}; d' | awk '/SUCCESSFUL/' | xargs) != "status: SUCCESSFUL" ]];
do
  sleep 1
done
#
# Now the EMR cluster is ready. Do your work here.
#

exit 0

2.    EMR 클러스터를 시작하고 다음과 유사한 부트스트랩 작업을 추가합니다. 이 스크립트는 이전 단계( script_b.sh)에서 만든 스크립트를 다운로드한 다음 백그라운드에서 실행합니다.

#!/bin/bash
aws s3 cp s3://doc-example-bucket/script_b.sh .
chmod +x script_b.sh
nohup ./script_b.sh &>/dev/null &

관련 정보

클러스터 수명 주기 이해

AWS 공식
AWS 공식업데이트됨 2년 전