Можно подключиться к Mesos только из Spark на том же компьютере.

Я пытаюсь запустить Spark в кластере Mesos.

Когда я запускаю ./bin/spark-shell --master mesos://host:5050 с машины, на которой я запускаю мастер Mesos, все работает. Однако, если я запускаю ту же команду с другого компьютера, процесс заканчивается зависанием после попытки подключения:

I0825 07:30:10.184141 27380 sched.cpp:126] Version: 0.19.0
I0825 07:30:10.187476 27385 sched.cpp:222] New master detected at [email protected]:5050
I0825 07:30:10.187619 27385 sched.cpp:230] No credentials provided. Attempting to register without authentication

На мастере мезоса я вижу следующий вывод:

[...]
I0825 15:30:23.928402 23214 master.cpp:684] Giving framework 20140825-143817-4043352256-5050-23194-0002 0ns to failover
I0825 15:30:23.929033 23210 master.cpp:2849] Framework failover timeout, removing framework 20140825-143817-4043352256-5050-23194-0002
I0825 15:30:23.929095 23210 master.cpp:3344] Removing framework 20140825-143817-4043352256-5050-23194-0002
I0825 15:30:23.929687 23210 hierarchical_allocator_process.hpp:636] Recovered mem(*):512 (total allocatable: cpus(*):4; mem(*):6831; disk(*):455983; ports(*):[31000-32000]) on slave 20140822-144404-4043352256-5050-15999-31 from framework 20140825-143817-4043352256-5050-23194-0002
I0825 15:30:23.935073 23210 hierarchical_allocator_process.hpp:636] Recovered mem(*):512 (total allocatable: cpus(*):4; mem(*):15001; disk(*):917264; ports(*):[31000-32000]) on slave 20140822-144404-4043352256-5050-15999-29 from framework   20140825-143817-4043352256-5050-23194-0002
I0825 15:30:23.938248 23210 hierarchical_allocator_process.hpp:636] Recovered mem(*):512 (total allocatable: mem(*):6823; disk(*):455991; ports(*):[31000-32000]; cpus(*):4) on slave 20140822-144404-4043352256-5050-15999-32 from framework 20140825-143817-4043352256-5050-23194-0002
I0825 15:30:23.938356 23210 hierarchical_allocator_process.hpp:636] Recovered mem(*):512 (total allocatable: mem(*):4939; disk(*):457873; ports(*):[31000-32000]; cpus(*):4) on slave 20140822-144404-4043352256-5050-15999-28 from framework 20140825-143817-4043352256-5050-23194-0002
I0825 15:30:23.938397 23210 hierarchical_allocator_process.hpp:362] Removed framework 20140825-143817-4043352256-5050-23194-0002
I0825 15:30:27.952940 23215 http.cpp:452] HTTP request for '/master/state.json'
W0825 15:30:29.595441 23208 master.cpp:2718] Ignoring unknown exited executor 20140822-144404-4043352256-5050-15999-32 on slave 20140822-144404-4043352256-5050-15999-32 at slave(1)@192.168.0.233:5051 (cluster2)
W0825 15:30:29.596709 23213 master.cpp:2718] Ignoring unknown exited executor 20140822-144404-4043352256-5050-15999-29 on slave 20140822-144404-4043352256-5050-15999-29 at slave(1)@192.168.0.241:5051 (cluster4)
W0825 15:30:29.615630 23213 master.cpp:2718] Ignoring unknown exited executor 20140822-144404-4043352256-5050-15999-31 on slave 20140822-144404-4043352256-5050-15999-31 at slave(1)@192.168.0.213:5051 (cluster3)
W0825 15:30:29.935130 23214 master.cpp:2718] Ignoring unknown exited executor 20140822-144404-4043352256-5050-15999-28 on slave 20140822-144404-4043352256-5050-15999-28 at slave(1)@192.168.0.212:5051 (cluster1)

Где как выход рабов

[...]
I0825 15:30:08.450343   980 slave.cpp:1337] Asked to shut down framework 20140825-143817-4043352256-5050-23194-0002 by [email protected]:5050
I0825 15:30:08.455153   980 slave.cpp:1362] Shutting down framework 20140825-143817-4043352256-5050-23194-0002
I0825 15:30:08.455401   980 slave.cpp:2698] Shutting down executor '20140822-144404-4043352256-5050-15999-31' of framework 20140825-143817-4043352256-5050-23194-0002
I0825 15:30:13.456045   982 slave.cpp:2768] Killing executor '20140822-144404-4043352256-5050-15999-31' of framework 20140825-143817-4043352256-5050-23194-0002
I0825 15:30:13.456217   982 mesos_containerizer.cpp:992] Destroying container '37cc2b09-0e6d-4738-a837-7956367bba2b'
I0825 15:30:14.134845   977 mesos_containerizer.cpp:1108] Executor for container '37cc2b09-0e6d-4738-a837-7956367bba2b' has exited
I0825 15:30:14.135220   978 slave.cpp:2413] Executor '20140822-144404-4043352256-5050-15999-31' of framework 20140825-143817-4043352256-5050-23194-0002 has terminated with signal Killed
I0825 15:30:14.135356   978 slave.cpp:2552] Cleaning up executor '20140822-144404-4043352256-5050-15999-31' of framework 20140825-143817-4043352256-5050-23194-0002
I0825 15:30:14.135499   978 slave.cpp:2627] Cleaning up framework 20140825-143817-4043352256-5050-23194-0002
I0825 15:30:14.135627   976 status_update_manager.cpp:282] Closing status update streams for framework 20140825-143817-4043352256-5050-23194-0002
I0825 15:30:14.135571   975 gc.cpp:56] Scheduling '/tmp/mesos/slaves/20140822-144404-4043352256-5050-15999-31/frameworks/20140825-143817-4043352256-5050-23194-0002/executors/20140822-144404-4043352256-5050-15999-31/runs/37cc2b09-0e6d-4738-a837-7956367bba2b' for gc 6.99999843242074days in the future
I0825 15:30:14.135910   975 gc.cpp:56] Scheduling '/tmp/mesos/slaves/20140822-144404-4043352256-5050-15999-31/frameworks/20140825-143817-4043352256-5050-23194-0002/executors/20140822-144404-4043352256-5050-15999-31' for gc 6.99999843187556days in the future
I0825 15:30:14.135980   975 gc.cpp:56] Scheduling '/tmp/mesos/slaves/20140822-144404-4043352256-5050-15999-31/frameworks/20140825-143817-4043352256-5050-23194-0002' for gc 6.99999843111111days in the future
I0825 15:31:04.450660   978 slave.cpp:2873] Current usage 60.67%. Max allowed age: 2.053113079446458days

Кто-нибудь видел что-нибудь подобное?


person arnfred    schedule 25.08.2014    source источник
comment
Можете ли вы дать более подробную информацию о вашей машине и конфигурации сети? mesos-master и mesos-slave работают на одном компьютере? Доступен ли порт 5050 на главной машине с машины, на которой вы пытаетесь запустить Spark? Если вы используете несколько мастеров, вам понадобится ZooKeeper.   -  person Ross Allen    schedule 01.09.2014
comment
У меня сейчас такая же проблема, тестирование на локальных виртуальных машинах. Я могу подключиться по телнету к порту 5050 mesos-master с другого компьютера. У меня только один mesos-master и zookeeper работают на одном экземпляре. mesos-slave работает на другой виртуальной машине.   -  person danielfrg    schedule 02.09.2014
comment
Я только что протестировал перенос всего в EC2, и он работал нормально, поэтому я предполагаю, что это проблема с локальной сетью виртуальных машин. Это странно, потому что я могу подключиться к ним по телнету через порт 5050.   -  person danielfrg    schedule 02.09.2014


Ответы (1)


Проблема оказалась вызвана не проблемами сетевого подключения, а политикой восстановления ведомых устройств Mesos, как описано здесь: http://mesos.apache.org/documentation/latest/slave-recovery/

Сначала я подключал ведомые устройства к ведущему и отключал их из-за не связанной с этим проблемы, однако, когда я позже попытался снова подключить ведомые устройства, мастер их отбрасывал. Чтобы процитировать документацию, указанную выше:

Перезапущенный ведомый должен повторно зарегистрироваться у ведущего в течение тайм-аута (в настоящее время 75 с). Если для повторной регистрации ведомому устройству требуется больше времени, чем это время ожидания, ведущее устройство выключает ведомое устройство, которое, в свою очередь, выключает все активные исполнители/задачи. Поэтому настоятельно рекомендуется автоматизировать процесс перезапуска подчиненного устройства (например, с помощью monit).

Я решил проблему, подключив ведомые устройства с параметром --strict, установленным на false.

person arnfred    schedule 23.09.2014