GoogleのMapReduceの論文では、バックアップタスクがありますが、Hadoopでは投機的タスクと同じことだと思います。投機的なタスクはどのように実装されていますか?私が投機的な仕事を始めたとき、仕事は古いものからゆっくりと始めて、あるいは古い仕事がどこに到達したかで始まります(もしそうなら、すべての中間的な状態とデータをコピーする必要がありますか?)Hadoop投機的タスクの実行
答えて
Hadoopシステムの1つの問題は、多くのノードでタスクを分割することによって、いくつかの低速ノードがプログラムの残りのレートを制限する可能性があることです。
ハードウェアの低下やソフトウェアの誤設定など、さまざまな理由でタスクが遅くなる可能性がありますが、予想よりも長い時間が経過してもタスクが正常に完了するため、原因を検出するのが難しい場合があります。 Hadoopは低速実行タスクを診断して修正しようとしません。代わりに、タスクが予想よりも遅く実行されていることを検出し、別の同等のタスクをバックアップとして起動します。これは、投機的なタスクの実行と呼ばれます。
たとえば、あるノードに低速ディスクコントローラがある場合、他のすべてのノードの速度のわずか10%で入力を読み取っている可能性があります。したがって、99のマップタスクが既に完了している場合、システムは最終マップタスクがチェックインするのを待っています。これは、他のすべてのノードよりもはるかに時間がかかります。
タスクを互いに独立して実行することによって、個々のタスクは入力がどこから来るのかを知りません。タスクは、Hadoopプラットフォームを信頼して適切な入力を提供するだけです。したがって、同じ入力を並列に複数回処理して、マシン機能の違いを利用することができます。ジョブのほとんどのタスクが終了すると、Hadoopプラットフォームは、実行する他の作業がない複数のノードにまたがって残りのタスクの冗長コピーをスケジュールします。このプロセスは、投機的実行として知られています。タスクが完了すると、この事実がJobTrackerに通知されます。どのタスクのコピーが最初に終了しても、確定コピーになります。他のコピーが投機的に実行されていた場合、HadoopはTaskTrackersにタスクを破棄して出力を破棄するように指示します。 Reducersはマッパーが正常に完了した時点から入力を受け取ります。
投機実行は、デフォルトで有効になっています。新しいAPIではmapreduce.map.speculative
とmapreduce.reduce.speculative
を変更することが考えられますが、mapred.map.tasks.speculative.execution
とmapred.reduce.tasks.speculative.execution
のJobConfオプションをfalseに設定することで、マッパーとレデューサーの投機実行を無効にすることができます。
あなたの質問に答えるために、それは新たに始まり、他のタスクがどれだけ完了/完了したかとは関係ありません。
参考:あなたがシステム全体のレベルで完全に投機的なタスクの実行を無効にした場合http://developer.yahoo.com/hadoop/tutorial/module4.html
私は、 'mapreduce.map.speculative'と' mapreduce.reduce.speculative'がそれぞれ 'mapred.map.tasks.speculative.execution'と' mapred.reduce.tasks.speculative.execution'のより新しい同等物だと考えています。 –
- 1. 現在実行中のHadoopタスクのタスク試行IDを取得
- 2. Webコンソールへのタスクの投稿実行(管理)コンテキスト
- 3. 珍しいHadoopのエラー - 私は私のHadoopジョブを実行すると、タスクが自分自身
- 4. 実行Gradleのタスク
- 5. タスク実行時のタスクの停止
- 6. HadoopでMap/Reduceタスクを実行するCPU時間を調べる方法
- 7. 長期実行タスクの実行方法
- 8. のHadoopのMapReduceは、今私はのHadoopのMapReduceジョブを実行
- 9. 投機的な実行は高価な操作に従うでしょうか?
- 10. 複数のマップジョブを実行するHadoop -
- 11. キャンセルの遅延実行タスクの実装
- 12. hadoopロギング機能?
- 13. Tomcat Antタスク実行エラー
- 14. rakeタスクでcapybaraを実行
- 15. Rubyで効率的にx秒でタスクを実行
- 16. Celeryタスクを定期的に実行する(Djangoなし)
- 17. Outlookで自動的に実行するタスクを作成する
- 18. テスト環境で自動的にgemタスクを実行する
- 19. 潜在的に高価なタスクを実行する
- 20. C#タスクをシーケンスで実行する効率的な方法
- 21. これらのHadoopのセットアップ/クリーンアップ/実行時間は合理的ですか?
- 22. 並行してタスクを実行する
- 23. Androidで実行中のタスクと実行中のプロセスの違い
- 24. のAndroidで実行中のタスク
- 25. マルチノードでストリームジョブを実行中の "Child Error" Hadoopクラスタ(clouderaディストリビューションCDH3u0 Hadoop 0.20.2)
- 26. gruntタスクは他のgruntタスクを実行できますか?
- 27. svnチェックアウトの前にタスクを実行
- 28. ssisのエラーsqlタスクを実行
- 29. JavaFXのバックグラウンドでタスクを実行
- 30. 変更の実行スレッドがタスクを
が問題に加えて、理由のリストに何をされているだろうか?投機的な執行が無効になったときに得られた利益は何か。 –