连接亚马逊S3

文章解释如何从Databricks连接AWSS3

S3存取带URIs和AWS键

Spark属性配置AWS键访问S3

Databricks建议使用隐蔽范围存储所有证书可授予用户服务主体和分组工作空间访问读取隐密范围保护AWS密钥同时允许用户访问S3创建隐蔽范围见隐蔽范围.

证书可覆盖集或笔记本聚类存取控件和笔记本存取控件并用以保护存取S3看吧聚类访问控制共享工作空间对象.

设置spark属性时使用集群spark配置中的下片段设置AWS键存储隐蔽范围环境变量:

AWS_SECRET_ACCESS_KEY={{机密性/范围/aws_secret_access_key}}AWS_ACCESS_KEY_ID={{机密性/范围/aws_access_key_id}}

使用下列命令从S3读取

s_bucket_name=my-s3bucketdf=点火.读取.负载高山市f级s3a/{{s_bucket_name}/flowers/delta/")显示器高山市df)丁基.fs系统.Is高山市f级s3a/{{s_bucket_name}/)

S3存取开源hadoop选项

Databricks运行时支持配置S3A文件系统开源hadoop选项.可配置全局属性和单桶属性

全局配置

#GlobalS3配置spark.hadoop.fs.s3a.aws.credentials.provider
                spark.hadoop.fs.s3a.endpoint
                spark.hadoop.fs.s3a.server-side-encryption-algorithm SSE-KMS

包配置

使用语法配置单桶属性spark.hadoop.fs.s3a.bucket. . .容你搭建桶 并配有不同的证书和端点

举个例子,除全局S3设置外,你还可以使用下列密钥单个配置每个桶:

# 搭建认证端点spark.hadoop.fs.s3a.bucket.
                
                 .aws.credentials.provider
                 
                spark.hadoop.fs.s3a.bucket.
                
                 .endpoint
                 
                #配置不同的KMS加密密钥spark.hadoop.fs.s3a.bucket.
                
                 .server-side-encryption.key
                 
                

预存存取Databricks数据模式

预置存储模式如下:

重要点

  • S3A文件系统默认缓存并发布资源为了避免使用缓存文件系统引用错误的其他线程,不明文使用FileSystem.close

  • S3A文件系统关闭输出流时不删除目录标识遗留应用基于Hadoop版本不包含HADOOP-13230可误译为空目录,即使内部有文件