スキップしてコンテンツを表示

EMR クラスターに Python ライブラリをインストールする際の問題をトラブルシューティングする方法を教えてください。

所要時間1分
0

Amazon EMR クラスターに Python ライブラリをインストールする際の問題をトラブルシューティングしたいです。

解決策

Python パッケージは Amazon EMR ではご利用いただけません

注: デフォルトでは、Amazon EMR が Python をインストールします。ただし、Amazon EMR はすべての Python ライブラリをインストールするわけではありません。

Python パッケージが Amazon EMR で利用できない場合は、パッケージが見つからないというエラーが発生したノードにログインします。次に、次の例のようなコマンドを実行して、Python パッケージがインストールされているかどうかを確認します。

特定のパッケージがインストールされているかどうかを確認するコマンドの例:

sudo pip3 freeze | grep pandas;
sudo pip3 freeze | grep numpy

注: pandasnumpy を確認したい Python パッケージに置き換えてください。

想定される出力:

pandas==1.3.5
numpy==1.21.6

クラスターにインストールされているすべての Python ライブラリのリストを表示するコマンド例:

sudo pip3 freeze

想定される出力:

aws-cfn-bootstrap==2.0
beautifulsoup4==4.9.3
boto==2.49.0
click==8.1.3
docutils==0.14
jmespath==1.0.1   
numpy==1.21.6  
pandas==1.3.5
...

Python シェルでは、次の例のようなコマンドを実行することもできます。

import pandas as pd;
import numpy as np

前述のコマンドが ModuleNotFoundError: No module named 'python_library' などのエラーを返す場合、ライブラリはインストールされていません。

Amazon EMR クラスターに Python ライブラリをインストールするには、次のコマンドを実行します。

sudo pip3 install pandas scipy sklearn

注: pandas scipy sklearn を、インストールする Python ライブラリに置き換えてください。

または、次のコマンドを実行して、.txt ファイルから Python パッケージを読み込んでインストールすることもできます。

sudo pip3 install -r requirements.txt

注: requirements.txt を、インストールする Python パッケージとライブラリのリストを含む .txt ファイルに置き換えてください。

詳細については、Python パッケージングのウェブサイトにある「Installing packages」(パッケージのインストール) を参照してください。また、「Installing and using kernels and libraries in EMR Studio」(EMR Studio でのカーネルとライブラリのインストールと使用) も参照してください。

Python パッケージは、クラスターのスケーリング中に新しくプロビジョニングされたコアノードまたはタスクノードでは使用できません

個々のノードに手動でインストールされた Python パッケージは、クラスターのスケーリング中に、新しくプロビジョニングされたコアノードまたはタスクノードで使用できない場合があります。

新しくプロビジョニングされたノードにパッケージが存在することを確認するには、ライブラリを手動でインストールするのではなく、ブートストラップアクションを使用してライブラリをインストールします。

インストールするパッケージがブートストラップログを使用しても使用できない場合は、ブートストラップログをチェックして問題を特定してください。

実行中のインスタンス

実行中のインスタンスのブートストラップログを確認するには、まず SSH を使用してプライマリノードに接続します。次に、/var/log/bootstrap-actions/bootStrapNumber/stderr/var/log/bootstrap-actions/bootStrapNumber/stdout にあるブートストラップログでエラーがないか確認します。

注: 前述のパスで、bootStrapNumber をブートストラップスクリプト番号に置き換えてください。

新しいインスタンス

新しいインスタンスの場合、ブートストラップログは Amazon EMR ログ記録用に設定した Amazon Simple Storage Service (Amazon S3) バケットにキャプチャされます。s3://DOC-EXAMPLE-LOG-BUCKET/cluster-id/node/instance-id/bootstrap-actions/bootStrapNumber/stdouts3://DOC-EXAMPLE-LOG-BUCKET/cluster-id/node/instance-id/bootstrap-actions/bootStrapNumber/stderr にあるブートストラップログでエラーがないか確認してください。

注: 前述のパスで、bootStrapNumber はブートストラップスクリプト番号を表します。

AWS公式更新しました 5ヶ月前
コメントはありません

関連するコンテンツ