Я использую zookeeper 3.4.8 в одном узле и пытаюсь использовать kafka.

Когда я запускаю эту команду:

zookeeper-server-start.sh /usr/local/kafka_2.9.2-0.8.2.2    /config/zookeeper.properties

Я получаю следующую ошибку:

[2016-02-22 17:32:41,661] ERROR Unexpected exception, exiting abnormally (org.apache.zookeeper.server.ZooKeeperServerMain)
java.io.IOException: Unable to create data directory /var/zookeeper/version-2
    at org.apache.zookeeper.server.persistence.FileTxnSnapLog.<init>(FileTxnSnapLog.java:85)
    at org.apache.zookeeper.server.ZooKeeperServerMain.runFromConfig(ZooKeeperServerMain.java:104)
    at org.apache.zookeeper.server.ZooKeeperServerMain.initializeAndRun(ZooKeeperServerMain.java:86)
    at org.apache.zookeeper.server.ZooKeeperServerMain.main(ZooKeeperServerMain.java:52)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:116)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)

Любой совет?

7
RookieSpark 22 Фев 2016 в 22:01

11 ответов

Лучший ответ

Одной из причин может быть неправильный путь к файлу zoo.config. Многие решения в Интернете указывают путь как ": \ zookeeper-3.4.7 \ data".

Вместо указанного выше формата укажите адрес как полный путь от диска C: до папки данных. У меня это сработало. (Не забудьте поставить двойную косую черту \ вместо одной, если вы работаете в Windows)

28
Anshul Dahiya 5 Дек 2018 в 06:22

Для Windows установите для dataDir полный путь, если у вас нет ограничений доступа - без кавычек ("")

dataDir=C:\\your-path\
dataDir=C:\\zk\tmp\

Примечание: я заметил, что команда не работает для некоторых путей (хотя и с полным доступом) и запускается командная строка, поскольку администратор решил ее.

0
Jaison 14 Фев 2020 в 02:28

Для окон тоже работает следующее:

dataDir=C:\\zookeeper-3.4.14\\zookeeper-3.4.14\\data
0
Tiw 13 Апр 2019 в 12:45

В моей системе Windows 10 с использованием zookeeper 3.4.13 работает следующий примерный путь:

"dataDir = C: \ dev \ tools \ zookeeper-3.4.13 \ data"

Вы должны использовать двойную обратную косую черту.

0
David 29 Ноя 2018 в 13:45

И в моей системе Windows 10 с использованием zookeeper 3.4.10. атрибут dataDir должен быть установлен как :\\\\zookeeper\\\\data, а не d:\zookeeper\data. его также можно установить как разделитель файловой системы Linux (d:/zookeeper/data). тогда эта проблема должна быть в порядке. А в linux, я думаю, это проблема с разрешением. также это может возникнуть, когда dataDir находится под драйвером C в системе Windows.

0
DIF 13 Мар 2018 в 13:21

У меня проблема с этой настройкой на ПК с Windows:

dataDir=c:/data/zoo/

И, следовательно, эта ошибка:

2016-12-02 15:29:25,327 [myid:] - ERROR [main:ZooKeeperServerMain@64] - Unexpected exception, exiting abnormally
java.io.IOException: Unable to create data directory ??:\data\zoo\version-2

Проблема решилась заменой (у меня ZooKeeper на диске C распакован)

dataDir=/data/zoo/

Также при необходимости запустите инструмент командной строки от имени администратора.

6
alex.b 2 Дек 2016 в 13:35

На zoo.cfg вам нужно сменить каталог на указанный выше или что-то подобное:

dataDir=C:/zookeeper-3.4.14/zookeeper-3.4.14/data
0
ranifisch 27 Ноя 2019 в 00:17

Причина в том, что у zookeeper нет разрешения. Пытаюсь использовать роль администратора для его установки.

2
alfakini 13 Апр 2019 в 17:57

Вероятно, у вас нет разрешения на запись в каталог log.dirs (см. Zookeeper.properties). Измените каталог на другой, измените настройки разрешений текущего каталога log.dirs или запустите Kafka от имени другого пользователя. Вы можете использовать команду ls -l /var/zookeeper, чтобы увидеть текущие разрешения, а затем chmod, чтобы изменить разрешения.

3
Lukáš Havrlant 22 Фев 2016 в 19:41

Я столкнулся с той же проблемой, и это работает с

sudo bin / zookeeper-server-start.sh config / zookeeper.properties

1
Ahmad 25 Июл 2019 в 10:23

Если вы запускаете zookeeper на компьютере с Windows 10, нам нужно указать свойство dataDir примерно так

"dataDir = C: \ zookeeper-3.4.13 \ data"

0
Rajesh Samson 27 Июл 2018 в 10:29