본문 바로가기
ML | DL | Big data/Data Engineering

AWS EMR에서 매번 같은 버전의 아나콘다 사용하기

by 썽하 2021. 3. 9.

 

AWS EMR을 통해 ETL을 매번 작업하다 보면 콘다 버전이 꼬이는 경우가 있는데 그럴 경우

아나콘다 설치 파일을 s3에 저장해놓고 EMR 실행 시 부트스트랩 코드를 통해 설치해주면 된다.

 

내가 주로 쓰는 부트스트랩 코드는 다음 두가지다.

 

#!/bin/bash
#
echo "Updating Anaconda (findspark, boto3)..." >> ~/install.log; echo `date` >> ~/install.log
#/mnt/anaconda/bin/conda install -c pyspark -y
/mnt/anaconda/bin/conda install -c conda-forge findspark -y
/mnt/anaconda/bin/conda install libgcc=5.2.0 -y
/mnt/anaconda/bin/conda install -c conda-forge pandas-summary -y
/mnt/anaconda/bin/conda install -c conda-forge tqdm -y
/mnt/anaconda/bin/conda install -c anaconda gensim -y
/mnt/anaconda/bin/conda install boto3 -y
echo "Finished installation:" >> ~/install.log; echo `date` >> ~/install.log

 

#!/bin/bash
#
echo "Downloading Anaconda ..." >> ~/install.log; echo `date` >> ~/install.log
aws s3 cp s3://my-s3-path/Anaconda3-2019.10-Linux-x86_64.sh Anaconda3-2019.10-Linux-x86_64.sh 
#
echo "Installing Anaconda ..." >> ~/install.log; echo `date` >> ~/install.log
bash Anaconda3-2019.10-Linux-x86_64.sh -p /mnt/anaconda -b
#sudo update-alternatives --install /usr/bin/python python /mnt/anaconda/bin/python3.7 10
#
echo "Updating Anaconda ..." >> ~/install.log; echo `date` >> ~/install.log
/mnt/anaconda/bin/conda update conda -y
/mnt/anaconda/bin/conda update anaconda -y
/mnt/anaconda/bin/conda update --all -y
#/mnt/anaconda/bin/conda create --name py36 python=3.6 -y
#
echo " # Create new line" >> ~/.bashrc
echo "alias python=/mnt/anaconda/bin/python3.7" >> ~/.bashrc
echo "PYSPARK_PYTHON=python" >> ~/.bashrc
echo "alias conda=/mnt/anaconda/bin/conda" >> ~/.bashrc
echo "alias jupyter=/mnt/anaconda/bin/jupyter" >> ~/.bashrc
#
#echo "Downloading NLTK data..." >> ~/install.log; echo `date` >> ~/install.log
#/mnt/anaconda/bin/python2.7 -c "from nltk import download; download('punkt'); download('stopwords'); download('wordnet')" >> ~/install.log
#sudo mv ~/nltk_data /usr/lib/
#
rm Anaconda3-2019.10-Linux-x86_64.sh
echo "Finished installation:" >> ~/install.log; 
echo `date` >> ~/install.log
echo "Finished installation (install-anaconda37) :" >> ~/install.log;
echo `date` >> ~/install.log
exit 0

 

이와 같은 Bash 스크립트와 Anaconda3-2019.10-Linux-x86_64.sh 파일(혹은 본인이 원하는 설치 파일)을 S3에 저장해 둔 뒤 적당한 경로로 변경하여 EMR실행 시 부트스트랩 경로에 추가하면 된다.

댓글