Cloud Storage コネクタは、オープンソースの Java ライブラリです。これにより、Cloud Storage 内のデータに対して Apache Hadoop や Apache 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 コネクタは、デフォルトで /usr/local/share/google/dataproc/lib/
ディレクトリのすべての Dataproc クラスタノードにインストールされます。
アプリケーションで、デフォルトで Dataproc クラスタにデプロイされたコネクタのバージョンと異なるコネクタのバージョンを使用する場合は、次のいずれかを行う必要があります。
--metadata GCS_CONNECTOR_VERSION=x.y.z
フラグを使用して新しいクラスタを作成する。このフラグは、アプリケーションで使用されるコネクタを、指定されたコネクタ バージョンに更新します。- 使用しているコネクタのバージョンが Dataproc クラスタでデプロイされているコネクタのバージョンと競合しないよう、アプリケーションの jar に使用しているバージョンのコネクタ クラスとコネクタの依存関係を含めて再配置する(こちらの Maven の依存関係の再配置の例をご覧ください)。
Dataproc 以外のクラスタ
コネクタをダウンロードします。
Hadoop 用の Cloud Storage コネクタをダウンロードするには:
- Cloud Storage バケットにある最新バージョン(本番環境での使用は推奨されません):
gcs-connector-HADOOP_VERSION-CONNECTOR_VERSION.jar
のパターンで、Hadoop と Cloud Storage のコネクタ バージョンを置き換えた特定のバージョンを Cloud Storage バケットからダウンロード- 例:
gs://hadoop-lib/gcs/gcs-connector-hadoop2-2.1.1.jar
- 例:
- Apache Maven リポジトリから特定のバージョンをダウンロード(シェーディングされ名前に
-shaded
接尾辞が付いた jar をダウンロードします)
コネクタをインストールします。
Cloud Storage コネクタをインストール、構成してテストするには、GitHub でのコネクタのインストールをご覧ください。
コネクタの使用
Cloud Storage に保存されているデータには、次に示す複数の方法でアクセスできます。
- Spark(または PySpark)や Hadoop アプリケーションで
gs://
接頭辞を使用する。 - Hadoop シェルで
hadoop fs -ls gs://bucket/dir/file
を実行する。 - Google Cloud コンソール Cloud Storage ブラウザ。
gsutil cp
コマンドまたはgsutil rsync
コマンドを使用する。
リソース
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 リファレンスをご覧ください。
次のステップ
- Cloud Storage に関する詳細を見る