存储配置
AWS S3
登录后可跨设备保存划线和私人笔记登录
本页介绍如何让你的 Hudi Spark 作业将数据写入 AWS S3。
AWS 配置
Hudi 与 S3 兼容需要两项配置:
- 为 Hudi 添加 AWS 凭证
- 将所需的 Jar 包加入 classpath
AWS 凭证
使用 Hudi 与 S3 配合的最简单方式,是在你的 SparkSession 或 SparkContext 中配置 S3 凭证。Hudi 会自动获取这些凭证并与 S3 通信。
也可以在 core-site.xml 中添加所需配置,Hudi 会从中读取这些配置。将 fs.defaultFS 替换为你的 S3 存储桶名称,Hudi 就能对该存储桶进行读写操作。
<property>
<name>fs.defaultFS</name>
<value>s3://ysharma</value>
</property>
<property>
<name>fs.s3.awsAccessKeyId</name>
<value>AWS_KEY</value>
</property>
<property>
<name>fs.s3.awsSecretAccessKey</name>
<value>AWS_SECRET</value>
</property>
<property>
<name>fs.s3a.awsAccessKeyId</name>
<value>AWS_KEY</value>
</property>
<property>
<name>fs.s3a.awsSecretAccessKey</name>
<value>AWS_SECRET</value>
</property>
<property>
<name>fs.s3a.endpoint</name>
<value>http://IP-Address:Port</value>
</property>
<property>
<name>fs.s3a.path.style.access</name>
<value>true</value>
</property>
<property>
<name>fs.s3a.signing-algorithm</name>
<value>S3SignerType</value>
</property>hudi-cli 或 Hudi Streamer 等工具可以通过以 HOODIE_ENV_ 为前缀的环境变量来获取 S3 凭证。例如,下面是一段用于设置此类环境变量的 bash 脚本片段,设置后 cli 即可操作存储在 S3 上的数据集:
export HOODIE_ENV_AWS_ACCESS_KEY_ID=<your key>
export HOODIE_ENV_AWS_SECRET_ACCESS_KEY=<your secret>
$ hudi-cliexport HOODIE_ENV_fs_DOT_s3a_DOT_access_DOT_key=$accessKey
export HOODIE_ENV_fs_DOT_s3a_DOT_secret_DOT_key=$secretKey
export HOODIE_ENV_fs_DOT_s3_DOT_awsAccessKeyId=$accessKey
export HOODIE_ENV_fs_DOT_s3_DOT_awsSecretAccessKey=$secretKeyAWS 库
需要添加到 classpath 中的 AWS Hadoop 依赖库
- com.amazonaws1.10.34
- org.apache.hadoop2.7.3
如果使用 AWS Glue Data Catalog,则需要 AWS Glue 数据相关依赖库
- com.amazonaws.glue:aws-glue-datacatalog-hive2-client:1.11.0
- com.amazonaws1.11.475
AWS S3 版本控制存储桶
在启用了版本控制的存储桶中,删除任何对象都会创建一个删除标记。由于 Hudi 使用 Cleaner 工具清理文件,删除标记的数量会随着时间的推移不断增加。正确配置生命周期规则以清理这些删除标记非常重要,因为一旦删除标记数量达到 1000,List 操作可能会失败。我们建议在生命周期规则中设置在 1 天后清理删除标记。
评论
登录后参与评论
正在加载评论…
KnowForge