Mam tylko jedną maszynę i chcę uruchamiać zadania iskrzenia w trybie klastra mezos. Być może sensownym rozwiązaniem byłoby uruchamianie klastra węzłów, ale przede wszystkim chcę przetestować mezony w pierwszej kolejności, aby sprawdzić, czy jest on w stanie wydajniej wykorzystywać zasoby (uruchamiać wiele zadań iskier w tym samym czasie bez partycjonowania statycznego). Próbowałem na wiele sposobów, ale bez powodzenia. Oto co zrobiłem:Tryb klastra Spark Mesos przy użyciu Dispatchera
Buduj mezony i uruchamiaj zarówno mezos master, jak i slaves (2 slave na tych samych maszynach).
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
Uruchom zapłonie meso-dyspozytorskie
sudo ./sbin/start-mesos-dispatcher.sh --master mesos://localhost:5050
submit aplikację z dyspozytorem jako master URL.
spark-submit --master mesos://localhost:7077 <other-config> <jar file>
Ale to nie robi praca:
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]
Jeśli używam zapłonie złożyć klaster --deploy-mode, potem mam inny komunikat o błędzie:
Exception in thread "main" org.apache.spark.deploy.rest.SubmitRestConnectionException: Unable to connect to server
It działa doskonale, jeśli nie korzystam z usług dyspozytora, ale bezpośrednio z adresu URL mesos master: --master mesos: // localhost: 5050 (tryb klienta). Zgodnie z documentation tryb klastra nie jest obsługiwany dla klastrów Mesos, ale daje inną instrukcję dla trybu klastra here. Czyli jest to trochę mylące? Moje pytanie brzmi:
- Jak mogę to uruchomić?
- Czy powinienem użyć trybu klienta zamiast trybu klastra, jeśli chcę przesłać aplikację/jar bezpośrednio z głównego węzła?
- Jeśli mam jeden komputer, powinienem odrodzić 1 lub więcej procesów slave. Zasadniczo mam pewną liczbę iskier i nie chcę robić statycznego podziału zasobów. Ale kiedy używasz mesów bez statycznego partycjonowania, wydaje się, że jest on znacznie wolniejszy?
Dzięki.