■ はじめに
https://dk521123.hatenablog.com/entry/2019/11/10/205535
で、ローカル環境に、 Glue v1.0/v2.0 の動作環境を作成した。 以下の関連記事でGlue Version 3.0 が紹介したが、
https://dk521123.hatenablog.com/entry/2021/09/18/232556
どうも、AWS公式においても、Glue Version 3.0のローカル環境が できているとの噂を聞いたので、メモ。
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/aws-glue-programming-etl-libraries.html
より抜粋 ~~~~~~ AWS Glue バージョン 3.0 の場合は、ブランチ master を確認します。 ~~~~~~ => 確かにある!!? なお、Glue4.0版は、以下の関連記事を参照のこと。
Docker compose ~ LocalStack/Glue4.0 ~
https://dk521123.hatenablog.com/entry/2023/03/25/021432
目次
【0】設定環境例 【1】git の設定 1)git の インストール 【2】Pythonの設定 1)Pythonのインストール 2)シンボリックリンクを設定 3)pip のインストール 【3】Java8の設定 1)Java8のインストール 【4】Apache Mavenの設定 1)Apache Mavenのインストール 【5】Sparkのインストール 【6】aws-glue-libのインストール 【7】PySpark / boto3 / pytest のインストール 【8】[任意] VS Code のインストール 【9】環境変数設定 【10】動作確認 1)Spark 起動確認 2)Glue PySpark 起動確認
【0】設定環境例
* OS : Windows11 * VirtualBox : v6.1.34 * Guest OS : Linux Mint v20.3-mate-64bit => Windows の仮想環境設定については、以下の関連記事を参照のこと。
https://dk521123.hatenablog.com/entry/2022/01/30/171423
【1】git の設定
1)git の インストール
# とりあえず、念のため、バージョンを確認 git --version sudo apt install git
【2】Pythonの設定
1)Pythonのインストール
# とりあえず、念のため、Pythonのバージョンを確認 python -V sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update # Glue3.0 は、Python3.7ベースで動いているため sudo apt install python3.7 python3.7-dev python3.7-venv python3-distutils # pipのインストール時に # エラー「launchpadlib 1.10.13 requires testresources, which is not installed.」対策 # https://qiita.com/poiulkhjmnbv/items/1b05a829afa53f4d9aac sudo apt install python3-testresources
2)シンボリックリンクを設定
# バージョンを切り替えるためにシンボリックリンクを設定 # sudo update-alternatives --install <作成するシンボリックのパス> <グループ名> <実体へのパス> <優先度> sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 1 # sudo update-alternatives --install <グループ名> sudo update-alternatives --config python3 1 << を選択 (python3.7) # 「python -V」を実行した際に、 # 「ModuleNotFoundError: No module named 'apt_pkg'」 # が表示されるので、、、(3.8がデフォルトで入っている) # https://mimizublog.com/sudo-apt-update%E3%81%A7%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E3%81%A7%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F sudo rm -rf /usr/bin/python sudo ln -s /usr/bin/python3.7 /usr/bin/python sudo rm -rf /usr/bin/python3 sudo ln -s /usr/bin/python3.8 /usr/bin/python3 # Pythonのバージョンを確認 (python3.7 になっているはず) python -V
3)pip のインストール
https://www.python-izm.com/tips/pip/
# を参考に、、、 # pip が入っているか確認 python -m pip -V # 入っていなかったら、pip のインストールを行う curl -OL https://bootstrap.pypa.io/get-pip.py sudo python3.7 get-pip.py # 確認 python -m pip -V
【3】Java8の設定
1)Java8のインストール
# バージョンを確認 java -version # もし、Java1.8じゃなかった場合、インストールする sudo apt install openjdk-8-jdk # Java1.8 をデフォルトで動くようにする(java-8-openjdkを選択) sudo update-alternatives --config java # 再度、バージョンを確認 (Java1.8が表示されるはず) java -version
【4】Apache Mavenの設定
1)Apache Mavenのインストール
curl -OL https://aws-glue-etl-artifacts.s3.amazonaws.com/glue-common/apache-maven-3.6.0-bin.tar.gz sudo tar -zxvf apache-maven-3.6.0-bin.tar.gz -C /opt/ # リンクを張る sudo ln -s /opt/apache-maven-3.6.0 /opt/apache-maven
【5】Sparkのインストール
# Glue v3.0用のSpark v3.1.1 をダウンロードする curl -OL https://aws-glue-etl-artifacts.s3.amazonaws.com/glue-3.0/spark-3.1.1-amzn-0-bin-3.2.1-amzn-3.tgz # インストール # 「tar -xzvf spark-3.1.1-amzn-0-bin-3.2.1-amzn-3.tgz」 だと # 「gzip: stdin: not in gzip format」って怒られる tar -xvf spark-3.1.1-amzn-0-bin-3.2.1-amzn-3.tgz sudo mv spark-3.1.1-amzn-0-bin-3.2.1-amzn-3 /opt/ # リネーム / リンクを張る sudo ln -s /opt/spark-3.1.1-amzn-0-bin-3.2.1-amzn-3 /opt/spark
【6】aws-glue-libのインストール
https://github.com/awslabs/aws-glue-libs
# で確認した上で... git clone https://github.com/awslabs/aws-glue-libs.git -b master --depth 1 sudo mv aws-glue-libs /opt/ # a: all(全て), o: other(その他), +: 指定した権限を付与, w: write(書き込み), r: read(読み込み) sudo chmod -R ao+wr /opt/aws-glue-libs
【7】PySpark / boto3 / pytest のインストール
# PySpark のインストール sudo python -m pip install pyspark # boto3 / pytest のインストール pip install boto3 pytest
【8】[任意] VS Code のインストール
[1] 以下のサイトから、最新のVS Code (.debファイル)をダウンロード => 今回の場合、「code_1.63.2-1639562499_amd64.deb」
https://code.visualstudio.com/download
[2] インストールする ~~~~ sudo apt install ./code_1.63.2-1639562499_amd64.deb ~~~~ [3] 「code」と入力し、VS Codeを起動する
【9】環境変数設定
vi ~/.bash_profile ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ export SPARK_HOME=/opt/spark export PYSPARK_PYTHON=/usr/bin/python3 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export AWS_REGION=ap-northeast-1 export AWS_DEFAULT_REGION=ap-northeast-1 export PATH=$PATH:$SPARK_HOME/bin:$PYSPARK_PYTHON:/sbin:/opt/apache-maven/bin:/opt/aws-glue-libs/bin ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 適用 source ~/.bash_profile # 確認 echo ${SPARK_HOME} => /opt/spark # mavenの確認 mvn --version
【10】動作確認
1)Spark 起動確認
spark-shell :quit << 起動確認できたら、辞める
2)Glue PySpark 起動確認
gluepyspark # 色々なものをダウンロードするらしく、めちゃ長い、、、 exit() << 起動確認できたら、辞める
関連記事
AWS Glue ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/10/01/221926
AWS Glue ~ ローカル環境を作成する ~
https://dk521123.hatenablog.com/entry/2019/11/10/205535
AWS Glue ~ Glue Version 3.0 ~
https://dk521123.hatenablog.com/entry/2021/09/18/232556
LocalStack ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/12/14/010524
LocalStack ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2019/12/16/231149
LocalStack ~ awscli-local ~
https://dk521123.hatenablog.com/entry/2020/12/16/211127
Docker compose ~ LocalStack/Glue4.0 ~
https://dk521123.hatenablog.com/entry/2023/03/25/021432