1、zookeeper是主要是对集群进行管理,通过配置zookeeper/conf/zoo.cfg文件,达到集群内的每台机器能够相互通信,监听心跳,也能通过配置一台服务器,其它服务器自动同步配置。通过prox算法选举出集群中的leader,以积极遇到问题后的结局策略。
2、zookeeper也可以只配一台服务器,kafka启动需要先启动zookeeper。在zookeeper/conf/zoo.cfg文件中配置ckTime=2000
dataDir=/opt/zookeeper/data
(zookeeper安装在/bjtu/opt/zookeeper目录,data中包含两个文件version-2,zookeeper.server.pid,
zookeeper.server.pid是启动zookeeper服务后自动生成的,重启服务器会自动读取,误以为zookeeper服务开启了,需要先清空,再启动zookeeper服务)
clientPort=2181
3、zookeeper中主要起作用的是两个文件,一是zookeeper/conf/zoo.cfg配置文件,二是zookeeper/bin/zkServer.sh启动脚本。
4、在一台服务器上安装zookeeper,安装时环境变量地址输错了,导致data文件没有生成,输入ps -ef | grep zookeeper 只输出一条语句bjtu 29307 1 0 Mar19 ? 00:04:59 。安装的是有问题的。
尝试解决方案
1)、查看环境变量 文件,修改环境变量
2)、在zookeeper下新建data文件夹,data中vertion-2文件,再启动zookeeper看是否生成zookeeper.server.pid
3)、检查zoo.cfg文件
4)、在zoo.cfg中添加log地址
5)、看zkServer.sh的源码
-------------------------------------------------
zookeeper集群模式
1、布在独立的3台服务器上
1)、zookeeper的集群模式配置其实非常简单,只需要在zoo.cfg配置文件中修改
-
clientPort=2181
-
initLimit=10
-
syncLimit=5
-
tickTime=2000
-
server.1=192.168.1.1:2888:3888
-
server.2=192.168.1.2:2888:3888
-
server.3=192.168.1.3:2888:3888
这些就可以了,
dataDir= # 数据持久化路径
clientPort=# 连接端口
initLimit=# 投票选举新leader的初始化时间。
syncLimit=# Leader与Follower之间的最大响应时间单位,响应超过syncLimit*tickTime,Leader认为Follwer挂掉,从服务器列表中删除Follwer
dataLogDir=# 日志保存路径 这个要自己新建,具体目录根据自己的实际情况为准!
server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader服务器交换信息的端口;D 表示的是万一集群中的 #Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 #Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。(注意A是从1~255)
2)再在data目录下增加myid文件(vi myid),myid中内容就是server.A中的A即id号
3)然后id号顺序分别启动zookeeper