Zookeeper - три узла и только ошибки

У меня есть три узла zookeeper. Все порты открыты. IP-адрес правильный. Ниже приведен файл конфигурации. Все узлы, где загружаются шеф-повар и все, имеют один и тот же файл установки и конфигурации.

# The number of milliseconds of each tick
tickTime=3000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/var/lib/zookeeper
# Place the dataLogDir to a separate physical disc for better performance
# dataLogDir=/disk2/zookeeper

# the port at which the clients will connect
clientPort=2181

server.1=111.111.111:2888:3888
server.2=111.111.112:2888:3888
server.3=111.111.113:2888:3888

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

2012-07-16 05:16:57,558 - INFO  [main:[email protected]] - Reading configuration from: /etc/zookeeper/conf/zoo.cfg
2012-07-16 05:16:57,567 - INFO  [main:[email protected]] - Defaulting to majority quorums
2012-07-16 05:16:57,572 - FATAL [main:[email protected]] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /etc/zookeeper/conf/zoo.cfg
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:110)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:99)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:76)
Caused by: java.lang.IllegalArgumentException: serverid replace this text with the cluster-unique zookeeper instance id (1-255) is not a number
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:333)
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:106)
    ... 2 more

Ответы

Ответ 1

Вам нужно создать файл с именем myid и поместить его в каталог zookeeper var, по одному для каждого сервера, состоящий из одной строки, содержащей только текст этого машинного идентификатора. Итак, myid сервера 1 будет содержать текст "1" и ничего больше. Идентификатор должен быть уникальным в ансамбле и должен иметь значение от 1 до 255.

подробнее см. http://zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.html#sc_zkMulitServerSetup

Ответ 2

server.1=111.111.111:2888:3888
server.2=111.111.112:2888:3888
server.3=111.111.113:2888:3888

Являются ли ваши серверы и IP-адреса

Затем создайте файл myid на каждом из узлов со значением 1 в 111.111.111 и 2 в 111.111.111.112 и 3 в 111.111.111.113 серверах по каталогу (dataDir =/var/lib/zookeeper)

Если вы разместите файл myid размером "1", вы получите исключение формата номера и "Неверная конфигурация, выходящая ненормально", если файл myid создается с любым расширением.

Поэтому просто создайте файл myid без расширения и поместите целочисленные значения 1,2,3 на соответствующие серверы без двойных кавычек