2016-04-14 10 views
0

私は、合計12個のコアと44 GBのメモリを持つ3ノードの小規模クラスタを持っています。私はhdfs(5メガバイト)から小さなテキストファイルを読み込み、kmeansアルゴリズムを実行しています。エグゼキュータの数を3に設定し、テキストファイルを3つのパーティションに分割しました。アプリケーションUIは、エグゼキュータの1人だけがすべてのタスクを実行していることを示しています。ここで は、アプリケーションのGUI enter image description here のスクリーンショットであり、ここでジョブズUIです: enter image description here 誰か他の人がアイドル状態になっている間、私のタスクはすべて1つのエグゼキュータで実行されている理由は、私が把握助けることができますか?ありがとう。スパーク・スタンドアロン・クラスタ、1つのエグゼキュータ上で実行中のジョブ

+0

このような重いソフトウェアスタックを、それほど大きなデータや小さなクラスタに使用していないのはなぜですか? –

+0

スパークコードがデータの小さなサブセットで正しく実行されているかどうかを確認し、それを大きなデータで実行したいのです。 –

+0

私は研究のためにkmeansのバリエーションを実際に実行しています。私はちょうど私のスパークコードがデータの小さなサブセットで正しく動作しているかどうかを調べ、それをより大きなデータで実行したいのです。なぜ私のアプリケーションが非常に多くの仕事を生み出しているのか理解できませんでした。しかし、今私はそれについてもっと考えると、私のアルゴリズムは収束しないので、スパークが非常に多くの小さな仕事を生み出すと思います。ジョブが小さすぎるため、1つのエグゼキュータでのみジョブを実行しています。ご協力ありがとうございました。 –

答えて

1

ファイルを12個のパーティションに再分割しようとします。 3つのパーティションがあり、各ノードに4つのコアがある場合は、1つのノードですべてのタスクを実行するだけで十分です。 Sparkは、1つのコアに1つのパーティションとして作業を大まかに分割します。

関連する問題