Dataproc に関するよくある質問

全般

Dataproc とは何ですか?

Dataproc は、高速で使いやすく低コストのフルマネージド サービスです。Dataproc を使用すると、Google Cloud Platform で Apache Spark と Apache Hadoop エコシステムを実行できるようになります。Dataproc は、大小さまざまなクラスタをすばやくプロビジョニングして、一般的な多くのジョブタイプをサポートし、他の Google Cloud Platform サービス(Cloud Storage や Cloud Logging など)と統合されているため、TCO の削減に役立ちます。

Dataproc は従来の Hadoop クラスタとはどのように違うのですか?

Dataproc は、Spark と Hadoop の使いやすさ、速度、機能性の向上を目的としたマネージド Spark / Hadoop サービスです。従来の Hadoop デプロイでは、クラウドベースであっても、デベロッパーが自らクラスタで作業を導入、構成、管理、オーケストレートする必要があります。一方、Dataproc はデベロッパーに代わってクラスタの作成、管理、モニタリング、ジョブ オーケストレーションを行います。

Dataproc を使用するにはどうすればよいですか?

Dataproc クラスタの使用方法は、ニーズと機能に応じてさまざまです。ブラウザベースの Google Cloud コンソール を使用して、Dataproc を操作できます。また、Dataproc は Google Cloud CLI と統合されているため、Google Cloud CLI を使用できます。Dataproc REST API を使用すれば、プログラムからクラスタにアクセスできます。また、クラスタのマスターノードやワーカーノードに SSH で接続することもできます。

Dataproc の仕組みはどのようになっていますか?

Dataproc は、Google Cloud Platform で動作し、Apache Hadoop、Spark、Hive、Pig などの一般的なデータ処理ツールが統合されたマネージド フレームワークです。クラスタのライフサイクルと管理の調整を行うコントロールと統合のメカニズムを備えています。YARN アプリケーション マネージャーと統合されているため、これまでよりも簡単にクラスタを管理および使用できます。

どのようなタイプのジョブを実行できますか?

Dataproc は、Spark、Spark SQL、PySpark、MapReduce、Hive、Pig など最も一般的なジョブタイプの多くを細部にわたって標準でサポートしています。

Dataproc は Spark でどのクラスタ マネージャーを使用しますか?

Dataproc は Spark を YARN 上で実行します。

Dataproc のコンポーネントはどの程度の頻度で更新されますか?

Dataproc は、その基になるコンポーネント(Hadoop、Spark、Hive、Pig)のメジャー リリースが出ると更新されます。Dataproc のメジャー リリースごとに、サポートされる各コンポーネントのバージョンが異なります(サポートされている Dataproc バージョンを参照)。

Dataproc は他の Google Cloud Platform プロダクトと統合されていますか?

はい。Dataproc は、Compute Engine、Cloud Storage、Bigtable、BigQuery、Logging、Cloud Monitoring とネイティブで自動的に統合されています。さらに、Dataproc は、gcloud CLIGoogle Cloud Console など、Cloud Platform とやり取りするツールにも統合されています。

クラスタを永続的に実行できますか?

Dataproc クラスタは、いったん起動するとシャットダウンするまで稼働し続けます。必要とする限り、Dataproc クラスタを実行できます。

クラスタ管理

複数のクラスタを一度に実行できますか?

はい。プロジェクトごとに複数の Dataproc クラスタを同時に実行できます。 デフォルトでは、すべてのプロジェクトが Google Cloud リソース割り当ての対象になります。 簡単に割り当て使用状況をチェックして、割り当ての増加をリクエストできます。詳細については、Dataproc のリソース割り当てをご覧ください。

クラスタを作成または破棄するにはどうすればよいですか?

クラスタを作成および破棄するには、いくつかの方法があります。Google Cloud コンソール の Dataproc のセクションでは、ブラウザからクラスタを簡単に管理できます。クラスタは、gcloud CLI を介してコマンドラインから管理することもできます。より複雑または高度なユースケースでは、Cloud Dataproc REST API を使用して、プログラムでクラスタを管理できます。

クラスタを作成するときにカスタマイズ設定を適用できますか?

Dataproc では、クラスタを作成すると実行される初期化アクションをサポートしています。こうした初期化アクションは、Dataproc がクラスタをプロビジョニングするときに実行するスクリプトや実行可能ファイルであり、設定をカスタマイズしたり、アプリケーションをインストールしたり、その他の変更をクラスタに加えたりできます。

ニーズに応じてクラスタのサイズを設定するにはどうすればよいですか?

クラスタのサイズを設定するときは、実行する作業のタイプ、費用の制約、速度要件、リソース割り当てなどの要因を考慮する必要があります。Dataproc はさまざまなマシンタイプにデプロイできるため、必要なリソースを必要なときに柔軟に選択できます。

クラスタのサイズを変更できますか?

はい。クラスタのサイズは、ジョブを処理している場合も含め簡単に変更できます。クラスタのサイズを変更するには、Google Cloud Console やコマンドラインを使用します。サイズを変更すると、クラスタのワーカーの数が増減することがあります。クラスタに追加したワーカーでは、既存のワーカーと同じタイプとサイズが使用されます。クラスタのサイズは変更可能ですが、特殊なケースを除きます。たとえば、ワーカーの数を 1 つに減らしたり、HDFS 容量をジョブの完了に必要な量よりも少なくしたりすることはできません。

ジョブとワークフローの管理

クラスタのジョブを送信するにはどうすればよいですか?

Dataproc クラスタでジョブを送信するには、いくつかの方法があります。最も簡単な方法は、Google Cloud Console で Dataproc の [ジョブを送信] ページを使用するか、gcloud CLI の gcloud dataproc jobs submit コマンドを使用することです。プログラムでジョブを送信する方法については、Dataproc API リファレンスをご覧ください。

複数のジョブを一度に実行できますか?

はい。Dataproc クラスタでは複数のジョブを一度に実行できます。Dataproc は、リソース マネージャー(YARN)とアプリケーション固有の構成(Spark によるスケーリングなど)を利用して、クラスタでのリソースの使用を最適化します。ジョブのパフォーマンスは、クラスタサイズとアクティブなジョブの数に応じて変わります。

クラスタのジョブをキャンセルできますか?

もちろんできます。ジョブをキャンセルするには、Google Cloud Console ウェブ インターフェースかコマンドラインを使用します。Dataproc は、ジョブ停止のリクエストがあった場合、YARN アプリケーション キャンセル機能を利用してジョブを停止します。

クラスタでジョブを自動化できますか?

クラスタでのジョブの実行を自動化できるメカニズムがいくつかあります。gcloud CLI Google Cloud CLI または Dataproc REST API を使用すると、クラスタとジョブの管理とワークフローを自動化できます。

開発

どのような開発言語がサポートされていますか?

Java、Scala、Python、R など、Spark / Hadoop エコシステムでサポートされている言語を使用できます。

Dataproc に API はありますか?

はい。Dataproc では、RESTful API セットを使用して、クラスタやジョブとプログラムでやり取りできます。

クラスタに SSH で接続できますか?

はい。クラスタ内のあらゆるマシン(マスターノードやワーカーノード)に SSH で接続できます。 ブラウザやコマンドラインから SSH で接続できます。

Spark / Hadoop ウェブ UI にアクセスできますか?

はい。クラスタ内で Hadoop / Spark UI(Spark、Hadoop、YARN UI)にアクセスできます。UI 用にポートを開くのではなく、SSH トンネルを使用して SSH 接続でクラスタからトラフィックを安全に転送することをおすすめします。

クラスタでソフトウェアをインストールしたり管理したりできますか?

はい。Hadoop クラスタやサーバーと同じく、Dataproc クラスタでソフトウェアをインストールおよび管理できます。

デフォルトのレプリケーション係数はいくつですか?

パフォーマンスを考慮するだけでなく Dataproc クラスタに接続されたストレージの高い信頼性を確保するため、デフォルトではレプリケーション係数を 2 に設定されています。

Dataproc に使用されているオペレーティング システム(OS)は何ですか?

Dataproc は Debian と Ubuntu を基に開発されています。最新のイメージは、Debian 10 Buster と Ubuntu 18.04 LTS を基に開発されています。

Hadoop ストリーミングはどこで学習できますか?

Apache プロジェクトのドキュメントをご覧ください。

gcloud dataproc コマンドをインストールするにはどうすればよいですか?

gcloud CLI をインストールすると、gcloud dataprocコマンドなどの標準の gcloud コマンドライン ツールがインストールされます。

データアクセスと可用性

クラスタにデータを格納したり取り出したりするにはどうすればよいですか?

Dataproc では、データ保存に Hadoop Distributed File System(HDFS)を使用しています。 また、HDFS 互換の Storage コネクタが自動的にインストールされるため、HDFS と並行して Cloud Storage も使用できます。HDFS または Cloud Storage へのアップロードとダウンロードによって、クラスタに対してデータの格納と取り出しを行うことができます。

Dataproc で Cloud Storage を使用できますか?

はい。Dataproc クラスタは、自動的に Cloud Storage コネクタをインストールします。従来の HDFS ではなく Cloud Storage を選択すると、データの永続性、信頼性、パフォーマンスなど数多くの利点が得られます。

Cloud Storage コネクタのサポートを受けられますか?

はい。Cloud Storage コネクタは、Dataproc と併用すると、Dataproc と同じレベルでサポートされます(サポートの利用をご覧ください)。すべてのコネクタ ユーザーは、Stack Overflow でコネクタの質問と回答に google-cloud-dataproc タグを使用できます。

HDFS と Cloud Storage 上のデータセットに最適なファイルサイズはどのくらいですか?

パフォーマンスを向上させるには、256 MB~512 MB の範囲のファイルサイズなど、より大きなファイルサイズでデータを保存します。

Dataproc はどの程度信頼できますか?

Dataproc は、Compute Engine、Cloud Storage、Monitoring など、信頼性が高く実証済みの Google Cloud Platform テクノロジーを基に構築されているため、高い可用性と信頼性を備えています。一般公開されているプロダクトとして、Dataproc SLA を確認できます。

クラスタをシャットダウンするとデータはどうなりますか?

Cloud Storage 内のデータは、クラスタをシャットダウンした後も保持されます。これは、HDFS よりも Cloud Storage を選択する理由の 1 つになっています。HDFS データは、(シャットダウンの前に永続的なロケーションに転送されない限り)クラスタがシャットダウンされると削除されます。

ロギング、モニタリング、デバッグ

どのような種類のロギングとモニタリングを使用できますか?

Dataproc クラスタはデフォルトで Monitoring および Logging と統合されています。Monitoring と Logging を使用すると、Dataproc クラスタの使用状況、パフォーマンス、ステータスに関する詳細な情報を簡単に取得できます。アプリケーション(YARN や Spark など)ログとシステムログのどちらも、Logging に転送されます。

Dataproc からのログを参照するにはどうすればよいですか?

Dataproc からのログはいくつかの方法で参照できます。Logging にアクセスすると、ウェブブラウザで集約されたクラスタログを参照できます。また、コマンドライン(SSH)を使用すると、ログを手動で表示したり、アプリケーション出力をモニタリングしたりできます。YARN ウェブ インターフェースなどの Hadoop アプリケーション ウェブ UI から詳細を確認することもできます。

クラスタをモニタリングするにはどうすればよいですか?

Monitoring や Google Cloud Console の Cloud Dataproc セクションを使用すると、クラスタを簡単にモニタリングできます。また、コマンドライン(SSH)アクセスやアプリケーション(Spark や YARN など)ウェブ インターフェースを使用してクラスタをモニタリングすることもできます。

セキュリティとアクセス

データはどのように保護されますか?

Google Cloud Platform に導入されている機能豊富なセキュリティ モデルが Cloud Dataproc にも適用されます。Dataproc は、データを保護するために認証、認可、暗号化のメカニズム(SSL など)を備えています。クラスタを作成するときやジョブを送信するときに、クラスタとの間でユーザーが暗号化したデータを転送できます。

Dataproc クラスタへのアクセスを制御するにはどうすればよいですか?

Google Cloud Platform が備えている認証メカニズムを Dataproc で使用できます。Dataproc クラスタとジョブへのアクセス権限をプロジェクト レベルでユーザーに付与できます。

課金

Dataproc はどのように課金されますか?

Dataproc はクラスタのサイズとクラスタが動作可能な時間の長さに基づき、秒単位で課金されます。クラスタ コンポーネントの料金を計算する際、Dataproc はクラスタの仮想 CPU(vCPU)の数に基づいて定額料金を請求します。この定額料金は、使用する Compute Engine リソースのマシンタイプやサイズに関係なく同じです。

他の Google Cloud リソースは課金されますか?

はい、Dataproc クラスタを実行すると、Compute Engine や Cloud Storage など、クラスタで使用されている他の Google Cloud リソースに対して料金が発生します。請求書には各アイテムが個別に記載されるため、費用がどのように計算され配分されているかが正確にわかります。

課金の最小時間や最大時間はありますか?

Google Cloud の料金は、時間単位ではなく秒単位で計算されます。現時点では、Compute Engine の最小課金単位は 1 分です。したがって、Dataproc の最小課金単位も 1 分です。

対象

誰が Dataproc クラスタを作成できますか?

Dataproc は一般提供されているため、Google Cloud Platform のすべてのお客様がご利用になれます。

どのリージョンで Dataproc を利用できますか?

Dataproc は、Google Cloud Platform のすべてのリージョンとゾーンでご利用いただけます。