Dataproc Metastore サービスをデプロイする
このページでは、Dataproc Metastore サービスを作成し、Managed Service for Apache Spark クラスタから接続する方法について説明します。その後、クラスタに SSH 接続し、Apache Hive のインスタンスを起動して、基本的なクエリを実行します。
Dataproc Metastore には、完全互換の Hive メタストア(HMS)が用意されています。これは、テクニカル メタデータを管理するためのオープンソースのビッグデータ エコシステムで確立された標準規格です。このサービスは、データレイクのメタデータを管理し、使用しているさまざまなデータ処理ツール間の相互運用性を提供します。
このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、「ガイドを表示」をクリックしてください。
始める前に
- アカウントにログインします。 Google Cloud を初めて使用する場合は、 アカウントを作成して、 実際のシナリオでプロダクトがどのように機能するかを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.
必要なロール
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 サービスを作成する方法を説明します。
コンソール
コンソールで、[Dataproc Metastore] ページに移動します。 Google Cloud
ナビゲーション メニューで [+作成] をクリックします。
[Metastore サービスの作成] ダイアログが開きます。
[Dataproc Metastore 2] を選択します。
[サービス名] フィールドに「
example-service」と入力します。[データのロケーション] フィールドで、
us-central1を選択します。残りのサービス構成オプションには、指定されたデフォルトを使用します。
サービスを作成して開始するには、[送信] をクリックします。
新しいメタストア サービスが [Dataproc Metastore] ページに表示されます。サービスが使用できるようになるまで、ステータスには [作成中] と表示されます。 準備が完了すると、ステータスが [アクティブ] に変わります。 サービスのプロビジョニングには数分かかることがあります。
次のスクリーンショットは、指定されたいくつかのデフォルトを使用した [サービスの作成] ページの例を示しています。
![[Create service] ページ。](https://docs.cloud.google.com/static/dataproc-metastore/images/dataproc-metastore-create.png?hl=ja)
gcloud CLI
gcloud metastore services create example-service \
--location=us-central1 \
--instance-size=MEDIUMREST
API Explorer を使用し、API の手順に従ってサービスを作成 します。
Managed Service for Apache Spark クラスタを作成して Dataproc Metastore に接続する
次に、Managed Service for Apache Spark クラスタを作成し、クラスタからメタストアに接続します。その後、クラスタはメタストア サービスを HMS として使用します。 ここで作成するクラスタは、指定されたデフォルト設定を使用します。
コンソール
コンソールで、[Dataproc クラスタ] ページに移動します。 Google Cloud
ナビゲーション バーで、[+クラスタを作成] を選択します。
[クラスタを作成] ダイアログが開き、複数のインフラストラクチャから選択できます。
[Compute Engine 上のクラスタ] 行で [作成] を選択します。
[Compute Engine 上に Managed Service for Apache Spark クラスタを作成する] ページが開きます。
[クラスタ名] フィールドに「
example-cluster」と入力します。[リージョン] メニューと [ゾーン] メニューで、
us-central1を選択します。残りの [クラスタの設定] オプションについては、指定されたデフォルトを使用します。
ナビゲーション メニューで [クラスタをカスタマイズ(省略可)] タブをクリックします。
[Dataproc 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-central1PROJECT_ID は、Dataproc Metastore サービスを作成した
プロジェクトのプロジェクト ID に置き換えます。
REST
API Explorer を使用し、API の手順に従ってクラスタを作成します 。
Managed Service for Apache Spark クラスタを使用して Apache Hive に接続する
次のステップでは、Apache Hive でサンプル コマンドを実行してデータベースとテーブルを作成する方法について説明します。
次に、Managed Service for Apache Spark クラスタで SSH セッションを開き、Hive セッションを起動します。
- コンソールで、[VM Instances] ページに移動します。 Google Cloud
- 仮想マシン インスタンスのリストで、
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 を起動します。
hivemyDatabaseという名前のデータベースを作成します。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 アカウントに課金されないようにするには、 次の手順を実施します。
- コンソールで [**リソースの管理**] ページに移動します。 Google Cloud
- 削除するプロジェクトが組織に関連付けられている場合は、[名前] 列の [組織] リストを展開します。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、 [Shut down] をクリックしてプロジェクトを削除します。
あるいは、このチュートリアルで使用したリソースを削除することもできます。
Dataproc Metastore サービスを削除します。
コンソール
コンソールで、Dataproc Metastore ページを開きます。 Google Cloud
サービスリストで [
example-service] を選択します。ナビゲーション バーで [削除] をクリックします。
[サービスの削除] ダイアログが開きます。
ダイアログで [削除] をクリックします。
サービスが [サービスリスト] に表示されなくなります。
gcloud CLI
サービスを削除するには、次の
gcloud metastore services deleteコマンドを実行します。gcloud metastore services delete example-service \ --location=us-central1REST
API Explorer を使用し、API の手順に従ってサービスを削除します。
削除はすべてすぐに正常終了します。
Dataproc Metastore サービスの Cloud Storage バケットを削除します。
Dataproc Metastore サービスを使用した Managed Service for Apache Spark クラスタを削除します