【问题标题】:Can I point a a Spark/Hadoop configuration to IBM Cloud Object Storage?我能否将 Spark/Hadoop 配置指向 IBM Cloud Object Storage?
【发布时间】:2016-11-12 04:53:17
【问题描述】:

我正在使用 IBM 对象存储(类似于 AWS S3)来存储数据。 IBM 的对象存储实现了 S3 api。 Spark 的 Hadoop 配置can be modified to allow it to connect to Amazon S3

我正在尝试(在 pyspark 中)通过将端点设置为指向 IBM 而不是 Amazon 来访问我的数据。

sc._jsc.hadoopConfiguration().set("fs.s3.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem")
sc._jsc.hadoopConfiguration().set("fs.s3a.endpoint", "s3-api.us-geo.objectstorage.service.networklayer.com")
sc._jsc.hadoopConfiguration().set('fs.s3a.access.key', '<my_key>')
sc._jsc.hadoopConfiguration().set("fs.s3a.secret.key", "<secret_key>")

哪个会引发错误:

An error occurred while calling o131.partitions.
: com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: 7F46A12CDBB841AA)

注意“服务:Amazon S3;”这让我假设 SDK 仍然指向 AWS。这个可以改吗?

【问题讨论】:

    标签: java pyspark aws-sdk ibm-cloud-infrastructure object-storage


    【解决方案1】:

    您指定的端点是“私有”端点,适用于在 IBM Cloud/Softlayer 数据中心网络中发送请求的工作负载。

    如果您尝试通过公共 Internet 连接到对象存储,则需要使用不同的端点:s3-api.us-geo.objectstorage.softlayer.net。更多信息可以在(诚然正在进行中)documentation for the open trial 中找到。

    如果这不能解决问题,请告诉我 - 如果是兼容性缺陷,我想确保它得到解决。

    【讨论】:

    • 遗憾的是,无论我使用哪个端点,错误都会持续存在。我目前正在尝试从 Softlayer 虚拟机访问对象存储。
    • 我会与我们的测试团队核实。如果您想详细讨论它,请随时通过 nicholas.lange [at] ibm.com 给我发电子邮件。
    • Nick,如果您确实实现了 S3 协议并希望与 Hadoop 互操作,那么我建议您查看 Hadoop branch-2.8 并针对您的端点运行其 hadoop-aws 集成测试套件——最好是在 hadoop 2.8 RC 发布之前。其他一些对象存储确实针对它进行了测试,这就是为什么我们知道保持多次删除(以及很快的 v2 列表)调用是可选的——但是看看其他端点发生了什么总是很有趣的。请参阅:issues.apache.org/jira/browse/HADOOP-11694 了解即将发生的事情
    • 谢谢史蒂夫!欣赏信息。
    猜你喜欢
    • 2022-01-19
    • 2018-08-28
    • 1970-01-01
    • 2018-02-01
    • 2020-03-19
    • 2018-06-05
    • 1970-01-01
    • 2020-12-25
    • 2020-04-10
    相关资源
    最近更新 更多