Java と Apache Maven を使用したクイックスタート

このページでは、Google Cloud Platform プロジェクトの設定方法、Apache Beam SDK での Maven プロジェクトの作成方法、Cloud Dataflow サービスでのサンプル パイプラインの実行方法について説明します。

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. GCP プロジェクトを選択または作成します。

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

  3. Google Cloud Platform プロジェクトに対して課金が有効になっていることを確認します。 詳しくは、課金を有効にする方法をご覧ください。

  4. Cloud Dataflow、Compute Engine、Stackdriver Logging、Google Cloud Storage、Google Cloud Storage JSON、BigQuery、Cloud Pub/Sub、Cloud Datastore、Cloud Resource Manager API を有効にします。

    APIを有効にする

  5. 認証情報の設定:
    1. GCP Console で [サービス アカウントキーの作成] ページに移動します。

      [サービス アカウントキーの作成] ページに移動
    2. [サービス アカウント] リストから [新しいサービス アカウント] を選択します。
    3. [サービス アカウント名] フィールドに名前を入力します。
    4. [役割] リストで、[プロジェクト] > [オーナー] を選択します。

      : [役割] フィールドの設定により、リソースにアクセスするサービス アカウントが承認されます。このフィールドは、後から GCP Console で表示または変更できます。本番環境アプリケーションを開発している場合は、[プロジェクト] > [オーナー] よりも詳細な権限を指定します。詳しくはサービス アカウントへの役割の付与をご覧ください。
    5. [作成] をクリックします。キーが含まれている JSON ファイルがパソコンにダウンロードされます。
  6. 環境変数 GOOGLE_APPLICATION_CREDENTIALS をサービス アカウント キーが含まれる JSON ファイルのファイルパスに設定します。この変数は現在のシェル セッションにのみ適用されるため、新しいセッションを開く場合は、変数を再度設定してください。

  7. Cloud Storage バケットを作成します。
    1. GCP Console で、Cloud Storage ブラウザページに移動します。

      Cloud Storage ブラウザページに移動

    2. [バケットを作成] をクリックします。
    3. [バケットを作成] ダイアログ内で、以下の属性を指定します。
      • 名前: 一意のバケット名。バケットの名前空間は、全世界で、誰もが見られるようになっていますので、機密情報をバケット名に含めないようにしてください。
      • デフォルト ストレージ クラス: Standard
      • バケットデータが保存されるロケーション。
    4. [作成] をクリックします。
  8. Java Development Kit(JDK)バージョン 8 以降をダウンロードしてインストールします。JAVA_HOME 環境変数が設定され、ご使用の JDK インストールをポイントしていることを確認します。
  9. ご使用のオペレーティング システムに対応した Maven のインストール ガイドに沿って、Apache Maven をダウンロードし、インストールします。

WordCount コードを取得する

Maven Archetype Plugin を使用して、Apache Beam SDK の WordCount のサンプルを含む Maven プロジェクトを作成します。以下のように、シェルまたはターミナルで mvn archetype:generate コマンドを実行します。

$ mvn archetype:generate \
      -DarchetypeGroupId=org.apache.beam \
      -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
      -DarchetypeVersion=2.13.0 \
      -DgroupId=org.example \
      -DartifactId=word-count-beam \
      -Dversion="0.1" \
      -Dpackage=org.apache.beam.examples \
      -DinteractiveMode=false

コマンドを実行すると、現在のディレクトリの下に word-count-beam という新しいディレクトリが表示されます。word-count-beam には、pom.xml という簡単な内容のファイルと、テキスト ファイル内の単語数をカウントする一連のサンプル パイプラインが含まれています。

$ cd word-count-beam/

$ ls
pom.xml	src

$ ls src/main/java/org/apache/beam/examples/
DebuggingWordCount.java	WindowedWordCount.java	common
MinimalWordCount.java	WordCount.java

このサンプルで使用されている Apache Beam のコンセプトの詳細については、WordCount サンプルのチュートリアルをご覧ください。ここでは、WordCount.java の実行について説明します。

WordCount をローカルで実行する

WordCount をローカルで実行する場合は、word-count-beam ディレクトリで次のコマンドを実行します。

$ mvn compile exec:java \
      -Dexec.mainClass=org.apache.beam.examples.WordCount \
      -Dexec.args="--output=./output/"

Cloud Dataflow サービスで WordCount を実行する

Cloud Dataflow サービスで WordCount をビルドして実行するには:

  • --project 引数に、作成した GCP プロジェクトのプロジェクト ID を指定します。
  • --stagingLocation 引数と --output 引数に、パスの一部として作成した Cloud Storage バケットの名前を指定します。

$ mvn -Pdataflow-runner compile exec:java \
      -Dexec.mainClass=org.apache.beam.examples.WordCount \
      -Dexec.args="--project=<PROJECT_ID> \
      --stagingLocation=gs://<STORAGE_BUCKET>/staging/ \
      --output=gs://<STORAGE_BUCKET>/output \
      --runner=DataflowRunner"

結果を表示する

  1. Cloud Dataflow ウェブ UI を開きます。
    Cloud Dataflow ウェブ UI に移動

    まず、ステータスが [実行中] の wordcount ジョブを確認し、次に [完了] のジョブを確認します。

    Cloud Dataflow ジョブ
  2. Google Cloud Platform Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザに移動

    バケットに、ジョブによって作成された出力ファイルとステージング ファイルが表示されます。

    Cloud Storage バケット

クリーンアップ

このチュートリアルで使用したリソースについて GCP アカウントに課金されないようにする手順は次のとおりです。

  1. GCP Console で、Cloud Storage ブラウザページに移動します。

    Cloud Storage ブラウザページに移動

  2. 削除するバケットのチェックボックスをクリックします。
  3. バケット削除するには、[削除]()をクリックします。

次のステップ

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

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

ご不明な点がありましたら、Google のサポートページをご覧ください。