私は1台のマシンしか持っておらず、メソス・クラスタ・モードでスパーク・ジョブを実行したい。ノードのクラスタで実行する方が意味があるかもしれませんが、主に、静的分割を行わずに同時に複数のスパークジョブを実行することで、リソースをより効率的に利用できるかどうかを確認するために、まずメスをテストします。私はいくつかの方法を試みましたが、成功しませんでした。ここでは、私がやったことです:ディスパッチャを使用したスパーク・メゾ・クラスタ・モード
は(同じマシンで2人の奴隷)mesosを構築し、mesosのマスターとスレーブの両方を実行します。
sudo ./bin/mesos-master.sh --ip=127.0.0.1 --work_dir=/var/lib/mesos sudo ./bin/mesos-slave.sh --master=127.0.0.1:5050 --port=5051 --work_dir=/tmp/mesos1 sudo ./bin/mesos-slave.sh --master=127.0.0.1:5050 --port=5052 --work_dir=/tmp/mesos2
ラン火花mesos-ディスパッチャ
sudo ./sbin/start-mesos-dispatcher.sh --master mesos://localhost:5050
マスターURLとしてディスパッチャでアプリを提出します。
spark-submit --master mesos://localhost:7077 <other-config> <jar file>
しかし、それは仕事をdoesntの:
E0925 17:30:30.158846 807608320 socket.hpp:174] Shutdown failed on fd=61: Socket is not connected [57]
E0925 17:30:30.159545 807608320 socket.hpp:174] Shutdown failed on fd=62: Socket is not connected [57]
私は火花提出--deployモードのクラスタを使用する場合、私は別のエラーメッセージました:それは
Exception in thread "main" org.apache.spark.deploy.rest.SubmitRestConnectionException: Unable to connect to server
をディスパッチャーを使用せずに直接mesosマスターURLを使用すると、完全に動作します:--master mesos:// localhost:5050(クライアントモード)。 documentationによれば、クラスタモードはMesosクラスタではサポートされていませんが、クラスタモードの別の命令はhereです。それは混乱の種ですか?私の質問は次のとおりです:
- 私はそれをどのように動かすことができますか?
- マスターノードからapp/jarを直接送信すると、クラスタモードではなくクライアントモードを使用する必要がありますか?
- 私は1台のコンピュータを持っている場合、私は1つ以上のmesosスレーブプロセスを生成する必要があります。基本的に、私はsparkの仕事の数があり、リソースの静的なパーティショニングをしたくありません。しかし、静的パーティショニングなしでメソスを使用すると、はるかに遅いようですか?
ありがとうございました。