zookeeper + Kafka - 无法创建数据目录

时间:2016-02-22 19:01:25

标签: apache-kafka apache-zookeeper

我在单个节点中使用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)

有什么建议吗?

12 个答案:

答案 0 :(得分:14)

一个原因可能是为zoo.config文件指定了不适当的路径。 Web上的许多解决方案都将路径指定为&#34;:\ zookeeper-3.4.7 \ data&#34;。

而不是上面提到的格式,将地址指定为从C:驱动器到数据文件夹的完整路径。它对我有用。 (不要忘记用双斜线\而不是一个,以防你在窗户上)

答案 1 :(得分:5)

我在Windows PC上遇到此设置的问题:

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

通过更改解决问题(我在C盘上解压缩了ZooKeeper)

dataDir=/data/zoo/

如果需要,还可以以管理员身份运行命令行工具

答案 2 :(得分:3)

您可能无权写入目录log.dirs(请参阅zookeeper.properties)。将目录更改为其他目录,更改当前log.dirs目录的权限设置或以不同用户身份运行Kafka。您可以使用命令ls -l /var/zookeeper查看当前权限,然后使用chmod更改权限。

答案 3 :(得分:0)

在我的windows 10系统中,使用zookeeper 3.4.10。 dataDir属性应设置为:\\\\zookeeper\\\\data,而不是d:\zookeeper\data。它还可以设置为linux文件系统分隔符(d:/zookeeper/data)。那么这个问题应该没问题。在linux中,我认为它是权限问题。当dataDir在windows系统中的驱动程序C下时也会遇到它。

答案 4 :(得分:0)

如果您是在Windows 10计算机上运行Zookeeper,则需要指定dataDir属性,例如

“ dataDir = C:\ zookeeper-3.4.13 \ data”

答案 5 :(得分:0)

在我的Windows 10系统中,使用zookeeper 3.4.13,以下示例路径有效:

“ dataDir = C:\\ dev \\ tools \\ zookeeper-3.4.13 \\ data”

您必须使用双反斜杠。

答案 6 :(得分:0)

在GCE上运行Kafka。只需添加 sudo ,它对我有用。

答案 7 :(得分:0)

对于Windows,以下方法也适用:

dataDir=C:\\zookeeper-3.4.14\\zookeeper-3.4.14\\data

答案 8 :(得分:0)

原因是动物园管理员没有许可。尝试使用管理员角色进行安装。

答案 9 :(得分:0)

我遇到了同样的问题,并且可以解决

  

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

答案 10 :(得分:0)

zoo.cfg上,您需要将目录更改为以上目录或类似的内容:

dataDir=C:/zookeeper-3.4.14/zookeeper-3.4.14/data

答案 11 :(得分:0)

对于Windows,将dataDir设置为没有访问限制的完整路径-没有引号(“”)

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

注意:我已经观察到命令在某些路径上失败(尽管具有完全访问权限),并且由于管理员已解决它而正在运行命令提示符。