Sparkストリーミング
データ・フローでのSparkストリーミングについて学習します。
ストリーミング・アプリケーションは、多くの場合、24時間を超えて長期間継続して実行する必要があり、数週間、ときには数か月間に渡ることもあります。予期しない障害が発生した場合、ストリーミング・アプリケーションは、誤った計算結果を生成することなく、障害発生時点から再開する必要があります。データ・フローは、Spark構造化ストリーミングのチェックポイント機能を使用して、オブジェクト・ストレージ・バケットに格納できる処理済のオフセットを記録します。
Oracle Cloud Infrastructureの通常のメンテナンスを行えるよう、データ・フローには、Spark構造化ストリーミング用にSparkクラスタの正常な停止が実装されています。メンテナンスが完了すると、ソフトウェアが更新された新しいSparkクラスタが作成され、リストに新しい実行が表示されます。前の実行のステータスは、メンテナンスのために停止されたことを示します。
データ・フローを使用すると、Sparkクラスタのイベント、ステータスおよびリソース消費のモニターに使用できるWebユーザー・インタフェース(UI)のスイートである、Spark UIおよびSpark履歴サーバーにアクセスできるようになります。重要なことは、論理実行計画と物理実行計画を調査できることです。ストリーミングでは、入出力率、オフセット、期間、統計的分布などの処理の進捗状況に関するインサイトが提供されます。Spark UIには、現在実行中のジョブに関する情報が表示され、履歴サーバーでは、終了したジョブに関する情報がわかります。
バッチ実行では、引数がほとんど同一の同じコードを同時に複数実行することが可能です。ただし、ストリーミング・アプリケーションのインスタンスを複数実行すると、チェックポイント・データが破損するため、データ・フローでの実行は、ストリーミング・アプリケーションごとに1つに制限されています。ストリーミング・アプリケーションが意図せず破損しないよう、編集する前に実行を停止する必要があります。編集が完了したら、ストリーミング・アプリケーションを再起動できます。バッチおよびストリーミング・アプリケーションを識別しやすいよう、「アプリケーション・タイプ」の値は、「バッチ」
か「ストリーミング」
になります。
バッチ実行と同様に、データ・フローではストリーミング・アプリケーションがプライベート・ネットワークに接続できます。
実行がエラーで停止した場合、データ・フローでは、間に3分間の待機を挟みながら、再起動が最大10回試行されます。10回目の試行が失敗すると、それ以上の試行は行われず、実行は停止されます。