linux下zookeeper安装
1、下载
地址:http://zookeeper.apache.org/releases.html
可以在线下载安装,也可以手动下载到本地,在上传到linux的文件夹
2、解压
[root@localhost ]# tar -zxvf /home/lk/zookeeper-3.3.6.tar.gz
解压完之后,会得到一个zookeeper-3.4.11的文件夹
3、进入到conf目录
root@localhost ]# cd /opt/zookeeper-3.4.11/conf
4、拷贝zoo_samle.cfg为zoo.cfg
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg
至此安装完成,可以启动了,但在启动过程中发现启动失败
从此开始了一路排查纠错,大致排错步骤如下:
1)没有建立主机和ip之间的映射关系。
建立主机和ip之间映射关系的命令为 vim /etc/hosts 在文件的末端加入各个主机和ip地址之间的映射关系就可以了。只有在建立了映射关系之后,才可以将在同一个网段下的机器利用主机名进行文件传递
或者是建立的映射关系错误,注释掉 127.0.0.1 的配置,就可以恢复正常
2)如果不行,执行zkServer.sh start 后显示:
JMX enabled by default
Using config:/home/hadoop/app/zookeeper-3.4.5/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
3)jps后发现没有QuorumPeerMain进程
4)查看zookeeper-3.4.5/data下的zookeeper-3.4.5.out,如果提示 binding to port 0.0.0.0/0.0.0.0:2181
ERROR [main:QuorumPeerMain@89] - Unexpected exception, exiting abnormally java.net.BindException: Address already in use
说明2181端口被占用,通过netstat -nltp | grep 2181检查是否已被占用,如果有则把对应的进程kill掉(kill 进程的pid),然后再启动zookeeper
5)jps后发现有QuorumPeerMain进程,然后执行zkServer.sh status,如果显示:
JMX enabled by default
Using config: /home/hadoop/app/zookeeper-3.4.5/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
说明未启动成功,通过查看bin/zookeeper-3.4.5.out,如果提示
Cannot open channel to 1 at election address hadoop05/10.37.129.105:3888
java.net.NoRouteToHostException: No route to host,说明无法连接远程电脑10.37.129.105:3888,很有可能开启了防火墙
通过sudo service iptables status检查,如果确实开启,则通过sudo service iptables stop将其关闭,最后再查看状态zkServer.sh status
6) 此时如果还是报错,有2种方法
其一:在你zoo.cfg配置文件里dataDir指定的那个目录下创建myid文件,添加server.1=localhost:2888:3888
其二:在zoo.cfg文件末尾添加server.1=localhost:2888:3888
此时,基本都能够正常启动了,提示:
JMX enabled by default
Using config: /home/hadoop/app/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: leader(或follower)