13

我是 Zookeeper 的新手,安装和运行它是一个真正的问题。我不确定这里出了什么问题,但我将解释我正在做的事情以使其更清楚:

1.- 我按照 Apache 提供的安装指南进行操作。这意味着下载 Zookeeper 发行版(稳定版)提取文件并移动到主目录。

2.- 因为我使用的是 Ubuntu 12.04,所以我修改了 .bashrc 文件,包括:

export ZOOKEEPER_INSTALL=/home/myusername/zookeeper-3.4.5
export PATH=$PATH:$ZOOKEEPER_INSTALL/bin

3.- 在 conf/zoo.cfg 创建一个配置文件

tickTime=2000
dataDir=/var/zookeeper
clientPort=2181

并尝试过:

dataDir=/var/log/zookeeper

dataDir=/var/bin/zookeeper

4.- 运行启动命令时

zkServer.sh start or `bin/zkServer.sh start` nothing happens and always returns this

JMX enabled by default
Using config: /home/sasuke/zookeeper-3.4.5/bin/../conf/zoo.cfg
mkdir: cannot create directory `/var/zookeeper': Permission denied
Starting zookeeper ... /home/sasuke/zookeeper-3.4.5/bin/zkServer.sh: line 113: /var/zookeeper/zookeeper_server.pid: No such file or directory
FAILED TO WRITE PID

我安装了 Java,并且在 zookeper 目录中有一个 zookeeper.jar 文件,我认为它没有运行。在stackoverflow上查看这里有一个人说他可以在输入后运行zookeeper

ssh localhost

但是当我尝试这样做时,我得到了这个错误

ssh: connect to host localhost port 22: Connection refused

请帮忙。我在这里试图解决它太久了。

zookeeper 入门指南:http: //zookeeper.apache.org/doc/r3.1.2/zookeeperStarted.html 上一个案例通过 shh localhost 解决 Zookeeper: FAILED TO WRITE PID

更新:日志的权限是:

drwxr-xr-x 19 root root     4096 Oct 10 07:52 log

对于动物园管理员:

drwxr-xr-x  2 zookeeper         zookeeper    4096 Mar 23  2012 zookeeper

我应该改变这些吗?

4

11 回答 11

13

我曾经也有过一样的问题。在我的情况下,启动 Zookeeper 并直接指定配置文件很有用:

/bin/zkServer.sh 启动conf/zoo.conf

于 2015-03-30T13:05:19.070 回答
6

您似乎没有所需的权限。/var/log所有者将成为root用户。Zookeeper 将进程 ID 和数据快照存储在该目录中。生成的 zookeeper 服务器的进程 ID 存储在一个文件中 - zookeeper_server.pid(截至 3.3.6)

如果你有 root 权限,你可以用(root)权限启动 zookeeper sudo,它应该可以工作,但绝对不推荐。确保以与目录所有者相同(或更高)的权限启动 zookeeper。

在您的主文件夹中创建一个新目录,例如/home/username/zookeeper-data. 让dataDir指向该目录,它应该可以工作。

于 2013-10-10T13:10:55.997 回答
4

默认的 zookeeper 安装(tar 提取)附带命名的 conf 文件conf/zoo_sample.cfg,而相同的提取bin/zkServer.sh期望调用 conf 文件,zoo.cfg从而导致“没有这样的文件或目录”和“无法写入 pid”错误。因此,在运行 zkServer.sh 启动或停止 zookeeper 实例之前,可以:

  • zoo_sample.cfgconf 目录中的 重命名为zoo.cfg, 或
  • 给出 conf 文件的名称(和路径)(如Ilya Lapitan 建议的那样),或者,当然
  • 编辑 zkServer.sh ;-)
于 2017-05-01T04:31:04.793 回答
1

当您为 dataDir 创建目录时,请确保使用该-p选项。这将允许根据应用程序放置文件的需要创建后续目录。

mkdir -p /var/log/zookeeperData 然后设置:

dataDir=/var/log/zookeeperData

于 2016-03-17T03:19:38.630 回答
1

似乎有各种各样的原因会发生这种情况。这里有很多有用的答案!

对我来说,我的 zoo.cfg 文件中有不正确的行尾,并且可能有不可见的字符,所以 zookeeper 试图创建像/var/zookeeper?and之类的目录/var/zookeeper\r。重新修改我的 zoo.cfg 为我修复了它,同时删除了 zoo_sample.conf。

于 2019-07-12T15:08:58.887 回答
0

由于磁盘空间不足,这发生在我身上。导致 zookeeper 无法在 zookeeper 数据文件夹中创建 pid 文件。

于 2014-12-10T06:10:12.357 回答
0

我在使用以下命令启动 zookeeper 时遇到了同样的问题:

hadoop@ubuntu:~/hadoop/zookeeper/zookeeper-3.4.8$ bin/zkServer.sh start

错误 [main] client.ConnectionManager$HConnectionImplementation:节点 /hbase 不在 ZooKeeper 中。

应该是师父写的。检查中配置的值zookeeper.znode.parent。可能与主服务器中配置的不匹配。

但运行脚本su纠正了问题:

hadoop@ubuntu:~/hadoop/zookeeper/zookeeper-3.4.8$ sudo bin/zkServer.sh start

ZooKeeper JMX 默认启用使用配置:/home/hadoop/hadoop/zookeeper/zookeeper-3.4.8/bin/../conf/zoo.cfg 启动zookeeper ... STARTED

于 2016-06-17T12:44:27.860 回答
0

去 /usr/local/etc/
你会发现 zookeeper 目录
删除目录
并重启服务器 - zkServer start

于 2017-06-15T17:48:41.263 回答
0

更改路径给 dataDir=/tmp/zookeeper。如果它有效,那么它显然是访问问题

但一般不建议使用 tmp 目录。

于 2017-08-30T17:59:53.743 回答
0

这似乎是所有权问题;运行以下为我解决了这个问题。

$ sudo chown -R $USER /var/lib/zookeeper

注意,我在下面概述了我的步骤,这些步骤显示了我遇到的错误(与此 SO 问题中的错误相同)以及尝试尝试上述用户提出的解决方案的尝试,建议将其zoo.cfg作为参数提供。

13:01:29 ✔ ~  :: $ZK/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/Cellar/zookeeper/3.4.14/libexec/bin/../conf/zoo.cfg
Starting zookeeper ... /usr/local/Cellar/zookeeper/3.4.14/libexec/bin/zkServer.sh: line 149: /var/lib/zookeeper/zookeeper_server.pid: Permission denied
FAILED TO WRITE PID

13:01:32 ✘ ~  :: $ZK/bin/zkServer.sh start $ZK/conf/zoo.cfg
ZooKeeper JMX enabled by default
Using config: /usr/local/Cellar/zookeeper/3.4.14/libexec/conf/zoo.cfg
Starting zookeeper ... /usr/local/Cellar/zookeeper/3.4.14/libexec/bin/zkServer.sh: line 149: /var/lib/zookeeper/zookeeper_server.pid: Permission denied
FAILED TO WRITE PID
13:04:45 ✔ /var/lib  :: ls -la
total 0
drwxr-xr-x  4 root     wheel 128 Apr 19 18:55 .
drwxr-xr-x 27 root     wheel 864 Apr 19 18:55 ..
drwxr--r--  3 root     wheel  96 Mar 24 15:07 zookeeper
13:04:48 ✔ /var/lib  :: echo $USER
tallamjr
13:06:03 ✔ /var/lib  :: sudo chown -R $USER zookeeper
Password:
13:06:44 ✔ /var/lib  :: ls -la
total 0
drwxr-xr-x  4 root     wheel 128 Apr 19 18:55 .
drwxr-xr-x 27 root     wheel 864 Apr 19 18:55 ..
drwxr--r--  3 tallamjr wheel  96 Mar 24 15:07 zookeeper
13:06:48 ✔ ~  :: $ZK/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/Cellar/zookeeper/3.4.14/libexec/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

参考: - https://askubuntu.com/questions/6723/change-folder-permissions-and-ownership

于 2020-04-28T12:19:33.650 回答
-1

尝试使用 sudo -E bin/zkServer.sh start

于 2017-06-01T09:45:57.567 回答