問題タブ [executors]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - Spark アプリケーションは 1 つのエグゼキュータのみを使用します
次のコードでアプリケーションを実行しています。3 つあるのに 1 つのエグゼキュータしか使用されていない理由がわかりません。範囲を広げようとすると、ジョブが失敗し、タスク マネージャがエグゼキュータを失います。要約すると、シャッフル書き込みの値が表示されますが、シャッフル読み取りは 0 です (おそらく、すべてのデータが 1 つのノードにあり、ジョブを完了するためにシャッフル読み取りが発生する必要がないためです)。
編集:エグゼキュータとドライバのメモリとコアを増やしました。また、executor の数を 4 から 1 に変更しました。これが役に立ったようです。各ノードでシャッフルの読み取り/書き込みが表示されるようになりました。
apache-spark - Apache Spark: エグゼキュータ インスタンスの設定
パラメータを使用して YARN で Spark アプリケーションを実行します。
spark-defaults.conf で:
yarn-site.xml で:
他のすべてのパラメータはデフォルトに設定されています。
6 ノードのクラスターがあり、Spark クライアント コンポーネントが各ノードにインストールされています。アプリケーションを実行するたびに、Spark UI に表示されるのは 2 つのエグゼキューターと 1 つのドライバーだけです。Executor はさまざまなノードに表示されます。
Spark がこれ以上エグゼキュータを作成できないのはなぜですか? なぜ6ではなく2しかないのですか?
非常によく似た質問を見つけました: Apache Spark: executor instances を設定しても executors は変更されませんが、 memoty-mb パラメータを増やしても私の場合は役に立ちませんでした。
apache-spark - YARN と Spark を使用してワーカーごとに複数のエグゼキューターを使用しますか?
私の会社では、古いマシンと新しいマシンの組み合わせを使用して、非常に異種の YARN + Spark クラスターをまとめました。個々のマシンの統計は大きく異なるため、より大きなマシンで複数のエグゼキュータを起動できるようにしたいと考えています。--num-executors
クラスタ内のマシン数よりも多い設定は機能しません。これを有効にするために変更する必要がある他の設定はありますか、それとも単に不可能ですか?
scala - spark/scala でコードの一部を複数のノードに分散
ファイルサイズは約10 GBです。データを抽出して複数のハイブ テーブルに挿入する必要があります。
単一のノードでいくつかの事前解析/マップ機能を使用して達成できます。
サンプルデータ :
これが私のコードです:
この rec1( Regex.MatchIterator) の後、データは次のようになります。
つまり、各部門のデータは独自の行になります。場合によっては、300k ~ 400k 行の間で変動することがあります。これをフォーマットしてデータフレームに変換するコードの次の部分を次に示します (この Df をハイブに挿入するコードはまだ作成していません。しかし、この pgm の最後にこれを記述できると思います。)
1) コードの 2 番目の部分を複数のエグゼキュータ ノードに分散するにはどうすればよいですか? 同時にデータも均等に分割して実行する必要があります。4 つのノード クラスターがあるように、各ノードは 100K 行を取得し、2 番目のコードを単独で実行する必要があります。しかし、最終的にはすべてが 1 つのハイブ テーブルにあるはずです。
multithreading - Java8 ForkJoinPool と Executors.newWorkStealingPool の詳細な違いは?
使用時の低レベルの違いは何ですか:
と
ここで、 Xは必要な並列処理のレベル、つまり実行中のスレッドです。
ドキュメントによると、私はそれらが似ていることがわかりました。また、通常の使用ではどちらがより適切で安全か教えてください. BufferedWriterに書き込む 1 億3000万のエントリがあり、Unix ソートを使用して 1 列目でソートします。
また、可能であれば保持するスレッドの数も教えてください。
注:私のシステムには8コアのプロセッサと32 GB の RAM があります。
spring-batch - Spring Batch と Executors フレームワーク
これら2つのフレームワークは同じ目的で使用されていますか? そうでない場合、これらがリアルタイム アプリケーションで使用される理由と方法は? これらを学ぶためのチュートリアルはありますか。
java - マージソートのマルチスレッド化
Merge Sort のマルチスレッド バージョンを作成しようとしていますが、そのためにエグゼキュータを使用しています (他に良い方法があれば教えてください)。2 つのスレッドを同時に実行したい。私はエグゼキューターを初めて使用し、いくつかのチュートリアルを見た後でもコーディングが難しいと感じています。もちろん、エグゼキュータ以外の並列化方法は大歓迎です。