すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:ECS アプリケーションロール (EMR V3.32.0 以前のマイナーバージョン、または EMR V4.5.0 以前のマイナーバージョンで使用)

最終更新日:Jan 11, 2025

E-MapReduce (EMR) は、特別な ECS アプリケーションロールとして機能する MetaService を提供します。EMR V3.32.0 以前の V3.X.X バージョン、および EMR V4.5.0 以前の V4.X.X バージョンでは、クラスターを作成すると、このロールがクラスターに自動的にバインドされます。EMR クラスターで実行されるアプリケーションは、このロールを使用して AccessKey ペアなしで他の Alibaba Cloud リソースにアクセスします。これにより、構成ファイルでの AccessKey ペアの漏洩を防ぎます。

前提条件

このロールは承認されています。詳細については、Alibaba Cloud アカウントへのロールの割り当てをご参照ください。

背景情報

MetaService では、AccessKey ペアなしでオブジェクトストレージサービス (OSS)、ログサービス、およびメッセージサービス (MNS) のみにアクセスできます。

権限

デフォルトロール AliyunEmrEcsDefaultRole は、ポリシー AliyunEmrECSRolePolicy で構成されています。次の表に、OSS 関連の権限を示します。
権限 (Action)説明
oss:PutObjectファイルまたはフォルダーをアップロードします。
oss:GetObjectファイルまたはフォルダーを照会します。
oss:ListObjectsファイルを照会します。
oss:DeleteObjectファイルを削除します。
oss:ListBucketsバケットを照会します。
oss:AbortMultipartUploadマルチパートアップロードイベントを終了します。
oss:ListMultipartUploads進行中のすべてのマルチパートアップロードイベントを照会します。
oss:RestoreObjectアーカイブまたはコールドアーカイブオブジェクトを復元します。
oss:GetBucketInfoバケットに関する情報を照会します。
oss:ListObjectVersions削除マーカーを含む、バケット内のすべてのオブジェクトのバージョンを照会します。
oss:DeleteObjectVersionオブジェクトの特定のバージョンを削除します。
oss:PostDataLakeStorageFileOperationOSS-HDFS にアクセスします。
ots:CreateTable指定されたテーブルスキーマに基づいてテーブルを作成します。
ots:DeleteTable現在のインスタンスから特定のテーブルを削除します。
ots:GetRow特定のプライマリキーに基づいて単一行のデータを読み取ります。
ots:PutRow特定の行にデータを挿入します。
ots:UpdateRow特定の行のデータを更新します。
ots:DeleteRowデータの行を削除します。
ots:GetRangeプライマリキーの特定の値範囲内のデータを読み取ります。
ots:BatchWriteRow1 つ以上のテーブルから複数のデータ行を一度に挿入、変更、または削除します。
ots:BatchGetRow1 つ以上のテーブルから複数のデータ行を一度に読み取ります。
ots:ComputeSplitPointsBySizeテーブル内のデータを、サイズが指定されたサイズに近い複数のシャードに論理的に分割し、シャード間の分割点とパーティションが存在するホストに関するプロンプトを返します。
ots:StartLocalTransaction指定されたパーティションキー値に基づいてローカル トランザクションを作成し、ローカル トランザクションの ID を照会します。
ots:CommitTransactionローカル トランザクションをコミットします。
ots:AbortTransactionローカル トランザクションを中止します。
dlf:BatchCreatePartitions一度に複数のパーティションを作成します。
dlf:BatchCreateTables一度に複数のテーブルを作成します。
dlf:BatchDeletePartitions一度に複数のパーティションを削除します。
dlf:BatchDeleteTables一度に複数のテーブルを削除します。
dlf:BatchGetPartitions一度に複数のパーティションに関する情報を照会します。
dlf:BatchGetTables一度に複数のテーブルに関する情報を照会します。
dlf:BatchUpdatePartitions一度に複数のパーティションを更新します。
dlf:BatchUpdateTables一度に複数のテーブルを更新します。
dlf:CreateDatabaseデータベースを作成します。
dlf:CreateFunction関数を 作成します。
dlf:CreatePartitionパーティションを作成します。
dlf:CreateTableテーブルを作成します。
dlf:DeleteDatabaseデータベースを削除します。
dlf:DeleteFunction関数を削除します。
dlf:DeletePartitionパーティションを削除します。
dlf:DeleteTableテーブルを削除します。
dlf:GetDatabaseデータベースに関する情報を照会します。
dlf:GetFunction関数に関する情報を照会します。
dlf:GetPartitionパーティションに関する情報を照会します。
dlf:GetTableテーブルに関する情報を照会します。
dlf:ListCatalogsカタログを照会します。
dlf:ListDatabasesデータベースを照会します。
dlf:ListFunctionNames関数の名前を照会します。
dlf:ListFunctions関数を照会します。
dlf:ListPartitionNamesパーティションの名前を照会します。
dlf:ListPartitionsパーティションを照会します。
dlf:ListPartitionsByExpr条件によってメタデータテーブルパーティションを照会します。
dlf:ListPartitionsByFilter条件によってメタデータテーブルパーティションを照会します。
dlf:ListTableNamesテーブルの名前を照会します。
dlf:ListTablesテーブルを照会します。
dlf:RenamePartitionパーティションの名前を変更します。
dlf:RenameTableテーブルの名前を変更します。
dlf:UpdateDatabaseデータベースを更新します。
dlf:UpdateFunction関数を更新します。
dlf:UpdateTableテーブルを更新します。
dlf:UpdateTableColumnStatisticsメタデータテーブルの統計を更新します。
dlf:GetTableColumnStatisticsメタデータテーブルの統計を照会します。
dlf:DeleteTableColumnStatisticsメタデータテーブルの統計を削除します。
dlf:UpdatePartitionColumnStatisticsパーティションの統計を更新します。
dlf:GetPartitionColumnStatisticsパーティションの統計を照会します。
dlf:DeletePartitionColumnStatisticsパーティションの統計を削除します。
dlf:BatchGetPartitionColumnStatistics一度に複数のパーティションの統計を照会します。
dlf:CreateLockメタデータロックを作成します。
dlf:UnLock特定のメタデータロックを解除します。
dlf:AbortLockメタデータロックを中止します。
dlf:RefreshLockメタデータロックを更新します。
dlf:GetLockメタデータロックに関する情報を照会します。
dlf:GetAsyncTaskStatus非同期タスクのステータスを照会します。
dlf:DeltaGetPermissions権限を照会します。
dlf:GetPermissionsデータ権限に関する情報を照会します。
dlf:GetServiceInfoサービスに関する情報を照会します。
dlf:GetRolesデータ権限のロールに関する情報を照会します。
dlf:CheckPermissionsデータ権限を確認します。
重要 AliyunEmrEcsDefaultRole ロールは慎重に変更または削除してください。そうしないと、クラスターの作成またはジョブの実行に失敗します。

MetaService をサポートするデータソース

MetaService を使用すると、OSS、ログサービス、および MNS にアクセスできます。EMR クラスターで EMR SDK を使用して、AccessKey ペアなしで前述のデータソースからデータを読み書きできます。

デフォルトでは、OSS へのアクセスのみが有効になっています。ログサービスおよび MNS からデータを読み書きする場合は、RAM コンソールにログオンし、AliyunEmrEcsDefaultRole ロールに必要な権限を構成します。詳細については、RAM コンソールをご参照ください。

RAM ロールの承認方法の詳細については、RAM ロールへの権限の付与をご参照ください。

MetaService の使用

MetaService を使用すると、AccessKey ペアなしで OSS、ログサービス、および MNS にアクセスできます。MetaService には次の利点があります。
  • AccessKey 情報の漏洩のリスクを軽減します。セキュリティリスクを最小限に抑えるために、最小権限の原則に基づいて RAM コンソールでロールを承認します。
  • ユーザーエクスペリエンスを向上させます。MetaService は、OSS リソースへのインタラクティブアクセス中にユーザーが入力する必要がある OSS パスを短縮します。
  • EMR クラスター内のサービスに次の利点をもたらします:

    サービスで実行するジョブは、AccessKey ペアなしで Alibaba Cloud リソース (OSS、ログサービス、および MNS) にアクセスできます。

    MetaService を使用する前後の操作の比較:
    • hadoop fs -ls コマンドを実行して OSS データを表示します。
      • MetaService を使用しない場合:
        hadoop fs -ls oss://ZaH******As1s:Ba23N**************sdaBj2@bucket.oss-cn-hangzhou-internal.aliyuncs.com/a/b/c
      • MetaService を使用する場合:
        hadoop fs -ls oss://bucket/a/b/c
    • Hive で外部テーブルを作成します。
      • MetaService を使用しない場合:
        CREATE EXTERNAL TABLE test_table(id INT, name string)
                ROW FORMAT DELIMITED
                FIELDS TERMINATED BY '/t'
                LOCATION 'oss://ZaH******As1s:Ba23N**************sdaBj2@bucket.oss-cn-hangzhou-internal.aliyuncs.com/a/b/c';
      • MetaService を使用する場合:
        CREATE EXTERNAL TABLE test_table(id INT, name string)
                ROW FORMAT DELIMITED
                FIELDS TERMINATED BY '/t'
                LOCATION 'oss://bucket/a/b/c';
    • Spark を使用して OSS データを表示します。
      • MetaService を使用しない場合:
        val data = sc.textFile("oss://ZaH******As1s:Ba23N**************sdaBj2@bucket.oss-cn-hangzhou-internal.aliyuncs.com/a/b/c")
      • MetaService を使用する場合:
        val data = sc.textFile("oss://bucket/a/b/c")
  • セルフデプロイサービスに次の利点をもたらします:
    MetaService は HTTP サービスです。この HTTP サービスの URL にアクセスして、Security Token Service (STS) の一時的な認証情報を取得できます。次に、STS の一時的な認証情報を使用して、セルフマネージドシステムで AccessKey ペアなしで Alibaba Cloud リソースにアクセスできます。
    重要 新しい STS の一時的な認証情報は、現在の認証情報の期限が切れる 30 分前に生成されます。30 分以内はどちらの STS 認証情報も使用できます。

    curl http://localhost:10011/cluster-region を実行して、クラスターが存在するリージョンを取得できます。

    MetaService を使用して、次の情報を取得できます。
    • リージョン:/cluster-region
    • ロール名:/cluster-role-name
    • AccessKey ID:/role-access-key-id
    • AccessKey シークレット:/role-access-key-secret
    • セキュリティトークン:/role-security-token
    • ネットワークタイプ:/cluster-network-type