1.Spark-送信パラメータを送信します
パラメータ名 | パラメータ値 |
---|---|
-主人 | spark:// host:port; mesos:// host:port、yarn; yarn-cluster、yarn-clint; local |
–deploy-mode | ドライバープログラムが実行される場所、クライアントまたはクラスター、デフォルトはクライアントです |
-クラス | メインクラス名 |
–jars | Commaは、ローカルjar、ドライバーとエグゼキューターが依存するサードパーティパッケージを分離します |
–ファイル | ファイルのコンマ区切りのリストは、各エグゼキュータの作業ディレクトリに配置されます |
–conf | Spark構成プロパティ |
–driver-memory | ドライバプログラムはメモリサイズ(例:520M、2G)を使用し、デフォルトは1024Mです。 |
–executor-memory | 各エグゼキュータのメモリサイズ(例:2G)、デフォルトは1G |
–ドライバーコア | ドライバープログラムはコア数(デフォルトは1)を使用しますが、これはsparkスタンドアロンのクラスターモードに制限されています。 |
–監督 | 障害後にドライバーを再起動するかどうか。SparkスタンドアロンまたはMesosのクラスターに限定 |
–total-executor-colors | エグゼキュータが使用するコアの総数は、SparkStandaloneおよびSpark onMesosモードに制限されています |
–エグゼクティブカラー | 各エグゼキュータが使用するコアの数、スパークオンヤーンのデフォルトは1、スタンドアロンのデフォルトはワーカーで使用可能なすべてのコアです。 |
毛糸のみ | |
–ドライバーコア | ドライバーが使用するコアはクラスターモードのみで、デフォルトは1です。 |
-キュー | リソースキューの名前を指定します。デフォルト:デフォルト |
–num-executors | 開始された実行者の総数。デフォルトでは2人です。 |
2.リソーススケジューリングのソースコード分析
2.1リソースリクエストの簡単な図
- ./start-all.shを実行して、クラスターを開始します。
- マスターノードが開始されると、sshを介してワーカーノードと通信します。
- ワーカーノードは逆にマスターノードに登録されます。
- マスターノードは、ワーカーノードの情報を
HashSet[WorkerInfo]
タイプのworkers
コレクションにカプセル化します。 spark-submit
ミッションコマンドを介してクライアント。- マスターノードからドライバーを起動するように要求します。
- マスターノードは
ArrBuffer[DriverInfo]
タイプをカプセル化しますwaitingDriver
(ドライバーは実行を待機しています)。 - マスターノードは、ドライバーを起動するノードを選択します。
- ドライバーは、現在のアプリケーションのリソースをマスターに適用します。
- マスターノードは、アプリケーションリソースをドライバーにカプセル化します。
- ドライバーは、実行のためにタスクをワーカーノードに送信します。
2.2リソーススケジューリングマスターパス
CLASS="org.apache.spark.deploy.master.Master"
2.3申請書の提出、パスの提出
org.apache.spark.deploy.SparkSubmit
2.4まとめ
- Executorは、クラスター内で分散して開始されます。これは、タスク計算データのローカリゼーションに役立ちます。
- デフォルトでは(タスクの送信時に
--executor-cores
オプションは設定されていません)、各ワーカーは現在のアプリケーションのエグゼキューターを開始します。このエグゼキュータは、このワーカーのすべてのコアと1Gメモリを使用します。 - ワーカーで複数のエグゼキュータを起動する場合は、アプリケーションを送信するときに
--executor-cores
このオプションを追加する必要があります。 - デフォルト
--total-executor-cores
では設定はありません。アプリケーションはSparkクラスター内のすべてのコアを使用します。
2.5結論のプレゼンテーション
Spark-submitを使用して、タスクのデモンストレーションを送信します。
-
デフォルトでは、各ワーカーは現在のアプリケーションのエグゼキュータを起動します。このExecutorは、クラスター内のすべてのコアと1Gメモリを使用します。
./spark-submit --master spark://masterNode:7077 --class org.apache.spark.examples.SparkPi ../lib/spark-exeamples-1.6.0-hadoop2.6.0.jar 1000
-
ワーカーで複数のエグゼ
--executor-cores
キュータを起動し、エグゼキュータが使用するコアの数を指定するパラメータを設定します。./spark-submit --master spark://masterNode:7077 --executor-cores 1 --class org.apache.spark.examples.SparkPi ../lib/spark-exeamples-1.6.0-hadoop2.6.0.jar 1000
-
コアはメモリ不足で起動します。Sparkが起動すると、コア構成パラメーターだけでなく、構成されたコアメモリが十分であるかどうかも示されます。
./spark-submit --master spark://masterNode:7077 --executor-cores 1 --executor-memory 3g --class org.apache.spark.examples.SparkPi ../lib/spark-exeamples-1.6.0-hadoop2.6.0.jar 1000
-
--total-executor-cores
クラスターで使用されているコアの数。注:クラスター内の複数のノードでプロセスを開始することはできません。
./spark-submit --master spark://masterNode:7077 --executor-cores 1 --executor-memory 3g --total-executor-cores 3 --class org.apache.spark.examples.SparkPi ../lib/spark-exeamples-1.6.0-hadoop2.6.0.jar 1000