apache-spark - 如何在 Kubernetes 容器/Pod 上挂载 S3 存储桶?

标签 apache-spark amazon-s3 kubernetes fuse s3fs

我正在尝试在 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/

相关文章:

apache-spark - 如何将 Spark 数据帧的两列与空值连接起来但得到一个值

php - 二进制数据的 readfile 等价物?

ruby-on-rails - Heroku asset_sync gem 没有上传到 s3

kubernetes - kubernetes kubelet 是 DaemonSet 吗?

go - 如何强制对自定义 Controller 中的 SharedIndexInformer 进行完全重新同步

hadoop - 无法在 CDH 5.7.5 中安装 Spark 2.0

apache-spark - Spark : Poor performance on distributed system. 如何改进>

logging - 如何从S3获取实时更新

apache-spark - Azure DataBricks Stream foreach 因 NotSerializableException 而失败

java - Amazon S3 从 GWT 应用程序上传