Bigtable を使用した Hadoop MapReduce ジョブ
この例では、Hadoop を使用して、テキスト ファイル内に出現する単語の数をカウントする簡単な MapReduce ジョブを実行します。この MapReduce ジョブでは、Bigtable を使用して、マップ オペレーションの結果を格納します。この例のコードは、GitHub リポジトリ GoogleCloudPlatform/cloud-bigtable-examples の java/dataproc-wordcount ディレクトリにあります。
認証を設定する
ローカル開発環境でこのページの Java サンプルを使用するには、gcloud CLI をインストールして 初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。
-
ローカルシェルを使用している場合は、ユーザー アカウントのローカル認証情報を作成します。
gcloud auth application-default login
Cloud Shell を使用している場合は、この操作を行う必要はありません。
認証エラーが返され、外部 ID プロバイダ (IdP)を使用している場合は、フェデレーション ID を使用して gcloud CLI にログインしていることを確認します。
詳細については、 ローカル開発環境の認証を設定するをご覧ください。
コードサンプルの概要
このコードサンプルは、1 つ以上のテキスト ファイルと表の名前を入力として受け取るコマンドライン インターフェースを提供し、そのファイルに現れるすべての単語を見つけ、各単語の出現回数をカウントします。MapReduce ロジックは WordCountHBase クラスに記述されています。
最初に、マッパーがテキスト ファイルの内容をトークン化し、Key-Value ペアを生成します。キーはテキスト ファイル内の単語で、値は 1 です。
次に、レデューサが各キーの値を合計し、その結果を、指定した Bigtable テーブルに書き込みます。各行のキーは、テキスト ファイルから取り出した単語です。各行には cf:count 列があります。行キーがテキスト ファイルに出現する回数をこの列に格納します。