0

我正在尝试在 Amazon EMR 集群上配置 Stocator 以访问 Amazon s3 上的数据。我找到了表明这应该是可能的资源,但关于如何使其工作的细节很少。

当我启动 EMR 集群时,我使用以下配置:

{
    "classification": "core-site",
    "properties": {
        "fs.stocator.scheme.list": "cos",
        "fs.cos.impl": "com.ibm.stocator.fs.ObjectStoreFileSystem",
        "fs.stocator.cos.impl": "com.ibm.stocator.fs.cos.COSAPIClient",
        "fs.stocator.cos.scheme":"cos"
    }
}

然后我尝试使用访问文件cos://mybucket.service/myfile

由于缺少凭据,这会产生错误。

我使用以下方法将凭据添加spark-shell到属性中:

val credentials = new com.amazonaws.auth.DefaultAWSCredentialsProviderChain().getCredentials
sc.hadoopConfiguration.set("fs.cos.service.access.key",credentials.getAWSAccessKeyId)
sc.hadoopConfiguration.set("fs.cos.service.secret.key",credentials.getAWSSecretKey)

现在,当我尝试访问时cos://mybucket.service/myfile,出现错误:org.apache.spark.sql.AnalysisException: Path does not exist:.

使用作品访问文件s3://mybucket/myfile,因为它不使用 Stocator。也可以通过 amazon CLI 访问该文件。

是否有任何在线资源详细说明如何开始Stocator工作AWS

有没有人自己成功地做到了这一点,你能分享你的配置吗?

4

1 回答 1

-1
  1. 您可能只想联系 Gil Vernik 并寻求建议。请确保它适用于 EMR S3 一致性语义;我相信它应该。
  2. Hadoop 3.1 有自己的高性能提交者,可能比 Stocator 更快。(但我会这么说,不是吗?)
  3. 该代码的部分来源来自Netflix S3A 提交者。

我会和 netflix 一起玩,因为我相信它在那里运行良好。

于 2018-02-16T14:53:48.463 回答