0

DC/OS Spark-Kafka-Cassandra クラスターを 1 つのマスターと 3 つのプライベート AWS m3.xlarge インスタンス (それぞれに 4 つのプロセッサ、15GB RAM を搭載) を使用して設定しようとしています。

数日前に行ったスパイクで発生した奇妙な動作について質問があります。

各プライベートノードで、次の固定リソースを予約しています(CPU使用率について話しますが、メモリは問題ではありません)

  • 各ノードの Cassandra 用に 0.5 CPU
  • 各ノードに 1 つの Kafka 用の 0.3 - 0.5 CPU
  • 0.5 CPU は Mesos オーバーヘッドです (DC/OS UI で、ノードで実行されているすべてのサービスの合計よりも 0.5CPU 多く占有されていることがわかります -> これはおそらくある種の Mesos オーバーヘッドに属します)
  • Spark ジョブの実行に使用できる残りのリソース (約 2.5 CPU)

ここで、クラスターのすべてのノードで実行されるように、2 つのストリーミング ジョブを実行したいと考えています。これには、dcos spark runコマンドで、executor の数が 3 (クラスターに 3 つのノードがありますが) であり、CPU コアの数が 3 であることを設定する必要があります (これまでのところ、1 または 2 を設定することは不可能です)。 Executor あたりの最小 CPU 数は 1 です)。もちろん、ストリーミング ジョブごとに、クラスター内の 1 つの CPU がドライバー プログラムによって占有されます。

私が目にする最初の奇妙な状況は、それぞれ 1 つのコアで 3 つのエグゼキューターを実行する代わりに、Mesos が 2 つのノードで 2 つのエグゼキューターを起動し、一方には 2 つの CPU があり、もう一方には 1 つの CPU があることです。十分なリソースがあるにもかかわらず、3 番目のノードで何も起動されません。Mesos にクラスターで 3 つのエグゼキューターを強制的に実行させる方法は?

また、3 つの CPU で 1 つのパイプラインを実行すると、それらの CPU がブロックされており、ワークロードを実行していないにもかかわらず、他のストリーミング パイプラインで再利用できないことがわかります。Mesos が利用可能なリソースをアプリケーション間でシフトできないのはなぜですか? それが Mesos を使用する主な利点ではないでしょうか? それとも、単純に移行するリソースが不足しているのでしょうか?

編集済み

また、Executor ごとに 1 つ未満の CPU を割り当てることはできますか?

よろしくお願いします。

スルジャン

4

0 に答える 0