在 AWS EMR 中安装软件包

在 AWS EMR 中安装软件包

我正在尝试安装谷歌Tink在 AWS EMR 5.28.0 中没有太多运气。看起来 AWS EMR 映像本质上相当奇怪。有什么想法吗?

sc.install_pypi_package("tink")

错误:找不到 bazel 可执行文件。请安装 bazel 来编译 Tink Python 包。

 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

相关内容