我正在尝试在 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
?
有没有人自己成功地做到了这一点,你能分享你的配置吗?