所以我想开始使用Accumulo。我安装了Hadoop并且运行没有问题,但是当我尝试启动Zookeeper时,我得到了:
JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
-n Starting zookeeper ...
/opt/zookeeper/bin/zkServer.sh: line 103: /tmp/zookeeper/zookeeper_server.pid: No such file or directory
FAILED TO WRITE PID
我环顾四周似乎无法找到答案。
答案 0 :(得分:3)
我遇到了同样的问题。在我的例子中,启动Zookeeper并直接指定配置文件非常有用:
/bin/zkServer.sh start conf / zoo.conf
答案 1 :(得分:1)
我从未听说过zookeeper,但是尝试编写文件zookeeper_server.pid
或者目录/tmp/zookeeper/
可能不存在而且shell脚本不能解决这个问题可能是一个权限问题可能性。检查权限和这些目录的存在。
答案 2 :(得分:1)
zookeeper随默认conf一起分发,仅出于示例目的将/tmp/zookeeper
用作dataDir
。建议将/path/to/zookeeper/conf/zoo.cfg
中的该值更改为/var/lib/zookeeper
。
创建/var/lib/zookeeper
需要root权限,因此需要sudo
。创建后,此目录将具有以下权限。
ls -al /var/lib/zookeeper/
drwxr-xrwx 4 root wheel 128 May 9 14:03 .
在没有root许可的情况下启动zookeeper时,它无法写入此目录。因此失败并出现错误
... /usr/local/zookeeper/bin/zkServer.sh: line 169: /var/lib/zookeeper/zookeeper_server.pid: Permission denied
FAILED TO WRITE PID
您需要授予写入权限,以允许启动Zookeeper的用户写入/var/lib/zookeeper
。就我而言,当我在本地使用它时,我使用了以下命令,它起作用了
sudo chmod o+w /var/lib/zookeeper