как я могу запустить планировщик kafka, используя марафон в minimesos?

Я пытаюсь запустить планировщик инфраструктуры kafka-mesos с помощью контейнера докеров, как указано в https://github.com/mesos/kafka/tree/master/src/docker#running-image-in-marathon с использованием реализации Marathon, работающей в minimesos (мне бы хотелось чтобы добавить тег minimesos, но не иметь очков). Приложение зарегистрировано, и его можно увидеть в консоли Marathon, но оно остается в состоянии ожидания, а в графическом интерфейсе развертывания сообщается, что оно пытается масштабировать приложение.

Я пробовал искать файлы /var/log в контейнерах marathon и mesos-master, которые могли бы показать, почему это происходит. Сначала я подумал, что это может быть из-за того, что изображение не было загружено, поэтому я добавил "forcePullImage": true в конфигурацию приложения JSON, но оно все еще ждет. Я также изменил сеть с HOST на BRIDGE, исходя из предположения, что это согласуется с предостережениями minimesos на http://minimesos.readthedocs.org/en/latest/ .

В журнале mesos я вижу:
I0106 20:07:15.259790 15 master.cpp:4967] Sending 1 offers to framework 5e1508a8-0024-4626-9e0e-5c063f3c78a9-0000 (marathon) at [email protected]:39111
I0106 20:07:15.266100 9 master.cpp:3300] Processing DECLINE call for offers: [ 5e1508a8-0024-4626-9e0e-5c063f3c78a9-O77 ] for framework 5e1508a8-0024-4626-9e0e-5c063f3c78a9-0000 (marathon) at [email protected]:39111
I0106 20:07:15.266633 9 hierarchical.hpp:1103] Recovered ports(*):[33000-34000]; cpus(*):1; mem(*):1001; disk(*):13483 (total: ports(*):[33000-34000]; cpus(*):1; mem(*):1001; disk(*):13483, allocated: ) on slave 5e1508a8-0024-4626-9e0e-5c063f3c78a9-S0 from framework 5e1508a8-0024-4626-9e0e-5c063f3c78a9-0000
I0106 20:07:15.266770 9 hierarchical.hpp:1140] Framework 5e1508a8-0024-4626-9e0e-5c063f3c78a9-0000 filtered slave 5e1508a8-0024-4626-9e0e-5c063f3c78a9-S0 for 2mins
I0106 20:07:16.261010 11 hierarchical.hpp:1521] Filtered offer with ports(*):[33000-34000]; cpus(*):1; mem(*):1001; disk(*):13483 on slave 5e1508a8-0024-4626-9e0e-5c063f3c78a9-S0 for framework 5e1508a8-0024-4626-9e0e-5c063f3c78a9-0000
I0106 20:07:16.261245 11 hierarchical.hpp:1326] No resources available to allocate!
I0106 20:07:16.261335 11 hierarchical.hpp:1421] No inverse offers to send out!
но я не уверен, что это актуально, так как он не соотносится с настройками ресурсов в конфигурации приложения Kafka. Графический интерфейс показывает, что задачи не созданы.

У меня есть десять задач mesosphere/inky docker, которые выполняются вместе с попыткой развертывания Kafka. Это может быть проблема конфигурации, характерная для образа докера Kafka. Я просто не знаю, как лучше всего его отлаживать. Возможно, дело в повышении уровня лога в конфиг-файле. Это может быть переменная среды или сетевая настройка. Я копаюсь в этом и обновлю свой прогресс, но любые предложения будут оценены.

Благодарность!


person James Fremen    schedule 06.01.2016    source источник
comment
возможно, я должен добавить, что репозиторий Docker, используемый для образа mesos-kafka, является общедоступным. Образ был создан и отправлен в DockerHub в соответствии с инструкциями на странице github.com/mesos/kafka/tree/master/src/ .   -  person James Fremen    schedule 06.01.2016
comment
также есть командная строка docker для запуска kafka-mesos в соответствии с инструкциями: docker run -it -p 7000:7000 --add-host=master:192.168.99.100 batwicket/kafka-mesos ./kafka-mesos.sh scheduler --master=master:5050 --zk=master:2181 --api=http://<accessible-ip>:7000 --storage=zk:/kafka-mesos но получаю ошибку: 2016-01-06 20:40:33,448 [main-SendThread(master:2181)] WARN org.apache.zookeeper.ClientCnxn - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect Я считаю, что конфигурация zookeeper отличается для minimesos.   -  person James Fremen    schedule 06.01.2016
comment
Глядя на журнал mesos на мастере и фильтруя marathon, я вижу: Processing REVIVE call for framework 7e93533d-9b6a-46f9-ab08-1e771cb7327b-0000 (marathon) at [email protected]:50597 Sending 1 offers to framework 7e93533d-9b6a-46f9-ab08-1e771cb7327b-0000 (marathon) at [email protected]:50597 Processing DECLINE call for offers: [ 7e93533d-9b6a-46f9-ab08-1e771cb7327b-O9 ] for framework 7e93533d-9b6a-46f9-ab08-1e771cb7327b-0000 (marathon) at [email protected]:50597.   -  person James Fremen    schedule 07.01.2016
comment
docker logs <marathon container id> показывает: [2016-01-07 04:53:13,264] WARN Offer [7e93533d-9b6a-46f9-ab08-1e771cb7327b-O23]. Constraints for app [/kafka-mesos-scheduler] not satisfied. The conflicting constraints are: [field: "hostname" operator: LIKE value: "master" ] Имя хоста в предложении — 0f366bef3c2a, поэтому mesos-kafka, похоже, ожидает разрешения имени, которого нет в среде выполнения minimesos.   -  person James Fremen    schedule 07.01.2016
comment
похоже, это проблема с JSON-файлом kafka-mesos. Предлагаемый ресурс — это идентификатор, связанный с одним из рабов мезоса. Если я удалю строку ограничения в файле JSON, он запустится.   -  person James Fremen    schedule 07.01.2016
comment
К сожалению, вскоре после запуска планировщик выходит из строя, и в журнале Docker ведомого появляется сообщение TASK_FAILED. Больше никакой информации вроде нет. Я изменил команду на ./kafka-mesos.sh scheduler --master=192.168.99.100:5050 --zk=master:2181 --api=http://master:7000 --storage=zk:/kafka-mesos и использую сеть BRIDGE, исходя из возможно неверного предположения, что HOST не будет работать в minimesos.   -  person James Fremen    schedule 07.01.2016
comment
Подсказка может лежать в stdout/stderr песочницы, используемой для запуска планировщика kafka. К сожалению, я получаю сообщение об ошибке, когда пытаюсь получить доступ к песочнице из консоли mesos: Failed to connect to slave '7e93533d-9b6a-46f9-ab08-1e771cb7327b-S0' on '0f366bef3c2a:5051'. Potential reasons: The slave's hostname, '0f366bef3c2a', is not accessible from your network The slave's port, '5051', is not accessible from your network The slave timed out or went offline. Работа на завтра.   -  person James Fremen    schedule 07.01.2016
comment
Изменен JSON, чтобы удалить все упоминания о «модели»: "cmd": "./kafka-mesos.sh scheduler --master=192.168.99.100:5050 --zk=192.168.99.100:2181 --api=http://192.168.99.100:7000 --storage=zk:/kafka-mesos". Статус задачи по-прежнему обновляется до TASK_FAILED без какой-либо очевидной причины в журнале докера mesos-master.   -  person James Fremen    schedule 07.01.2016
comment
Глядя на https://github.com/ContainerSolutions/minimesos-docker/blob/master/master/Dockerfile, кажется, что единственной опцией, передаваемой mesos-slave, является --no-hostname_lookup. log_dir не указано, поэтому, согласно документам, записывается только stderr.   -  person James Fremen    schedule 07.01.2016
comment
при этом файлы stderr/stdout присутствуют на mesos-slave в /tmp/mesos/slaves/... Существует исключение Невозможно подключиться к серверу zookeeper в течение тайм-аута: 3, из-за которого исполнитель отправляет статус TASK_FAILED.   -  person James Fremen    schedule 07.01.2016
comment
подумал, что может отсутствовать переменная среды LIBPROCESS_IP, как указано в документации minimesos. Если я устанавливаю переменную для IP-адреса, возвращаемого docker-machine ip default, он говорит, что не удалось выполнить привязку к ‹ip-адресу›: 0: невозможно назначить запрошенный адрес. Если я установлю для переменной значение $(ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | head -n 1), попытка разобрать IP не удастся.   -  person James Fremen    schedule 07.01.2016
comment
Получил работу на playa mesos, вставив основной IP-адрес mesos в строку cmd в файле JSON. Как объяснялось выше, у minimesos с этим проблемы. Было бы неплохо заставить работать minimesos — быстрое решение Docker лучше всего подходит для TDD.   -  person James Fremen    schedule 08.01.2016


Ответы (2)


Спасибо, что попробовали это! Я занимаюсь этим, и вы можете следить за ходом решения этой проблемы по адресу https://github.com/ContainerSolutions/minimesos/issues/188 и https://github.com/mesos/kafka/issues/172

person Frank Scholten    schedule 11.01.2016
comment
Было бы здорово, если бы вы могли обновить этот ответ в какой-то момент в будущем, когда проблема будет решена. Просто для людей, которые находят этот вопрос на SO :) - person N3dst4; 11.01.2016
comment
подойдет.. Я думаю, это просто вопрос того, когда у них будет время реализовать эту функцию или найти/предложить, как правильно установить LIBPROCESS_IP. Проект minimesos, по сути, представляет собой оболочку поверх докера для запуска/остановки контейнеров master/slave/marathon/zookeeper в пакетном режиме. Вы можете сделать что-то подобное с medium.com/@gargar454/, если он заблокирован. - person James Fremen; 13.01.2016