2014-10-29 2 views
1

Я установил storm-0.9.2 в кластер из 5 узлов. У меня простая топология с 1 носиком и различным количеством болтов (4, 9, 22, 31). Для каждой конфигурации я настроил (#bolts + 1) работников. Таким образом, для 4 болтов у меня 5 рабочих, 22 болта с 23 работниками и т. Д.Apache Storm Worker Process умирает

Я наблюдал за неудачными рабочими процессами в файлах рабочего журнала с соответствующим исключением EndOfStream в файле журнала zookeeper.out. Когда я получаю чистый тестовый прогон, количество кортежей, обработанных каждым болтом, равномерно распределяется на каждого работника. На нечистом тестовом прогоне рабочие, которые не пытались восстановить соединение, однако, поскольку количество кортежей ограничено, больше нет кортежей для обработки.

Каковы возможные причины смерти рабочего процесса?

Выписка из журнала zookeeper.out файла:

*2014-10-27 17:40:33,198 [myid:] - WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]] - caught end of stream exception 
EndOfStreamException: Unable to read additional data from client sessionid 0x1495431347c001e, likely client has closed socket 
     at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:228) 
     at org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:208) 
     at java.lang.Thread.run(Thread.java:744) 
2014-10-27 17:40:33,201 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]] - Closed socket connection for client /192.168.0.1:45693 which had sessionid 0x1495431347c001e* 

среда кластера:

  • Сторм 0.9.2
  • Zookeeper 3.4.6
  • Ubuntu 13,10
+0

Какова ваша версия JDK? – Chiron

+0

java-версия «1.7.0_55» Рабочая среда OpenJDK (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1 ~ 0.13.10.1) 64-разрядный сервер OpenJDK VM (сборка 24.51-b03, смешанный режим) –

+0

у вас есть почему? – freedev

ответ

0

Для меня это похоже на проблему с вами r Zookeeper. Существует несколько идей:

  • Конфигурация тайм-аута Zookeeper слишком мала.
  • У вашего экземпляра Zookeeper недостаточно детей (подчиненных) для обработки вашей рабочей нагрузки.

Для диагностики начинайте с увеличения времени ожидания по умолчанию для вашего экземпляра Zookeeper. Если он не работает, попробуйте расширить кластер Zookeeper.

Вы можете консолидировать документацию Zookeeper. Пожалуйста, сообщите нам, если это решит вашу проблему.

+1

Я увеличил tickTime до 4000 и initLimit до 10, и это не помогло. Затем я переконфигурировал кластер zookeeper из автономного дистрибутива с 3 серверами, также никаких изменений. С тех пор мы выделили проблему на вызов JNI на C-программу, которая выполняет фактическую обработку кортежей. Когда мы прокомментируем обращение JNI, рабочий процесс не умирает, и никаких исключений не сообщается. Благодаря! –

+0

@DennisIgnacio У меня есть аналогичная проблема, и я тоже использую jni. Не могли бы вы дать мне подсказку? Как ты это починил? – Dreamcooled