2016-06-30 18 views
0

Sparkのタスクの実行は、Yarnスケジューラを使用するとメモリ中心のようです。タスクのメモリが少ないノードに収まることがわかると、使用可能なすべてのノードを使用してそれらのタスクを実行する必要はありません。エグゼクティブ/コンテナのメモリを増やすことによってそれを欺くことなく、すべてのノードを使用するようヤーンに頼むことができる方法はありますか?スパーク(糸を使って)を使ってすべてのノードを使う方法を教えてください。

+1

を検討する必要があります –

答えて

1

仕事の配分を増やす要因の1つは、「mapreduce.input.fileinputformat.split.maxsize」です。より多くのタスク(1つのエグゼキュータが複数のタスクを持つ)を望む場合は、これを減らしてください。タスクが必要かどうか(メモリ/ CPU /ディスク)に基づいてバランスを取る必要があるかもしれません。

上記の要因は、入力ファイルが分割可能な場合にのみ機能します。分割可能ファイルの例には、非圧縮テキスト(csv/tsv)、圧縮/非圧縮シーケンス、圧縮/非圧縮orc/rc /パーケットファイルがあります。

また、あなたは `--num-執行N 'ここで、n、あなたのアプリケーションで使用するノードの数であるARG`火花submit`に渡してみましたspark dynamic allocation

関連する問題