Amazon EMR で、ワークスペースディレクトリをマウントしたり、「ワークスペースをマウントできません」というエラーを解決したりしたいです。
解決策
ワークスペースディレクトリをマウントする
ワークスペースディレクトリをクラスターにマウントするには、Amazon EMR で マジックコマンド %mount_workspace_dir を実行します。このコマンドを使用すると、ワークスペースディレクトリをマウントするときに、ワークスペース内の他のファイルからコードをインポートして実行できます。
「ワークスペースをマウントできません」というエラーを解決する
マジックコマンド %mount_workspace_dir を実行してワークスペースをマウントすると、次のエラーが発生する場合があります。
"UsageError: ワークスペースをマウントできません。stdout= stderr=fuse: compat_dir は不明なオプションです"
"UsageError: S3-fuse がインストールされていません"
上記のエラーを解決するには、以下のいずれかの方法を使用します。
s3fs-fuse をインストールする
Amazon EMR リリースバージョン 5.3.x または 6.x を使用している場合は、次の手順を実行します。
- Spark、Livy、Jupyter Enterprise Gateway アプリケーションで、Amazon EMR クラスター、ワークスペース、Spark マジックをセットアップします。詳細については、「マジックコマンドでカーネルを拡張する」を参照してください。
- SSH を使用して Amazon EMR クラスターノードに接続します。
- s3fs-fuse をインストールします。
sudo amazon-linux-extras install epel -y
sudo yum install s3fs-fuse -y
Amazon EMR リリースバージョン 7.x を使用している場合は、次の手順を実行します。
-
s3fs-fuse のインストールについては、GitHub のウェブサイトで s3fs-fuse を参照してください。または、次のコマンドを実行します。
sudo yum install automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel -y
git clone https://github.com/s3fs-fuse/s3fs-fuse.git
cd s3fs-fuse
./autogen.sh
./configure --prefix=/usr --with-openssl
make
sudo make install
-
emr-notebooks-magics をインストールします。
注: Amazon EMR Notebooks マジックをインストールする前に、「マジックコマンドでカーネルを拡張する」を参照してください。
%pip install emr-notebooks-magics --upgrade
-
ノートブックにワークスペースディレクトリをマウントします。
%mount_workspace_dir.
注: Amazon EMR リリース 6.0 から 6.9.0、および 5.0 から 5.36.0 では、emr-notebooks-magics パッケージバージョン 0.2.0 以降のみがマジックコマンド %mount_workspace_dir をサポートしています。
-
ワークスペースディレクトリが正常にマウントされていることを確認します。
%%sh
ls
s3fs パッケージをインストールする
s3fs パッケージをインストールするには、次のコマンドを実行します。
wget https://rpmfind.net/linux/epel/8/Everything/aarch64/Packages/s/s3fs-fuse-1.93-1.el8.aarch64.rpm -P /home/hadoop/;sudo yum localinstall /home/hadoop/s3fs-fuse-1.93-1.el8.aarch64.rpm -y;rm /home/hadoop/s3fs-fuse-1.93-1.el8.aarch64.rpm
次の出力が表示されます。
--2024-05-12 15:49:13-- https://rpmfind.net/linux/epel/8/Everything/aarch64/Packages/s/s3fs-fuse-1.93-1.el8.aarch64.rpm
Resolving rpmfind.net (rpmfind.net)... 195.220.108.108
Connecting to rpmfind.net (rpmfind.net)|195.220.108.108|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 292036 (285K) [application/x-rpm]
Saving to: "/home/hadoop/s3fs-fuse-1.93-1.el8.aarch64.rpm"
上記のコマンドでは、EPEL リポジトリから s3fs-fuse パッケージバージョンをダウンロードし、ダウンロードしたバージョンをインストールした後、ダウンロードしたファイルをクリーンアップします。詳細については、RPM find ウェブサイトで「 RPM リソース s3fs-fuse (aarch-64)」を参照してください。Red Hat のウェブサイトで、「yum を使用してローカル rpm ファイルをインストールする方法」も参照してください。
注: 前のステップを完了しても問題が解決しない場合は、インスタンスタイプを x86_64 アーキテクチャでビルドしたインスタンスに変更してください。または、s3fs-fuse パッケージの新しいバージョンをインストールします。