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실행 시 부트스트랩 경로에 추가하면 된다.
'ML | DL | Big data > Data Engineering' 카테고리의 다른 글
지식 베이스(Knowledge base)에 대해 알아보자 (0) | 2021.10.08 |
---|---|
지식 그래프(Knowledge Graph)가 무엇인지 알아보자 (0) | 2021.10.07 |
ETL, ELT의 4가지 주요 차이점 (0) | 2021.04.26 |
Apache Spark - Master, Slave 구성 별 메모리, 코어 수 설정하기 (0) | 2021.03.09 |
Apache Spark 3.0 변경점/변화 총 정리 (0) | 2020.09.10 |
댓글