2017-06-28 7 views
0

私はSpark Streamingアプリケーションを実行していますが、履歴のルックバックのためにrddをキャッシュしています。バッチは1分、平均処理時間は14秒です。したがって、エグゼキュータは全体を計算しませんバッチ持続時間。私はメモリ内のrddをキャッシュしているので、エグゼキュータもそうです。また、エグゼクティブが黙っている場合、エグゼクティブの抱擁はリソースの浪費であると考えてください。Sparkのリソース使用に関する疑問

答えて

0

これは達成したいことによって異なります。

Spark 2.0では、動的割り当てがSpark Streamingに設定され、バグはありません。

問題が発生しました。データの大量のワークロードがあると、少なくとも1つのエグゼキュータをデータ受信に使用しないとデータが失われる可能性があります。今これはSpark 2.0で解決され、データのリリースが機能しています。

膨大な量のデータがある場合に、キャッシュにデータを保存する利点は何ですか?シャッフルせずにデータを処理することができます。応答時間が長くなる可能性があります。

ただし、プロセスが1分であれば1分です。平均時間内にデータを処理するのにわずか14秒かかります。あなたのデータを公開し、他の仕事のためのスペースを開くために労働者を解放することをお勧めします。

タスクに十分なリソースがない場合、タスクはキューに入れられ、リソースを持ってすぐに処理されます。

リスクとは何ですか?あなたがあなたの糸にpreemptionを持っていない場合、労働者を解放すれば、資源を取り戻すのが難しいかもしれません。これは、クラスタに依存するリソースの無駄です。

私は何をしますか:自分の仕事を処理できるいくつかのキューを作成します。優先度の高いキューを設定し、そこにストリーミングを設定し、他のキューに他のジョブを設定して、動的割り当てをオンにしてキャッシュを解放します。アプリケーションがより多くのリソースを必要とする場合、Yarnはそれを処理します。

+0

"私はあなたのデータを公開することをお勧めします"、私は歴史の目的のために次の反復のために必要なので、私のデータを公開することはできません。 – JSR29

+0

あなたのデータは本当に巨大ですか?ストリームの入力ごとにデータのすべてのエントリをチェックしますか? –

+0

はいデータのすべてのエントリをチェックし、データのサイズは〜200KBです – JSR29

関連する問題