Hadoop クラスタの作成

Cloud Dataproc を使用すると、Cloud Bigtable インスタンスに接続し Hadoop ジョブを実行できる 1 つ以上の Compute Engine インスタンスを作成できます。このページでは、Cloud Dataproc を使用して以下のタスクを自動化する方法について説明します。

  • Java 用 Hadoop と HBase クライアントのインストール
  • Hadoop と Cloud Bigtable の構成
  • Cloud Bigtable の正しい承認スコープの設定

Cloud Dataproc クラスタを作成した後、そのクラスタを使用して、Cloud Bigtable へのデータの書き込みと読み取りを行う Hadoop ジョブを実行できます。

このページでは、読者がすでに Hadoop に精通していると想定しています。Cloud Dataproc の詳細については、Cloud Dataproc のドキュメントをご覧ください。

始める前に

始める前に、以下のタスクを実行する必要があります。

  • Cloud Bigtable インスタンスを作成します。プロジェクト ID と Cloud Bigtable インスタンス ID を確実にメモしてください。
  • Cloud Bigtable、Cloud Bigtable 管理者、Cloud Dataproc、Cloud Storage JSON API を有効にします。

    APIを有効にする

  • Cloud SDK と gcloud コマンドライン ツールをインストールします。詳細については、Cloud SDK セットアップ手順をご覧ください。
  • 次のコマンドを実行して、gsutil ツールをインストールします。
    gcloud components install gsutil
  • サンプル Hadoop ジョブの実行に使用する Apache Maven をインストールします。

    Debian GNU/Linux または Ubuntu 上で、次のコマンドを実行します。

    sudo apt-get install maven

    RedHat Enterprise Linux または CentOS 上で、次のコマンドを実行します。

    sudo yum install maven

    macOS 上で Homebrew をインストールした後、次のコマンドを実行します。

    brew install maven
  • GitHub リポジトリ GoogleCloudPlatform/cloud-bigtable-examples のクローンを作成します。ここには、Cloud Bigtable を使用する Hadoop ジョブの例が含まれます。
    git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git

Cloud Storage バケットの作成

Cloud Dataproc は、Cloud Storage バケットを使用して一時ファイルを格納します。ファイル名の競合を防ぐには、Cloud Dataproc の新しいバケットを作成します。

Cloud Storage バケット名は、すべてのバケットにわたってグローバルに一意である必要があります。Google Cloud Platform プロジェクト名を含む名前など、利用可能なバケット名を選択します。

名前を選択した後、次のコマンドを使用して新しいバケットを作成してください。ここで、大かっこ内の値は、適切な値で置き換えてください。

gsutil mb -p [PROJECT_ID] gs://[BUCKET_NAME]

Cloud Dataproc クラスタの作成

次のコマンドを実行して、4 つのワーカーノードを持つ Cloud Dataproc クラスタを作成します。ここで、大かっこ内の値は、適切な値で置き換えてください。

gcloud dataproc clusters create [DATAPROC_CLUSTER_NAME] --bucket [BUCKET_NAME] \
    --zone [ZONE] --num-workers 4 --master-machine-type n1-standard-4 \
    --worker-machine-type n1-standard-4

構成可能な追加設定については、gcloud dataproc clusters create のドキュメントをご覧ください。テキスト Insufficient 'CPUS' quota を含むエラー メッセージが表示される場合、--num-workers フラグに小さな値を設定してみてください。

Cloud Dataproc クラスタのテスト

Cloud Dataproc クラスタを設定した後、単語がテキスト ファイル内に出現する回数をカウントするサンプル Hadoop ジョブを実行して、クラスタをテストできます。サンプルジョブでは、Cloud Bigtable を使用してオペレーションの結果を格納します。自分の Hadoop ジョブを設定するときに、このサンプルジョブをリファレンスとして使用できます。

サンプル Hadoop ジョブの実行

  1. GitHub リポジトリのクローンを作成したディレクトリで、ディレクトリ java/dataproc-wordcount に移動します。
  2. 次のコマンドを実行してプロジェクトをビルドします。ここで、大かっこ内の値は、適切な値で置き換えてください。

    mvn clean package -Dbigtable.projectID=[PROJECT_ID] \
        -Dbigtable.instanceID=[BIGTABLE_INSTANCE_ID]
    
  3. 次のコマンドを実行して Hadoop ジョブを開始します。ここで、大かっこ内の値は、適切な値で置き換えてください。

    ./cluster.sh start [DATAPROC_CLUSTER_NAME]
    

ジョブが完了すると、単語 WordCount の後にハイフンと一意の番号が続く、出力テーブルの名前が表示されます。

Output table is: WordCount-1234567890

Hadoop ジョブの結果の検証

オプションで、Hadoop ジョブを実行した後、HBase シェルを使用してジョブが正しく実行されたことを確認できます。

  1. Cloud Shell でターミナル ウィンドウを開きます。

    Cloud Shell で開く

  2. HBase シェルファイルを含むリポジトリのクローンを作成し、HBase シェルのディレクトリに移動します。

    git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git
    cd cloud-bigtable-examples/quickstart
  3. HBase シェルを起動します。

    ./quickstart.sh
  4. 出力テーブルをスキャンして、Hadoop ジョブの結果を表示します。ここで、[TABLE_NAME] は、ユーザーの出力テーブルの名前で置き換えてください。
    scan '[TABLE_NAME]'

これで、クラスタがセットアップされたことを確認したので、それを使用して独自の Hadoop ジョブを実行できます。

Cloud Dataproc クラスタの削除

Cloud Dataproc クラスタの使用を終了したら、次のコマンドを実行してクラスタのシャットダウンと削除を行います。[DATAPROC_CLUSTER_NAME] は、Cloud Dataproc クラスタの名前に置き換えます。

gcloud dataproc clusters delete [DATAPROC_CLUSTER_NAME]

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Bigtable ドキュメント