注意事项:
1.本次操作 都是在root环境下进行操作,不然会有文件访问权限问题,出现如下的情况:zookeeper的conf文件只读,更改之后无法保存的问题。
切换到root的命令
sudo su
然后输入密码:
就可以
2.前置条件jdk环境必须是可用的
首先我在一个linux服务器里面安装了一个zookeeper(zookeeper的安装步骤参照博客https://www.cnblogs.com/huangjianping/p/8012580.html),然后对这个服务器进行克隆,得到了三份完全一样的服务,三个服务器的ip如下:
192.168.229.129
192.168.229.130
192.168.229.131
来连接的情况如下:
好,下面开始搭建集群环境。
一、主机名更改
这里需要使用linux主机名进行配置,查看linux 主机名的方式如下:
为了方便主机名区分,我对三个服务器号的主机名进行了更改,更改方式如下:
二、zoo.cfg文件更改
对zoo.cfg的配置文件进行更改:
注意:dataDir目录建议修改,这个目录是zookeeper存放数据的地方,如果不修改,默认在、temp下,这个目录下的数据可能会在自盘空间不足或者服务重启的时候被linux清理。
说明:2888原子广播端口,3888选举端口,zookeeper有几个节点就配置几个server
这里的server.1对应myid里面的数字,二者必须保持一致,server1,server2可以改成ip地址,对于本机的ip可以写成0.0.0.0:2888:3888
建议使用ip不然还得配本地映射,这里我改成了使用ip的方式。
三、myid
到之前配置的zookeeper数据文件所在的目录下生成 一个文件叫myid,其中写上一个数字表明当前机器是哪一个编号的机器。
比如我的文件夹应该是在data下
在这个文件里加上编号就可以了
另外两台 服务器操作也是这样,只是他们的编号不是一样的。
四、重启服务器
进入bin目录下启动zookeeper
命令如下:
启动:
./zkServer.sh start
重启
./zkServer.sh restart
查看状态
./zkServer.sh status
这样zk集群的环境搭建完毕 。
最后的结果如图所示:
三个zk都起来了进行协同工作
搭建参考博客:https://my.oschina.net/u/3754001/blog/1802140
在服务搭建完毕之后,启动zk,使用tail -fn200 命令监控日志,发现如下信息
2019-06-15 11:10:34,772 [myid:1] - INFO [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumPeer$QuorumServer@149] - Resolved hostname: 192.168.229.130 to address: /192.168.229.130
2019-06-15 11:10:34,776 [myid:1] - WARN [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@400] - Cannot open channel to 3 at election address /192.168.229.131:3888
java.net.ConnectException: 拒绝连接 (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:381)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:426)
at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:843)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:822)
本机的zk的正常启动,其他两个都是连不上,其他zk虽然已经启动了,但是通过查看进程还是没有,因为我个人的服务器是直接克隆的,我没想过克隆以后会导致jdk环境改变,最后排除发现java -version 不能用了jdk环境不能用了,这就很烦了,问题解决就ok了。
这个过程回顾一下基本的命令吧:
vim /etc/profile 环境变量的位置
source +文件名 不重启使修改的配置生效
tai -fn200 out.log 滚动查看日志
sudo su 切换到root用户
netstat -an|grep 2181 查看端口号占用情况
ps -ef|grep zookeeper 查看进程
Java -version jdk版本查看 检测jdk环境
shit+g 跳转到文件最后一行
grep 'Exception' out.log 即在out.log中搜索并高亮"Exception"关键字
大文件的搜索
sudo du -s * | sort -nr | head 显示前10个占用空间最大的文件或目录
sudo du –max-depth=1 linux查找占空间最大的文件与目录
sudo find / -size +204800 这样可以查找出大于100M的文件,按需求删除就可
sudo find ./ -size +2048c 查找大于2K的文件,+ 表示大于
sudo find ./ -size +2048c -type f 查找小于2K的文件,- 表示小于