Managed Service for Apache Spark VM にハイパーディスクをアタッチする

このページでは、Managed Service for Apache Spark クラスタ内の仮想マシン(VM)にハイパーディスクをアタッチする方法について説明します。ディスクは、マスター、プライマリ ワーカー、セカンダリ ワーカーのノードグループごとに個別に構成できます。これらのディスクは 、ブートディスクとクラスタノードにアタッチされているローカル SSD に加えて、クラスタノードにアタッチされます。

始める前に

  1. アカウントにログインします。 Google Cloud を初めて使用する場合は、 アカウントを作成して、 実際のシナリオでプロダクトがどのように機能するかを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that you have the permissions required to complete this guide.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Managed Service for Apache Spark API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. Verify that you have the permissions required to complete this guide.

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Managed Service for Apache Spark API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

必要なロール

このページの例を実行するには、特定の IAM ロールが必要です。組織のポリシーによっては、これらのロールがすでに付与されている場合があります。ロールの付与を確認するには、 ロールを付与する必要がありますか?をご覧ください。

ロールの付与については、 プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

ユーザーロール

Managed Service for Apache Spark クラスタの作成に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

サービス アカウント ロール

Compute Engine のデフォルトのサービス アカウントに、Managed Service for Apache Spark クラスタの作成に必要な 権限を付与するには、 プロジェクトに対する Dataproc ワーカー roles/dataproc.worker)IAM ロールを Compute Engine のデフォルトのサービス アカウントに付与するよう管理者に依頼します。

ディスクの特性

アタッチされたディスクには次の特性があります。

  • ライフサイクル: アタッチされたディスクのライフサイクルは、アタッチ先の VM のライフサイクルと一致します。Managed Service for Apache Spark は、VM の作成時にディスクを作成し、VM の削除時にディスクを削除します。
  • 不変性: クラスタの作成後に、サイズ、IOPS、スループットなど、アタッチされたディスクのプロパティを更新することはできません。
  • マウントと使用: Managed Service for Apache Spark は、ディスクを /mnt/N にマウントします。 ここで、N は正の整数(/mnt/1/mnt/2 など)です。HDFS と スクラッチ データ(シャッフル出力など)は、 ブート永続ディスクではなく、アタッチされたディスクを使用します。

ディスク構成

Managed Service for Apache Spark クラスタノードにディスクをアタッチするときに、次のディスク構成パラメータを指定できます。

  • ディスクタイプ - 必須: VM インスタンスにアタッチするディスクのタイプ。 次のハイパーディスク がサポートされています。

    • hyperdisk-balanced
    • hyperdisk-extreme
    • hyperdisk-ml
    • hyperdisk-throughput

    hyperdisk balanced high availability タイプと永続ディスクは、クラスタノードに アタッチできません。

  • サイズ - 省略可: ディスクのサイズ。この値は整数で、 その後に GB(ギガバイト)または TB(テラバイト)が続きます。たとえば、10GB は 10 ギガバイトのディスクをアタッチします。詳細については、 Hyperdisk のサイズ上限をご覧ください。

  • IOP \- 省略可: アタッチされたディスクにプロビジョニングする IOPSを示します。このパラメータは、1 秒あたりのディスク I/O オペレーションの上限を設定します。詳細については、デフォルトのパフォーマンス レベルをご覧ください。

  • スループット \- 省略可: アタッチされたディスクにプロビジョニングする スループットを示します。このパラメータは、1 秒あたりの MiB のスループットの上限を設定します。詳細については、デフォルトのパフォーマンス レベルをご覧ください。

クラスタにディスクをアタッチする

gcloud CLI または Dataproc API を使用して Managed Service for Apache Spark クラスタを作成するときに、ディスク構成を指定してディスクをアタッチできます。

gcloud CLI

  • クラスタの作成時にディスクをアタッチするには、gcloud dataproc clusters create コマンドで --master-attached-disks--worker-attached-disks、または --secondary-worker-attached-disks フラグを使用します。

  • 各フラグは、セミコロンで区切られたディスク構成のリストを受け取ります。 各ディスク構成は、 typesizeiopsthroughput の Key-Value ペアのカンマ区切りリストです( ディスク構成をご覧ください)。

例: 次のコマンドは、クラスタを作成し、各プライマリ ワーカーノードに 2 つのハイパーディスクをアタッチします。

gcloud dataproc clusters create CLUSTER_NAME \
    --region=REGION \
    --worker-attached-disks='type=hyperdisk-balanced,size=100GB,iops=5000,throughput=200;type=hyperdisk-throughput,size=9000GB'

API

  • ディスクをアタッチするには、attachedDiskConfigs 配列を diskConfig オブジェクトに含めます。対象は masterConfigworkerConfig、または secondaryWorkerConfig インスタンス グループです。

  • clusters.create API リクエストの本文で構成を指定します。

例: 次の JSON スニペットは、2 つのハイパーディスクをアタッチする attachedDiskConfigs 配列を示しています。

[
  {
    "diskType": "HYPERDISK_BALANCED",
    "diskSizeGb": 100,
    "provisionedIops": 5000,
    "provisionedThroughput": 200
  },
  {
    "diskType": "HYPERDISK_THROUGHPUT",
    "diskSizeGb": 9000
  }
]