ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- 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バケットを構成およびアクセスするタスクについて説明します。
目的
-
リソース・プリンシパルを使用してOCI Object StorageにアクセスするようにOracle Big Data Serviceを構成します。
-
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コンソールに移動し、「アナリティクスおよびAI」に移動して「ビッグ・データ・サービス」をクリックします。
-
デプロイしたクラスタをクリックします。
-
「リソース・プリンシパル」および「リソース・プリンシパルの作成」をクリックします。
-
「表示名」および「セッション・トークンの存続期間(時間数)」を入力し、「作成」をクリックします。
タスク3: Hadoop Distributed File System (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 Software Development Kit (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オブジェクト・ストレージ・バケット・アクセスのテスト
Oracle Big Data ServiceクラスタにSSH接続し、HDFSコマンドを使用してバケットへのアクセスをテストします。
hdfs dfs -ls oci://<bucket name>@<namespace>/
ノート:
<bucket name>
は、ポリシーおよび<namespace>
値で使用されるOCIバケットに置き換えてください。
トラブルシューティングとヒント
-
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ジョブをスケジュールすることで、アップロードおよびダウンロードのプロセスを自動化します。
関連リンク
承認
- 著者 - Pavan Upadhyay (プリンシパル・クラウド・エンジニア)、Saket Bihari (プリンシパル・クラウド・エンジニア)
その他の学習リソース
docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントは、Oracle Help Centerを参照してください。
Access OCI Object Storage Buckets from Oracle Big Data Service Cluster Using Resource Principal
G16226-01
September 2024