我正在尝试在 Amazon EKS 集群上运行我的 Spark 作业。我的 spark 作业需要每个数据节点/工作器/执行器上的一些静态数据(引用数据),并且此引用数据在 S3 中可用。
有人可以帮我找到一个干净且高性能的解决方案来在 pod 上安装 S3 存储桶吗?
S3 API 是一个选项,我将它用于我的输入记录和输出结果。但是“引用数据”是静态数据,所以我不想在每次运行/执行我的 Spark 作业时下载它。在第一次运行时,作业将下载数据,接下来的作业将检查数据是否已在本地可用,无需再次下载。
最佳答案
我们最近开源了一个项目,旨在为您自动化这些步骤:https://github.com/IBM/dataset-lifecycle-framework
基本上你可以创建一个数据集:
apiVersion: com.ie.ibm.hpsys/v1alpha1
kind: Dataset
metadata:
name: example-dataset
spec:
local:
type: "COS"
accessKeyID: "iQkv3FABR0eywcEeyJAQ"
secretAccessKey: "MIK3FPER+YQgb2ug26osxP/c8htr/05TVNJYuwmy"
endpoint: "http://192.168.39.245:31772"
bucket: "my-bucket-d4078283-dc35-4f12-a1a3-6f32571b0d62"
region: "" #it can be empty
然后你会得到一个可以安装在你的 pod 中的 pvc
关于apache-spark - 如何在 Kubernetes 容器/Pod 上挂载 S3 存储桶?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51673011/