2015-05-14 2 views
0

Этот вопрос относится к XD 1.1.2.RELEASE. Я новичок в XD, поэтому, пожалуйста, простите, если это немой вопрос.Является ли Zookeeper необходимым для XD Single Node?

В документации говорится только, что XD не поставляется с Zookeeper, и я принял это, чтобы это было необходимо, только когда я готов пойти на несколько узлов.

Это говорит о том, что при попытке развертывания потока возникает нежелательное поведение: 1. Каждый раз, когда я добавляю поток, он не является постоянным при перезагрузке XD. 2. Настройка потока отключена. В режиме отладки он застрял в ModuleDeploymentWriter весной-грязи. Если я правильно читаю этот класс, похоже, он пишет файл, который должен читать Zookeeper, а затем тайм-аут, когда ответ так и не был получен.

Сначала я подумал, что это было мое обычное соединение Cassandra XD, которое было отключено, но, похоже, этот код никогда не был достигнут в первую очередь.

Любая помощь оценена!

ответ

1

В документации говорится только, что XD не поставляется с Zookeeper, и я принял это, чтобы это было необходимо, только когда я готов пойти на несколько узлов.

Это верно. Но в XD-узле используется встроенный ZooKeeper.

  1. Каждый раз, когда я добавить поток, он не является постоянным в XD перезагружается.

Вы используете однополосный или распределенный режим? Если вы используете singlelenode, каждый раз, когда XD перезагружается, он использует другой экземпляр ZooKeeper. Следовательно, в singlelenode вы не можете получить потоки, которые сохраняются между перезагрузкой сервера. Вы все же можете переопределить эту функциональность, предоставив внешнюю конфигурацию ZK для одного узла, установив zk.client.connect в servers.yml.

  1. Настройка потока отключена.

Некоторые сообщения журнала или трассировка стека могут помочь выяснить, что здесь происходит. Если вы используете одноузловой узел, ModuleDeploymentWriter должен написать развертывание в контейнер, который работает на той же JVM.

В случае, если вы работаете в режиме отладки, например, упомянутый @dturanski, вы можете попробовать увеличить свойство timeout развертывания xd.admin.deploymentTimeout в servers.yml. Значение по умолчанию - 30 секунд.

+0

Я увеличил тайм-аут до 3000, и все же это время. Мне жаль, что не было никаких полезных сообщений журнала или трассировки стека, но я ничего не получаю здесь. Я работаю в одномодовом режиме.Похоже, возможно, я должен запустить Zk в любом случае, но пока что я озадачен тем, чего ждет писатель потока модуля. –

+0

Хмм, в какой строке застрял модуль ModuleDeploymentWriter? –

+0

Он застрял на 471, в wait(). Непосредственная причина, по которой он застрял, заключается в том, что addResult() не вызывается вовремя для таймаута. Сумасшедшая вещь, однако, что в конечном итоге addResult _is_ называется. Чем дольше я устанавливаю свой тайм-аут, тем больше времени требуется для копирования addResult. У меня теперь установлен тайм-аут развертывания потока примерно на час, и это просто замедляет процесс. Там должно быть что-то еще, что мне не хватает, я отрываю свои волосы отсюда. В конце концов я установил Zk, и он работает нормально. –

0

Вам не нужен внешний Zookeeper для работы в singlenode, так как он запускает встроенный сервер. Это сохраняет состояние в памяти, поэтому вы теряете состояние между перезапусками. Однако вы можете настроить его для подключения к внешнему ансамблю Zookeeper.

Если «debug modue» относится к запуску SingleNodeApplication с отладчиком, то да, это может быть тайм-аут, если вы установите точку останова.

+0

Нет, он не застрял на контрольной точке. –

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