Cloud Storage コネクタ

Cloud Storage コネクタは、オープンソースの Java ライブラリです。これにより、Cloud Storage 内のデータに対して Apache HadoopApache Spark のジョブを直接実行できます。Hadoop 分散ファイル システム(HDFS)を選択する場合と比べ、Cloud Storage コネクタは多くのメリットをもたらします。

Cloud Storage コネクタのメリット

  • データへの直接アクセス - データを Cloud Storage に保存し、直接アクセスします。最初にデータを HDFS に転送する必要はありません。
  • HDFS との互換性 - hdfs:// 接頭辞の代わりに gs:// を使用して、Cloud Storage 内のデータに簡単にアクセスできます。
  • 相互運用性 - Cloud Storage にデータを保存することにより、Spark、Hadoop、Google サービス間でシームレスな相互運用性を実現できます。
  • データ アクセシビリティ - HDFS と異なり、Hadoop クラスタをシャットダウンしても、Cloud Storage 内のデータに引き続きアクセスできます。
  • データの高可用性 - Cloud Storage に保存されているデータの可用性は高く、グローバルに複製してもパフォーマンスが低下しません。
  • ストレージ管理のオーバーヘッドが不要 - HDFS と異なり、Cloud Storage はファイル システムのチェック、ファイル システムのアップグレードや旧バージョンへのロールバックなどの定期的なメンテナンスを必要としません。
  • クイック起動 - HDFS では、NameNode がセーフモードでなくなるまで MapReduce ジョブを起動できません。この処理は、データのサイズや状態に応じて、数秒で終わるときもあれば、何分もかかるときもあります。Cloud Storage を使用することで、タスクノードの開始と同時にジョブを開始することができ、長期的にも大幅なコスト節減につながります。

Dataproc クラスタの Cloud Storage コネクタの設定

Cloud Storage コネクタは、デフォルトで /usr/local/share/google/dataproc/lib/ ディレクトリのすべての Dataproc クラスタノードにインストールされます。

以降のセクションでは、Dataproc クラスタでコネクタを正常に設定する手順を説明します。

サービス アカウントの権限

Dataproc クラスタなどの Compute Engine VM 内でコネクタを実行すると、google.cloud.auth.service.account.enable プロパティはデフォルトで false に設定されます。したがって、コネクタのサービス アカウントを手動で構成する必要はありません。サービス アカウントの認証情報は VM メタデータ サーバーから取得されます。

デフォルト以外のコネクタ バージョン

Dataproc クラスタにインストールされている最新のイメージで使用されるデフォルトの Cloud Storage コネクタのバージョンは、クラスタ イメージのバージョン ページにリストされています(サポートされている Dataproc のバージョンをご覧ください)。アプリケーションが、クラスタにデプロイされた、デフォルト以外のコネクタ バージョンに依存している場合は、次のいずれかを行う必要があります。

  1. --metadata=GCS_CONNECTOR_VERSION=x.y.z フラグを使用してクラスタを作成します。このフラグは、クラスタで実行されているアプリケーションで指定されたコネクタを、指定されたコネクタ バージョンに更新します。
  2. 使用しているバージョンの jar のコネクタクラスとコネクタの依存関係をアプリケーションの jar に含めて再配置します。 デプロイされたコネクタのバージョンと Dataproc クラスタにインストールされているデフォルトのコネクタのバージョンの競合を回避するには、再配置が必要です(Maven の依存関係の再配置の例をご覧ください)。

Dataproc 以外のクラスタ

  1. コネクタをダウンロードします。

    Hadoop 用の Cloud Storage コネクタをダウンロードするには:

  2. コネクタをインストールします。

    Cloud Storage コネクタをインストール、構成してテストするには、GitHub でのコネクタのインストールをご覧ください。

コネクタを使用する

Cloud Storage に保存されているデータには、次に示す複数の方法でアクセスできます。

リソース

Java のバージョン

Cloud Storage コネクタには Java 8 が必要です。

Apache Maven 依存関係についての情報

<dependency>
    <groupId>com.google.cloud.bigdataoss</groupId>
    <artifactId>gcs-connector</artifactId>
    <version>insert "hadoopX-X.X.X" connector version number here</version>
    <scope>provided</scope>
</dependency>

または、共有ヴァージョン。

<dependency>
    <groupId>com.google.cloud.bigdataoss</groupId>
    <artifactId>gcs-connector</artifactId>
    <version>insert "hadoopX-X.X.X" connector version number here</version>
    <scope>provided</scope>
    <classifier>shaded</classifier>
</dependency>

詳しくは、Cloud Storage コネクタのリリースノートJavadoc リファレンスをご覧ください。

次のステップ