Dataproc Metastore サービスをデプロイする

このページでは、Dataproc Metastore サービスを作成し、Managed Service for Apache Spark クラスタから接続する方法について説明します。その後、クラスタに SSH 接続し、Apache Hive のインスタンスを起動して、基本的なクエリを実行します。

Dataproc Metastore には、完全互換の Hive メタストア(HMS)が用意されています。これは、テクニカル メタデータを管理するためのオープンソースのビッグデータ エコシステムで確立された標準規格です。このサービスは、データレイクのメタデータを管理し、使用しているさまざまなデータ処理ツール間の相互運用性を提供します。


このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、「ガイドを表示」をクリックしてください。

ガイドを表示


始める前に

  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 billing is enabled for your Google Cloud project.

  4. Enable the Dataproc Metastore, Dataproc APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. 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

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

  7. Enable the Dataproc Metastore, Dataproc APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

必要なロール

Dataproc Metastore と Managed Service for Apache Spark クラスタの作成に必要な権限を取得するには、管理者に次の IAM ロールの付与を依頼します。

  • すべての Dataproc Metastore リソースに対する完全アクセス権を付与する(IAM 権限の設定を含む)場合: (roles/metastore.admin) ユーザー アカウントまたはサービス アカウントに対する
  • Dataproc Metastore リソースに対する完全な制御を許可する場合: Dataproc Metastore 編集者 roles/metastore.editor) ユーザー アカウントまたはサービス アカウントに対する
  • Managed Service for Apache Spark クラスタを作成する場合: (roles/dataproc.worker) サービス アカウントに対する

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

これらの事前定義ロールには Dataproc Metastore と Managed Service for Apache Spark クラスタの作成に必要な権限が含まれています。必要とされる正確な権限については、必要な権限セクションを開いてご確認ください。

必要な権限

Dataproc Metastore と Managed Service for Apache Spark クラスタを作成するには、次の権限が必要です。

  • Dataproc Metastore サービスを作成するには: metastore.services.create ユーザー アカウントまたはサービス アカウントの
  • Managed Service for Apache Spark クラスタを作成するには: サービス アカウントの Managed Service for Apache Spark ワーカー(roles/dataproc.worker

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

Dataproc Metastore の特定のロールと権限については、Dataproc Metastore IAM の概要をご覧ください。

Dataproc Metastore サービスを作成する

次の手順では、指定されたデフォルト設定を使用して基本的な Dataproc Metastore サービスを作成する方法を説明します。

コンソール

  1. コンソールで、[Dataproc Metastore] ページに移動します。 Google Cloud

    Dataproc Metastore に移動

  2. ナビゲーション メニューで [+作成] をクリックします。

    [Metastore サービスの作成] ダイアログが開きます。

  3. [Dataproc Metastore 2] を選択します。

  4. [サービス名] フィールドに「example-service」と入力します。

  5. [データのロケーション] フィールドで、us-central1 を選択します。

  6. 残りのサービス構成オプションには、指定されたデフォルトを使用します。

  7. サービスを作成して開始するには、[送信] をクリックします。

新しいメタストア サービスが [Dataproc Metastore] ページに表示されます。サービスが使用できるようになるまで、ステータスには [作成中] と表示されます。 準備が完了すると、ステータスが [アクティブ] に変わります。 サービスのプロビジョニングには数分かかることがあります。

次のスクリーンショットは、指定されたいくつかのデフォルトを使用した [サービスの作成] ページの例を示しています。

[Create service] ページ。

gcloud CLI

 gcloud metastore services create example-service \
     --location=us-central1 \
     --instance-size=MEDIUM

REST

API Explorer を使用し、API の手順に従ってサービスを作成 します。

Managed Service for Apache Spark クラスタを作成して Dataproc Metastore に接続する

次に、Managed Service for Apache Spark クラスタを作成し、クラスタからメタストアに接続します。その後、クラスタはメタストア サービスを HMS として使用します。 ここで作成するクラスタは、指定されたデフォルト設定を使用します。

コンソール

  1. コンソールで、[Dataproc クラスタ] ページに移動します。 Google Cloud

    Managed Service for Apache Spark クラスタに移動

  2. ナビゲーション バーで、[+クラスタを作成] を選択します。

    [クラスタを作成] ダイアログが開き、複数のインフラストラクチャから選択できます。

  3. [Compute Engine 上のクラスタ] 行で [作成] を選択します。

    [Compute Engine 上に Managed Service for Apache Spark クラスタを作成する] ページが開きます。

  4. [クラスタ名] フィールドに「example-cluster」と入力します。

  5. [リージョン] メニューと [ゾーン] メニューで、us-central1 を選択します。

  6. 残りの [クラスタの設定] オプションについては、指定されたデフォルトを使用します。

  7. ナビゲーション メニューで [クラスタをカスタマイズ(省略可)] タブをクリックします。

  8. [Dataproc Metastore] セクションで、先ほど作成したメタストア サービスを選択します。

    このチュートリアルの説明に沿って操作すると、「example-service」という名前になります。

  9. 残りのサービス構成オプションには、指定されたデフォルトを使用します。

  10. クラスタを作成するには、[作成] をクリックします。

    新しいクラスタが [クラスタ] リストに表示されます。クラスタが使用可能になるまで、クラスタのステータスは [プロビジョニング] と表示されます。準備が完了すると、ステータスが [アクティブ] に変わります。 クラスタのプロビジョニングには数分かかることがあります。

gcloud CLI

指定されたデフォルト設定を使用してクラスタを作成するには、次の gcloud dataproc clusters create コマンドを実行します。

 gcloud dataproc clusters create example-cluster \
    --dataproc-metastore=projects/PROJECT_ID/locations/us-central1/services/example-service \
    --region=us-central1

PROJECT_ID は、Dataproc Metastore サービスを作成した プロジェクトのプロジェクト ID に置き換えます。

REST

API Explorer を使用し、API の手順に従ってクラスタを作成します

Managed Service for Apache Spark クラスタを使用して Apache Hive に接続する

次のステップでは、Apache Hive でサンプル コマンドを実行してデータベースとテーブルを作成する方法について説明します。

次に、Managed Service for Apache Spark クラスタで SSH セッションを開き、Hive セッションを起動します。

  1. コンソールで、[VM Instances] ページに移動します。 Google Cloud
  2. 仮想マシン インスタンスのリストで、example-cluster の横にある [SSH] をクリックします。

ノード上のホーム ディレクトリでブラウザ ウィンドウが開き、次のような出力が表示されます。

Connected, host fingerprint: ssh-rsa ...
Linux cluster-1-m 3.16.0-0.bpo.4-amd64 ...
...
example-cluster@cluster-1-m:~$

Hive を起動してデータベースとテーブルを作成するには、SSH セッションで次のコマンドを実行します。

  1. Hive を起動します。

    hive
    
  2. myDatabase という名前のデータベースを作成します。

    create database myDatabase;
    
  3. 作成したデータベースを表示します。

    show databases;
    
  4. 作成したデータベースを使用します。

    use myDatabase;
    
  5. テーブルを myTable という名前で作成します。

    create table myTable(id int,name string);
    
  6. myDatabase 内のテーブルを一覧表示します。

    show tables;
    
  7. 作成したテーブルのスキーマを記述します。

    desc MyTable;
    

これらのコマンドを実行すると、次のような出力が表示されます。

$hive

hive> show databases;
OK
default
hive> create database myDatabase;
OK
hive> use myDatabase;
OK
hive> create table myTable(id int,name string);
OK
hive> show tables;
OK
myTable
hive> desc myTable;
OK
id                      int
name                    string

クリーンアップ

このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、 次の手順を実施します。

  1. コンソールで [**リソースの管理**] ページに移動します。 Google Cloud

    [リソースの管理] に移動

  2. 削除するプロジェクトが組織に関連付けられている場合は、[名前] 列の [組織] リストを展開します。
  3. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  4. ダイアログでプロジェクト ID を入力し、 [Shut down] をクリックしてプロジェクトを削除します。

あるいは、このチュートリアルで使用したリソースを削除することもできます。

  1. Dataproc Metastore サービスを削除します。

    コンソール

    1. コンソールで、Dataproc Metastore ページを開きます。 Google Cloud

      Dataproc Metastore に移動

    2. サービスリストで [example-service] を選択します。

    3. ナビゲーション バーで [削除] をクリックします。

      [サービスの削除] ダイアログが開きます。

    4. ダイアログで [削除] をクリックします。

      サービスが [サービスリスト] に表示されなくなります。

    gcloud CLI

    サービスを削除するには、次の gcloud metastore services delete コマンドを実行します。

     gcloud metastore services delete example-service \
         --location=us-central1

    REST

    API Explorer を使用し、API の手順に従ってサービスを削除します。

    削除はすべてすぐに正常終了します。

  2. Dataproc Metastore サービスの Cloud Storage バケットを削除します

  3. Dataproc Metastore サービスを使用した Managed Service for Apache Spark クラスタを削除します

次のステップ