Amazon EMRのクラスタで動作するApache Sparkを使用してDecisionTreeClassifier
を「トレーニング」しようとしています。約50名のエグゼキュータが追加されており、その機能はSparkSQLを使用してPostgresデータベースにクエリを作成し、DataFrameに保存することで作成されることがわかります。 データセットがそれほど大きくなくても、DesceedTree fit
メソッドは何時間もかかります(10.000dbのエントリで、各行は数百バイトになります)。
これには1つのタスクしかないことがわかりましたので、これが非常に遅いという理由があると思います。
このタスクが1つのタスクで実行されている理由はどこですか? データを取得する方法ですか? これは少しばかり残念ですが、データを取得するコードが関連しているのか、それともアルゴリズムのパラメータなのかわかりません(オンラインでは見つかりませんでしたが)チューニング? 私はどんな方向にも感謝します!
ありがとうございます。スパークデシジョンツリーのフィットが1つのタスクで実行される
答えて
スパークはデータの局所性に依存します。すべてのデータが1か所に配置されているようです。したがって、sparkは単一のパーティションを使用してそれを処理します。再分割を適用したり、ロード時に使用したいパーティションの数を指定することができます。また、意思決定ツリーApiを調べ、具体的にパーティション数を設定できるかどうかを確認します。 基本的に、パーティションはあなたの並列処理のレベルです。
あなたの答えをありがとう。私の調査から、これが最も可能性の高い原因だと思う...私は今検証するためにチェックしている! –
私はもう少しテストを実行します...良いことは、ジョブが複数のタスクで実行されていることがわかりました。しかし、それは実行が決定木のフィットの最後のタスクに詰まっているとしてもまだかなり遅いです...どのように私はボトルネックを理解することができますどのようなアイデア?私はGangliaもインストールしましたが、特定のコアは全くスロットルをしていないようです:/あなたの答えを受け入れる場合は、あなたの助けをありがとう! –
ゆっくりとはどういう意味ですか?それは固まっているか遅いですか?いくつかのデータサイズ、パーティション、時間を共有できますか? –
- 1. .NETタスクが1つのスレッドで実行される
- 2. 1つ前のSSISタスクが失敗した後に1つのSSISタスクが実行される
- 3. C#タスクは1つのコアで実行されますか?
- 4. Gradle、1つのタスクで何が実行されていますか?
- 5. アンドロイドでは、1つのタスクはデバイスのすべてのコアを使用して実行されるか、1つだけが実行されますか?
- 6. sgeは1つのノードで1つのタスクしか実行できません
- 7. 複数のタスクを1つずつデータベースに実行する
- 8. メゾスのスパーク:タスクが1つのノードでスケジュールされる
- 9. 1つの非同期タスクを1つずつ実行するにはどうすればよいですか?
- 10. CurrentRoleInstance.Idを使用して1つのインスタンスでタスクを実行
- 11. Androidで1日に1回スケジュールされたタスクを実行する
- 12. 実行可能なタスクが実行されるかどうか
- 13. 実行可能なプレイブックから1つのタスクとハンドラを実行する
- 14. 非同期タスクを1つずつ実行する
- 15. ブロッキングコードが1つのスレッドで実行されます
- 16. 火花のあるスパークデシジョンツリー
- 17. 1つのサーバー上の同じコードが1つのサイトで超低速で実行されますが、別のサーバーで高速に実行されます
- 18. 1つのJavaScript関数が実行されますが、2つは実行されません。
- 19. Xcodeプロジェクトは1つのデバイスで実行されますが、別のデバイスでは実行されません
- 20. GAEタスクは1時間実行されますか?
- 21. Spring 4.3.1スケジュールされたタスクが2回実行される
- 22. Parallel.ForEachは最後に1つのタスクを実行します
- 23. DelphiのTTask - 1つのプロシージャが実行されない
- 24. 定義されたプロパティでのみ実行するタスクを実行する
- 25. セルラービートで一度に1つのタスクしか実行されないようにする
- 26. セールスコードでタスクが実行されないようにするタスクオプション
- 27. 長時間実行されるタスクを実行するフレームワーク
- 28. いつでもタスク内でcapistranoタスクを実行するには?
- 29. 1日目の最初のビルドでGradleタスクを実行する
- 30. 特定のパラメータの各タスクがNode.JSで1回だけ実行されることを確認する
クラスタ構成について聞かれますか?あなたのアプリケーションをどのように提出しますか?どんなタイプのインスタンスを使用しますか? – eliasah
はい... 'sbt assembly'(これはスカラプロジェクトです)を使ってfat jarを作成し、' spark-submit 'を使って実行します。私はr3.2xlargeサイズの10個のコアインスタンス、executor-memory 15G、driver-memory 40G、executorごとに2つのコアと 'num-executor 1600'を使用して糸クラスタモードで実行します(これはあまり良くありませんが、エグゼキュータの最大数によって上書きされるもの) –
EMRにはYARNに1つの問題があります。ノードごとに1つのエグゼキュータを起動します。私は正直であることをまだ調べていませんでした。しかし、AWS EMRのサポートチームは、私がそれらに連絡したときに私に言ったのです。私はそれが実際にリードかもしれないと思う。 20 r3.xlarge 10 r3.2x以上を起動する方が良いようです...クラスタで起こっていることをよりよく理解するためには、gangliaをプラグインする必要があります。 – eliasah