前言:
今天学习的时候老师让在linux上安装zookeeper,由于教学使用的虚拟机,我的电脑安不上,所以我准备安装在我的阿里云的服务器上,但就是因为没有安装在虚拟机上报了一个错误,经检查日志及百度,终于解决,现将解决方法记录一下,先说解决方案,最后跟上流程。
解决方案:
1.报错截图:
这个图就是告诉我说启动失败了,很绝望!也没告诉我为啥失败了,但是需要知道为啥失败了才能进行改正啊,然后接下来就要查看日志了,不要慌,很简单的。
2.查看日志,看看到底是为啥报错了
首先,进入日志文件夹(就是zookeeper的logs)下:
cd logs
就能看到日志文件(zookeeper-root-server-iZi39da7z1bbe9Z.out),然后查看日志,就查看后20行就行
tail -n 20 zookeeper-root-server-iZi39da7z1bbe9Z.out
看到报错截图如下:
先看看中文,地址已在使用,看到这里就应该知道是端口冲突了,但是很懵逼2181这端口还能冲突……然后仔细看报错的最上边:Caused by: java.io.IOException: Failed to bind to /0.0.0.0:8080………………这里说的是8080端口冲突了
后经百度查询,才知道:zookeeper最近的版本中有个内嵌的管理控制台是通过jetty启动,会占用8080 端口,如果你要下载老版的就不会有这个问题。
解决:
有三种解决方案:
(1).删除jetty。
(2)修改端口。
修改方法的方法有两种,一种是在启动脚本中增加
Dzookeeper.admin.serverPort=你的端口号
一种是在zoo.cfg中增加
admin.serverPort=没有被占用的端口号
(3)停用这个服务,在启动脚本中增加
Dzookeeper.admin.enableServer=false
我自己的解决方案(修改端口号):
我是采用的改变端口号的方式:
首先进入conf目录
cd conf
然后编辑zoo.cfg文件
vim zoo.cfg
添加以下一句话
admin.serverPort=随便一个不重复的端口号
例如:
然后保存,在进行启动就可以了!!!
……
……
……
……
附带安装流程:
1.上传压缩文件
上传到 /usr/local/tmp中
2.解压
tar zxf apache-zookeeper-3.5.5-bin.tar.gz
cp -r apache-zookeeper-3.5.5-bin ../zookeeper
3.新建data目录
进入到zookeeper中
cd /usr/local/zookeeper
mkdir data
4.修改配置文件
进入conf中
cd conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
5.修改dataDir为data文件夹路径
6.启动zookeeper
进入bin文件夹
cd /usr/local/zookeeper/bin
./zkServer.sh start
启动成功截图
7.通过status查看启动状态。稍微有个等待时间
./zkServer.sh status
查看状态截图: