2015-10-17 4 views
1

Я собираюсь создать кластер kafka на apache mesos. Следуйте инструкциям на kafka-mesos on github. Я установил кластер mesos (используя Mesosphere без марафона) с 3 узлами, каждый с двумя процессорами и 4 ГБ памяти. Я успешно проверил кластер с примерами hello world.Задача памяти Mesos Kafka не удалось

Я могу запустить планировщик kafka-mesos и добавить к нему брокеров. Но когда я хочу запустить брокера, появляется лимит памяти.

broker-191-.... TASK_FAILED slave:#c3-S1 reason:REASON_MEMORY_LIMIT 

Хотя, кластер имеет память 12 ГБ, но брокер просто нуждается в 3 ГБ памяти с кучей 1 ГБ. (Я тестирую его с различной конфигурацией от 512 М до 3 ГБ, но не работал)

В чем проблема? и какое решение?

полная история здесь:

2015-10-17 17:39:24,748 [Jetty-17] INFO ly.stealth.mesos.kafka.HttpServer$ - handling - http://192.168.11.191:7000/api/broker/start 
2015-10-17 17:39:28,202 [Thread-605] INFO ly.stealth.mesos.kafka.Scheduler$ - [resourceOffers] 
mesos-2#O1160 cpus:2.00 mem:4098.00 disk:9869.00 ports:[31000..32000] 
mesos-3#O1161 cpus:2.00 mem:4098.00 disk:9869.00 ports:[31000..32000] 
mesos-1#O1162 cpus:2.00 mem:4098.00 disk:9869.00 ports:[31000..32000] 
2015-10-17 17:39:28,204 [Thread-605] INFO ly.stealth.mesos.kafka.Scheduler$ - Starting broker 191: launching task broker-191-0abe9e57-b0fb-4d87-a1b4-529acb111940 by offer mesos-2#O1160 
broker-191-0abe9e57-b0fb-4d87-a1b4-529acb111940 slave:#c6-S3 cpus:1.00 mem:3096.00 ports:[31000..31000] data:defaults=broker.id\=191\,log.dirs\=kafka-logs\,port\=31000\,zookeeper.connect\=192.168.11.191:2181\\\,192.168.11.192:2181\\\,192.168.11.193:2181\,host.name\=mesos-2\,log.retention.bytes\=10737418240,broker={"stickiness" : {"period" : "10m"\, "stopTime" : "2015-10-17 13:43:29.278"}\, "id" : "191"\, "mem" : 3096\, "cpus" : 1.0\, "heap" : 1024\, "failover" : {"delay" : "1m"\, "maxDelay" : "10m"}\, "active" : true} 
2015-10-17 17:39:28,417 [Thread-606] INFO ly.stealth.mesos.kafka.Scheduler$ - [statusUpdate] broker-191-0abe9e57-b0fb-4d87-a1b4-529acb111940 TASK_FAILED slave:#c6-S3 reason:REASON_MEMORY_LIMIT 
2015-10-17 17:39:28,418 [Thread-606] INFO ly.stealth.mesos.kafka.Scheduler$ - Broker 191 failed 1, waiting 1m, next start ~ 2015-10-17 17:40:28+03 
2015-10-17 17:39:29,202 [Thread-607] INFO ly.stealth.mesos.kafka.Scheduler$ - [resourceOffers] 

Я нашел следующее в главном журнале Mesos:

...validation.cpp:422] Executor broker-191-... for task broker-191-... uses less CPUs (None) than the minimum required (0.01). Please update your executor, as this will be mandatory in future releases. 
...validation.cpp:434] Executor broker-191-... for task broker-191-... uses less memory (None) than the minimum required (32MB). Please update your executor, as this will be mandatory in future releases. 

но я установить процессор и MEM для брокеров через брокера оных (обновление):

broker updated: 
id: 191 
active: false 
state: stopped 
resources: cpus:1.00, mem:2048, heap:1024, port:auto 
failover: delay:1m, max-delay:10m 
stickiness: period:10m, expires:2015-10-19 11:15:53+03 
+0

REASON_MEMORY_LIMIT не обязательно означает, что задача была убита из-за OOM. Можете ли вы, пожалуйста, приложить stderr исполнителя? – serejja

+0

Я изменяю 'user = vagrant' в' kafka-mesos.properties' '' user = root' и перезапускает мезо, что заставляет проблему решить проблему. –

ответ

2

Исполнитель не получает настройки кучи только брокера. Я открыл вопрос для этого https://github.com/mesos/kafka/issues/137. Увеличьте память до тех пор, пока не появится патч.

Это не проблема, я подозреваю, потому что mem получает большее значение (размер вашего набора данных, который вы не хотите удалять с диска при чтении), поэтому есть кеш страницы для максимальной эффективности http://kafka.apache.org/documentation.html#maximizingefficiency

Смежные вопросы