AWS Glue 로컬 개발환경 세팅하기

김재민·2024년 10월 14일
0

glue

목록 보기
1/1

https://docs.aws.amazon.com/ko_kr/glue/latest/dg/aws-glue-programming-etl-libraries.html

Background


  • AWS Glue 콘솔에서 스크립트 개발 시 저장 버튼을 누르지 않고 페이지 이동 또는 세션이 끊길 경우 내역이 모두 휘발 된다.
  • Glue 로컬 개발 환경을 구성하고 코드를 안정적으로 개발할 수 있도록 한다.

Docker run


Glue Spark 컨테이너 실행

# 나의 로컬 작업 경로 환경변수 선언
$ export JUPYTER_WORKSPACE_LOCATION=/Users/gimjaemin/Tving/AwsGlue

# 나는 restart 옵션을 always 로 하였다.
$ docker run -it \
  -v ~/.aws:/home/glue_user/.aws \
  -v $JUPYTER_WORKSPACE_LOCATION:/home/glue_user/workspace/jupyter_workspace/ \
  -e DISABLE_SSL=true \
  -p 4040:4040 \
  -p 18080:18080 \
  -p 8998:8998 \
  -p 8888:8888 \
  --name glue_jupyter_lab \
  --restart always \
  amazon/aws-glue-libs:glue_libs_4.0.0_image_01 \
  /home/glue_user/jupyter/jupyter_start.sh

Jupyter 노트북 접속(http://localhost:8888/lab)

AWS 인증정보 설정

# 로컬
$ docker exec -it glue_jupyter_lab /bin/bash

# 컨테이너
$ export AWS_ACCESS_KEY_ID="..."
$ export AWS_SECRET_ACCESS_KEY="..."
$ export AWS_SESSION_TOKEN="..."

또는 주피터 노트북을 통해 Terminal 에서 입력

또는 로컬 ~/.aws/credentials 에 default 프로필 액세스 인증 정보를 추가해서 사용할 수 있다.

오류 대응

ValueError: Cannot run multiple SparkContexts at once; existing SparkContext 에러가 발생하면, SparkContext() 대신 SparkContext.getOrCreate() 를 사용하면 된다.
이미 컨테이너가 실행 되면서 SparkContext 가 생성 되어있기 때문에 발생할 수 있다.


Spark UI


profile
안녕하세요. 데이터 엔지니어 김재민 입니다.

0개의 댓글