Dataproc Metastore サービスをデプロイする
このページでは、Dataproc Metastore サービスを作成し、Dataproc クラスタから接続する方法について説明します。その後、クラスタに SSH 接続して Apache Hive のインスタンスを起動し、基本的なクエリを実行します。
Dataproc Metastore には、完全互換の Hive メタストア(HMS)が用意されています。これは、テクニカル メタデータを管理するためのオープンソースのビッグデータ エコシステムで確立された標準規格です。このサービスは、データレイクのメタデータの管理に役立ち、使用するさまざまなデータ処理ツール間の相互運用性を実現します。
このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。
始める前に
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataproc Metastore, Dataproc APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataproc Metastore, Dataproc APIs.
必要なロール
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 サービスを作成する方法を説明します。
Console
Google Cloud コンソールで、[Dataproc Metastore] ページに移動します。
ナビゲーション メニューで、[+ 作成] をクリックします。
[Metastore サービスの作成] ダイアログが開きます。
[Dataproc Metastore 2] を選択します。
[サービス名] フィールドに「
example-service
」と入力します。[データのロケーション] フィールドで、[
us-central1
] を選択します。残りのサービス構成オプションには、指定されたデフォルトを使用します。
サービスを作成して開始するには、[送信] をクリックします。
新しいメタストア サービスが [Dataproc Metastore] ページに表示されます。サービスが使用できるようになるまで、ステータスには [作成中] と表示されます。 準備が完了すると、ステータスが [アクティブ] に変わります。 サービスのプロビジョニングには数分かかることがあります。
次のスクリーンショットは、指定されたいくつかのデフォルトを使用した [サービスの作成] ページの例を示しています。
gcloud CLI
指定されたデフォルトを使用してメタストア サービスを作成するには、次の gcloud metastore services create
コマンドを実行します。
gcloud metastore services create example-service \ --location=us-central1 \ --instance-size=MEDIUM
このコマンドは、デフォルトのリージョン(us-central1
)に、デフォルトのインスタンスサイズ(MEDIUM
)で example-service
という名前のサービスを作成します。
REST
API Explorer を使用し、API の手順に従ってサービスを作成します。
Dataproc クラスタを作成して Dataproc Metastore に接続する
次に、Dataproc クラスタを作成し、クラスタからメタストアに接続します。その後、クラスタは HMS としてメタストア サービスを使用します。ここで作成するクラスタは、デフォルトの設定を使用します。
Console
Google Cloud コンソールで、[Dataproc クラスタ] ページに移動します。
ナビゲーション バーで、[+クラスタを作成] を選択します。
[クラスタを作成] ダイアログが開き、複数のインフラストラクチャから選択できます。
[Compute Engine 上のクラスタ] 行で、[作成] を選択します。
[Compute Engine で Dataproc クラスタを作成する] ページが開きます。
[クラスタ名] フィールドに「
example-cluster
」と入力します。[リージョン] と [ゾーン] メニューで、
us-central1
を選択します。残りの [クラスタの設定] オプションについては、指定されたデフォルトを使用します。
ナビゲーション メニューで、[クラスタのカスタマイズ(オプション)] タブをクリックします。
[Dataproc Metastore] セクションで、前に作成した Metastore サービスを選択します。
このチュートリアルの説明に沿って操作すると、「
example-service
」という名前になります。残りのサービス構成オプションには、指定されたデフォルトを使用します。
クラスタを作成するには、[作成] をクリックします。
新しいクラスタが [クラスタ] リストに表示されます。クラスタが使用可能になるまで、クラスタのステータスは [プロビジョニング] と表示されます。準備が完了すると、ステータスが [アクティブ] に変わります。 クラスタのプロビジョニングには数分かかる場合があります。
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 セッションを起動します。
- Google Cloud コンソールで、[VM インスタンス] ページに移動します。
- 仮想マシン インスタンスのリストで、
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 セッションで次のコマンドを実行します。
Hive を起動します。
hive
myDatabase
という名前のデータベースを作成します。create database myDatabase;
作成したデータベースを表示します。
show databases;
作成したデータベースを使用します。
use myDatabase;
テーブルを
myTable
という名前で作成します。create table myTable(id int,name string);
myDatabase
内のテーブルを一覧表示します。show tables;
作成したテーブルのスキーマを記述します。
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 アカウントに課金されないようにするには、次の手順を行います。
- In the Google Cloud console, go to the Manage resources page.
- If the project that you plan to delete is attached to an organization, expand the Organization list in the Name column.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
あるいは、このチュートリアルで使用したリソースを削除することもできます。
Dataproc Metastore サービスを削除します。
Console
Google Cloud コンソールで、[Dataproc Metastore] ページを開きます。
サービスリストで [
example-service
] を選択します。ナビゲーション バーで [削除] をクリックします。
[サービスの削除] ダイアログが開きます。
ダイアログで [削除] をクリックします。
サービスが [サービスリスト] に表示されなくなります。
gcloud CLI
サービスを削除するには、次の
gcloud metastore services delete
コマンドを実行します。gcloud metastore services delete example-service \ --location=us-central1
REST
API Explorer を使用し、API の手順に従ってサービスを削除します。
削除はすべてすぐに正常終了します。
Dataproc Metastore サービスの Cloud Storage バケットを削除します。
Dataproc Metastore サービスを使用した Dataproc クラスタを削除します。