linux下搭建zookeeper集群遇到的坑

1.在搭建的过程中遇到很多问题

2.首先是搭建单击模式的问题:
搭建之后启动 sudo sh zkServer.sh start命令
报错:zkServer.sh: 81: /home/xxx/zookeeper-3.4.6/bin/zkEnv.sh: Syntax error: "(" unexpected (expecting "fi")

原因是:
    意思就是脚本里面用到的shell版本与系统当前使用的shell版本不兼容,导致异常。
    查看当前ubuntu系统的shell,默认是使用dash,但是脚本里面是使用的bash,问题就在这里了。
解决办法:
    修改当前系统的shell版本:把dash改成bash
    执行命令:dpkg-reconfigure dash  弹出的框中选择No就好了

3.在执行 sudo sh zkServer.sh status的时候
报错:Using config: /opt/zookeeper-3.3.3/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

这时查看日志文件:在bin下的 zookeeper.out 使用命令cat zookeeper.out显示:
    nohup: failed to run command ‘java’: No such file or directory
原因是:
    当你执行 sudo sh zkServer.sh status 改变了环境变量,找不到java的环境变量,
    所以需要在启动文件zkServer.sh的#!/bin/bash 下设置进java的环境变量
    在#!/bin/bash 下面加上java环境变量:
        export JAVA_HOME=/usr/lib/jdk
        export PATH=$JAVA_HOME/bin:$PATH
        
        其中JAVA_HOME的值,可以通过执行命令echo $JAVA_HOME得到,每个人的java环境变量设置不一样,记住了
该问题参考自:https://stackoverflow.com/questions/20791846/zookeeper-not-starting-nohup-error

4.这样启动起来就是单击的了

5.同时需要将2181端口开放,最好是将防火墙给关掉

6.同时注意zoo.cfg中 dataDir 目录的配置是后面带/的,如:/usr/program/zookeeper/data/

7.集群用的文件myid是放在 /usr/program/zookeeper/data/myid

更多干货,请搜索公众号:真美<<

你可能感兴趣的:(linux下搭建zookeeper集群遇到的坑)