注意:
- 本教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure 免费套餐。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请使用特定于云环境的那些值替换这些值。
使用资源主用户从 Oracle Big Data Service 集群访问 OCI 对象存储存储桶
简介
Oracle Big Data Service 是 Oracle 提供的基于云的服务,用户可以使用它创建和管理 Hadoop 集群、Spark 集群、Trino 和其他大数据服务。Oracle Cloud Infrastructure (OCI) 支持使用资源主体在 Oracle Big Data Service 集群与 OCI Object Storage 之间无缝集成。
本教程将指导您完成从 Oracle Big Data Service 集群配置和访问 OCI Object Storage 桶的任务,并利用资源主体进行安全验证。
目标
-
配置 Oracle Big Data Service 以使用资源主体访问 OCI 对象存储。
-
在 OCI 中设置策略。
-
从 Oracle Big Data Service 集群测试存储桶访问。
先决条件
-
已部署 Oracle Big Data Service 集群。
-
访问 OCI 租户。
-
在 OCI 中创建策略的权限。
任务 1: 创建策略
-
登录到 OCI 控制台,导航到身份与安全,然后单击策略。
-
创建以下策略以授予 Oracle Big Data Service 集群对 OCI Object Storage 桶的访问权限。
allow any-user to read buckets in tenancy where ALL {request.principal.id='<BDS OCID>', target.bucket.name='<bucket name>'} allow any-user to read objects in tenancy where ALL {request.principal.id='<BDS OCID>', target.bucket.name='<bucket name>'}
注:将
<BDS OCID>
和<bucket name>
分别替换为 Oracle Big Data Service 集群 OCID 和存储桶名称。
任务 2:在 Oracle Big Data Service 集群中创建资源主用户
-
转到 OCI 控制台,导航到 Analytics and AI ,然后单击 Big data Service(大数据服务)。
-
单击已部署的集群。
-
单击资源主体和创建资源主体。
-
输入 Display name(显示名称)和 Session token life-span duration(以小时为单位),然后单击 Create(创建)。
任务 3:更新 Hadoop 分布式文件系统 (HDFS) 配置
-
转到 Apache Ambari 控制台,导航到 HDFS 、配置和高级。
-
更新 HDFS 配置的以下属性。
fs.oci.client.custom.authenticator=com.oracle.oci.bds.commons.auth.BDSResourcePrincipalAuthenticator fs.oci.client.regionCodeOrId=us-region-1 fs.oci.rp.pem.passphrase.path=/etc/security/tokens/rpst.pass fs.oci.rp.pem.path=/etc/security/tokens/rpst.pem fs.oci.rp.rpst.path=/etc/security/tokens/rpst.token
注:
bds_rp_users
组拥有群集中此资源主体的rpst
标记和密钥。 -
保存更改并在 Apache Ambari 中重新启动必要的服务。
任务 4:设置环境变量(可选)
对于通过 OCI 软件开发工具包 (SDK) 或其他客户端访问存储桶的应用,请确保设置了以下环境变量。
OCI_RESOURCE_PRINCIPAL_VERSION=2.2
OCI_RESOURCE_PRINCIPAL_PRIVATE_PEM=/etc/security/tokens/rpst.pem
OCI_RESOURCE_PRINCIPAL_REGION=us-region-1
OCI_RESOURCE_PRINCIPAL_RPST=/etc/security/tokens/rpst.token
任务 5:测试 OCI 对象存储存储存储桶访问
通过 SSH 连接到 Oracle Big Data Service 集群并使用 HDFS 命令测试对存储桶的访问。
hdfs dfs -ls oci://<bucket name>@<namespace>/
注:请确保将
<bucket name>
替换为策略中使用的 OCI 存储桶和<namespace>
值。
故障排除和技巧
-
Core-site.xml
验证:如果存储桶内容不可访问,请检查core-site.xml
文件是否由 Apache Ambari 正确生成并包含正确的资源主体配置值。 -
HDFS 重新启动:更新 HDFS 配置后,确保重新启动所有必需的服务以应用更改。
-
策略范围:双重检查策略是否已正确定义并应用于 Oracle Big Data Service 集群。
后续步骤
-
了解高级 OCI SDK 集成,以实现更复杂的数据访问。
-
使用
DistCp
上载和下载数据:设置存储桶访问后,您可以使用 Hadoop 的DistCp
命令在 HDFS 和 OCI Object Storage 之间高效传输大型数据集。这对于备份、迁移或大规模数据移动特别有用。 -
使用 Oozie 调度数据传输:通过使用 Oozie 调度常规 DistCp 作业来执行重复备份或数据同步,从而自动执行上载和下载流程。
相关链接
确认
- Authors — Pavan Upadhyay(首席云工程师)、Saket Bihari(首席云工程师)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Access OCI Object Storage Buckets from Oracle Big Data Service Cluster Using Resource Principal
G16229-01
September 2024