AWS EMR にパッケージをインストールする

AWS EMR にパッケージをインストールする

インストールしようとしていますGoogle ティンクAWS EMR 5.28.0 ではあまりうまくいきませんでした。AWS EMR イメージの性質がかなり変わっているようです。何かアイデアはありますか?

sc.install_pypi_package("tink")

エラー: bazel 実行ファイルが見つかりませんでした。Tink Python パッケージをコンパイルするには、bazel をインストールしてください。

 sudo yum install -y bazel3

必要条件: java-11-openjdk-devel

sudo yum install java-11-openjdk-devel

利用可能なパッケージ java-11-openjdk-devel がありません。

 sudo yum install amazon-linux-extras

利用可能なパッケージ amazon-linux-extras がありません。

答え1

結局のところ、Linux AMI (AWS EMR 5.28.0 のベース) は扱いにくいです。利用可能なリポジトリには Java、Bezel、ましてや Tinker は用意されていません (Macos、Ubuntu、ECR Python イメージでは簡単に使用できますが)

Java 11jdk を入手するには、Oracle にアクセスして Linux x64 RPM パッケージを探す必要があります。残念ながら、そのサイトにサインインする必要があるため、wget/curl は利用できません。

インストールするには、次の手順を実行する必要があります。

 sudo yum localinstall jdk-11.0.12_linux-x64_bin.rpm

Bazelの場合はGithubからパッケージを取得する必要がありますhttps://github.com/bazelbuild/最新のものを選んでインストールする

./bazel-4.1.0-installer-linux-x86_64.sh 

その後、pipは正常に動作します

sc.install_pypi_package("tink")

出力:

Successfully built tink
Installing collected packages: protobuf, absl-py, tink
Successfully installed absl-py-0.13.0 protobuf-3.17.3 tink-1.6.1

関連情報