Managed Service for Apache Spark に関するよくある質問

全般

Managed Service for Apache Spark とは

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

Managed Service for Apache Spark は従来の Hadoop クラスタとはどのように違うのですか?

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

Managed Service for Apache Spark はどのように使用できますか?

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

Managed Service for Apache Spark の仕組み

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

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

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

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

Managed Service for Apache Spark は Spark on YARN を実行します。

Managed Service for Apache Spark のコンポーネントはどの程度の頻度で更新されますか?

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

Managed Service for Apache Spark は他の Google Cloud Platform プロダクトと統合されていますか?

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

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

Managed Service for Apache Spark クラスタは、いったん起動するとシャットダウンするまで稼働し続けます。Managed Service for Apache Spark クラスタは、必要な期間だけ実行できます。

クラスタ管理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

開発

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

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

Managed Service for Apache Spark に API はありますか?

はい。Managed Service for Apache Spark には、クラスタやジョブとプログラムでやり取りできる RESTful API セットがあります。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

データアクセスと可用性

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

Managed Service for Apache Spark は、ストレージに Hadoop 分散ファイル システム(HDFS)を使用します。また、Managed Service for Apache Spark は HDFS 互換の Google Cloud Storage コネクタを自動的にインストールするため、HDFS と並行して Cloud Storage も使用できます。クラスタに対してデータの移動を行うには、HDFS や Cloud Storage へのアップロードとダウンロードを使用します。

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

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

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

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

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

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

Managed Service for Apache Spark の信頼性はどの程度ですか?

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

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

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

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

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

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

Managed Service for Apache Spark からのログを表示するにはどうすればよいですか?

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

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

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

セキュリティとアクセス

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

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

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

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

課金

Managed Service for Apache Spark の料金はどのように請求されますか?

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

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

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

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

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

対象

Managed Service for Apache Spark クラスタを作成できるユーザー

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

Managed Service for Apache Spark はどのリージョンで利用できますか?

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