RDDは本質的に系統によってフォールトトレラントです。しかし、アプリケーションに100sの操作がある場合、すべての操作を再構築するのが難しくなります。中間データを保存する方法はありますか? RDDを保持するためのpersist()/ cache()のオプションがあることを理解しています。しかし、彼らは中間データを保持するのに十分ですか?チェックポインティングはオプションになりますか?また、チェックポインティングRDDストレージのレベルを指定します?(などメモリやディスクのような、)アプリケーションに100sの操作がある場合、Sparkに中間データを格納します。
答えて
キャッシュながら()とが(持続道)があるは、一般的なチェックポイントであることはあるものですストリーミング特有のものです
キャッシング - キャッシュはメモリやディスク
rdd.cache()
が持続に起こるかもしれない - あなたはどちらかのメモリやディスク
rdd.persist(storage level)
であなたのデータを永続化するオプションを与えることができますチェックポイント - データを保存する必要があるディレクトリを指定する必要があります(HDFS/S3のような信頼できるストレージ内)
val ssc = new StreamingContext(...) // new context
ssc.checkpoint(checkpointDirectory) // set checkpoint directory
キャッシュ/とチェックポイントを持続との間に有意な違いがあります。
キャッシュ/持続は、RDDを実体化し、メモリおよび/またはディスクに保持します。しかし、RDDの系統(つまり、RDDを生成した操作のseq)は記憶されます。そのため、ノードに障害があり、キャッシュされたRDDの一部が失われた場合、それらを再生成することができます。
しかし、HDFSファイルにRDDを保存しチェックポイントと、実際に忘れ系譜完全に。これにより、長い系統を切り捨てることができ、データはHDFSに確実に保存されます(複製によって自然にフォールトトレラントになります)。
非常に詳細な応答をありがとう。チェックポインティングがストリーミングのためだけのものである場合、通常のRDDに中間データを格納する方法がありますか?または、唯一の選択肢は残っていますか? –
persistは、中間レベルのデータをディスクに保存するオプションを提供します。 - rdd.persist(MEMORY_AND_DISK)。それはメモリとディスクにデータを保存します。 spark doc - http://spark.apache.org/docs/latest/programming-guide.html#rdd-persistence – infiniti
の_checkpointは、streaming_に固有のものです。それ以外のオプションは確認できます。また、Sparkのさまざまな概念(データチェックポイント、メタデータチェックポイント、ローカルチェックポイントなど)についても説明します。 – zero323
- 1. ファイルからデータを操作して配列に格納する
- 2. Android:AccountManagerにデータを格納する場所
- 3. 両方のアプリケーションにマルチDBアーキテクチャがある場合、同じローカルMySQLインスタンスに異なるアプリケーションのデータを格納する方法はありますか?
- 4. データベースに格納されている平均操作時間
- 5. マップ内にオブジェクトを格納するのが正しい場合
- 6. Windowsアプリケーションの格納場所
- 7. Rを格納するループの場合
- 8. アプリケーションを再起動しても値を格納する方法は? ApplescriptObjCでアプリケーションを作成する場合
- 9. Webアプリケーションにデータを格納しエスケープする方法は?
- 10. アプリケーション間でデータを格納するのに最適な場所は何ですか
- 11. SET操作中にredisタイムアウトが発生した場合、redis dbのデータは変更されていますか?
- 12. :文字列がテキストの場合、チェックボックスのデータはどのようにしてレールに格納されますか?
- 13. アプリケーションの洞察にデータを格納する方法は?
- 14. データの格納が
- 15. SQL結合/接合テーブルに追加のデータを格納する必要がありますか?
- 16. データフレームは大量のデータをどのようにメモリに格納して操作するのですか?
- 17. クライアントのHTMLにデータを格納する方法/場所
- 18. 一時的なデータを春のMVCに格納する場所
- 19. データが大きい場合、グローバルアクセスのためにセッションに変数を格納するのが適切ですか?
- 20. ページに24以上のフォームがある場合にフォームデータを操作する
- 21. 間違ったユーザIDにデータを格納しているFirebase
- 22. WebアプリケーションにExchangeServiceインスタンスを格納する場所
- 23. デバッグ情報をアプリケーションのデータベースに格納する必要があります
- 24. RCPアプリケーションでviewpartに格納されたデータを保存する
- 25. Azure関数のアプリケーションにアプリケーション固有の構成プロパティを格納する場所
- 26. データにカンマが含まれている場合、csvに格納する方法は?
- 27. WCFリクエストにデータを格納する場所
- 28. IBM iマシンに機密データを格納する場所
- 29. いくつかのクラスのデータを中央オブジェクトに格納します
- 30. java.utilのデータ型に16バイトを格納する必要があります。
私は 'rdd.checkpoint'あなたがチェックポイント時に –
@TonTorresは、我々はストレージレベルを指定することができます必要なものであると思いますか? –
私が知っていることから、いいえ。 'checkpoint'は' SparkContext#setCheckpointDir'で設定されたチェックポイントディレクトリ内のファイルに保存されます - これは通常HDFSやS3のようなものです。 –