このページでは、Google Cloud プロジェクトの設定方法、Apache Beam SDK を使用して Maven プロジェクトを作成する方法、Dataflow サービス上でのサンプル パイプラインの実行方法について説明します。
始める前に
- Google アカウントにログインします。
Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する。
- Cloud Dataflow、Compute Engine、Stackdriver Logging、Cloud Storage、 Cloud Storage JSON、BigQuery、Cloud Pub/Sub、Cloud Resource Manager API を有効にします。
- 認証の設定:
-
Cloud Console で、[サービス アカウント キーの作成] ページに移動します。
[サービス アカウント キーの作成] ページに移動 - [サービス アカウント] リストから [新しいサービス アカウント] を選択します。
- [サービス アカウント名] フィールドに名前を入力します。
[ロール] リストから、プロジェクト > オーナー
- [作成] をクリックします。キーが含まれている JSON ファイルがパソコンにダウンロードされます。
-
-
環境変数
GOOGLE_APPLICATION_CREDENTIALS
を、サービス アカウント キーが含まれる JSON ファイルのパスに設定します。 この変数は現在のシェル セッションにのみ適用されるため、新しいセッションを開く場合は、変数を再度設定します。 - Cloud Storage バケットを作成します。
- Cloud Console の [Cloud Storage ブラウザ] ページに移動します。
- [バケットを作成] をクリックします。
- [バケットの作成] ダイアログ内で、以下の属性を指定します。
- 名前: 一意のバケット名。バケットの名前空間はグローバルであり、一般公開されるため、バケット名に機密情報を含めないでください。
- デフォルトのストレージ クラス: Standard
- バケットデータが保存されるロケーション
- [作成] をクリックします。
- Java Development Kit(JDK)バージョン 8 以降をダウンロードしてインストールします。JAVA_HOME 環境変数が設定され、ご使用の JDK インストールをポイントしていることを確認します。
- ご使用のオペレーティング システムに対応した Maven のインストール ガイドに沿って、Apache Maven をダウンロードし、インストールします。
WordCount コードを取得する
Apache Beam SDK は、データ パイプライン用のオープンソースのプログラミング モデルです。Apache Beam プログラムでこのようなパイプラインを定義し、パイプラインを実行する Dataflow などのランナーを選択できます。
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.25.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=counts"出力ファイルには接頭辞
counts
があり、word-count-beam
ディレクトリに書き込まれます。出力ファイルには、入力テキストに含まれる一意の単語と、各単語の出現回数が含まれます。Dataflow サービスで WordCount を実行する
Dataflow サービスで WordCount をビルドして実行します。
--project
引数に、作成した Google Cloud プロジェクトのプロジェクト ID を指定します。--stagingLocation
引数と--output
引数に、パスの一部として作成した Cloud Storage バケットの名前を指定します。--region
引数には、Dataflow リージョン エンドポイントを指定します。
$ 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 \ --region=<REGION>"
結果を表示する
- Dataflow ウェブ UI を開きます。
Dataflow ウェブ UI に移動まず、ステータスが [実行中] の wordcount ジョブを確認し、次に [完了] のジョブを確認します。
- Google Cloud Console で Cloud Storage ブラウザを開きます。
Cloud Storage ブラウザに移動バケットに、ジョブによって作成された出力ファイルとステージング ファイルが表示されます。
クリーンアップ
このクイックスタートで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。
- Cloud Console で、[Cloud Storage ブラウザ] ページに移動します。
- 削除するバケットのチェックボックスをクリックします。
- [削除] delete をクリックして、バケットを削除します。