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

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

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


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

ガイドを表示


始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Dataproc Metastore, Dataproc API を有効にします。

    API を有効にする

  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  6. Google Cloud プロジェクトで課金が有効になっていることを確認します

  7. Dataproc Metastore, Dataproc API を有効にします。

    API を有効にする

必要なロール

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

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

ロールの付与の詳細については、アクセスの管理をご覧ください。

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

必要な権限

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

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

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

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

Dataproc Metastore サービスを作成する

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

コンソール

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

    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 コマンドを実行します。

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

このコマンドは、デフォルトのリージョン(us-central1)に example-service という名前のサービスを作成し、デフォルトのインスタンス サイズ(MEDIUM)を設定します。

REST

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

Dataproc クラスタを作成して Dataproc Metastore に接続する

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

Console

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

    [Dataproc クラスタ] に移動

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

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

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

    [Compute Engine に Dataproc クラスタを作成する] ページが開きます。

  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 の手順に従ってクラスタを作成します。

Dataproc クラスタを使用した Apache Hive への接続

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

次に、Dataproc クラスタで SSH セッションを開き、Hive セッションを開始します。

  1. Google Cloud コンソールで、[VM インスタンス] ページに移動します。
  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. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. If the project that you plan to delete is attached to an organization, expand the Organization list in the Name column.
  3. In the project list, select the project that you want to delete, and then click Delete.
  4. In the dialog, type the project ID, and then click Shut down to delete the project.

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

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

    Console

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

      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 サービスを使用した Dataproc クラスタを削除します。

次のステップ