zookeeper上传配置文件|如何使用Zookeeper集群Tomcat

A. 12步教你安装JDK和zookeeper

安装zookeeper首先要安装JDK,linux有自带的OPENJDK,要卸载然后重新安装。 1. java -version 查看JDK版本2. rpm -qa | grep java 查找有哪些java相关的包3. rpm -e –nodeps tzdata-java-2015e-1.e16.noarch  卸载,–nodeps 就是no depends的意思,忽略相关依赖强制卸载4. mkdir /export/server 创建zookeeper和 JDK安装的目录 5. mv jdk1.8.0_65.tar.gz /export/server 把jdk安装包移动到/export/server文件夹  cd /export/server  进入该文件夹, ls查看可以看到安装包 tar -zxvf jdk1.8.0_65.tar.gz   把JDK上传到linux系统中,然后执行tar解压操作  6. vi /etc/profile 编辑/etc目录下的profile文件,也就是配置环境变量的配置文件。 7. 打开文件后,按大写的G直接跳到文件的最后一行,然后按 i 进入编辑文件状态,在末尾添加这三行配置信息 export JAVA_HOME=/export/server/jdk.1.8.0_65     配置一个JAVA_HOME的变量,值是jdk安装的目录,这个JAVA_HOME在下面两行会用到 export PATH=$PATH:$JAVA_HOME/bin                     export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 编辑完毕,按ESC退出文件编辑状态,然后输入 指令  :wq (冒号+wq) 回车退出并保存该文件。 8. source /etc/profile   刷新profile文件到系统内存。 9. 在任意目录下 输入  java -v 查看JDK版本以上JDK安装完毕,接下来安装zookeeper。 10. 和上传JDK一样,把zookeeper-3.4.10.tar.gz文件放到/export/server目录下,并进行解压。(忘记了就去看第5步)        tar -zxvf zookeeper-3.4.10.tar.gz   解压之后要进行相关的配置(软件安装无非就是解压+配置) 这里主要有两个重要要改的地方:1.zookeeper服务启动后数据文件保存在哪里? 2. zookeeper通常是会集群化,也就是启动好几台zookeeper同时提供服务的,因此在每台zookeeper服务的配置文件里面都要配置上其它zookeeper服务的ip和端口。 第二点不懂的话直接看配置文件就好了。 11.  首先实现第一点,创建zookeeper数据保存目录 mkdir /export/data/zkdata 创建zkdata文件夹,用于存在zookeeper数据.(这条如果报错了,说明你应该先执行mkdir /export/data/创建data目录) 12. 接下来进行配置 cd zookeeper/conf/  配置文件放在该目录下,ll可以查看有哪些文件,如图其中有个zoo_sample.cfg 文件,这个文件是自带的一个模板,就是告诉你配置文件要照着这个样子去抄。。。 然后有个重要的东西就是:zookeeper启动的时候,默认是会读取该文件路径下配置文件zoo.cfg的,但是这里默认是i没有这个文件的。所以我们直接复制一个zoo_sample.cfg 重命名为zoo.cfg就OK了。但是要进去做自己的相关配置改动。 复制文件命令是: cp zoo_sample.cfg zoo.cfg 13. vi zoo.cfg  开始编辑配置文件了,打开可以看见一堆你可能看不懂的东西,但是不重要因为大多数都是注释掉的东西。新手就别管那么多了。这里我们主要要修改的是两个东西,哪两个? 前面黑体字有说过了:数据存放目录,集群中各个zookeeper服务的ip port。 同样的,按 i 进入编辑模式,找到dataDir=/tmp。。。这一行。 这一行就是设置数据存放的目录。 把它改成我们自己新建的目录: dataDir=/export/data/zkdata/ 这样第一点就配置完了。 实际上到这里一台zookeeper服务已经安装完毕了,但是说过了,zookeeper是集群,所以得多搞几个服务器。我这里用了三台虚拟机,复制三台。ip分别是192.168.209.128  / 192.168.209.129 / 192.168.209.130,这三台同样的安装JDK 和zookeeper。 重复前面的操作就行,也可以直接复制虚拟机。 同样的在zoo.cfg里面,大写的G到最后一行。在末尾加上这三行配置: server.1=192.168.209.128:2888:3888    #三台服务对应server 1 2 3 ,对应三个ip。 后面两个端口分别是 心跳端口2888 和选举端口。 server.2=192.168.209.129:2888:3888 server.3=192.168.209.130:2888:3888 然后保存退出就OK了。 13. 最后一步: 就是给三台zookeeper服务设置id。在哪里设置呢? 就是在zookeeper保存文件的目录下创建一个/export/data/zkdata/myid 文件。 文件名不能乱写,就得是是这个,选举的时候很关键的。 我们有三台zookeeper server,每台的myid文件数字 不一样,你得进入三台服务器分别编辑这个文件。 第一台服务器,vi myid  编辑该文件,写入一个数字 1  第二台服务器,vi myid  编辑该文件,写入一个数字 2 第三台服务器,vi myid  编辑该文件,写入一个数字 314. 最后你启动一下zookeeper试试安装成功了没 。 /export/server/zookeeper/bin/zkServer.sh start   启动zookeeper的指令。可以看到日志打印出来的是默认Using zoo.cfg这个配置文件。三台服务你都要启动,zookeeper会根据你配置的三个ip port去发送心跳,自动建立集群。 并且根据myid去选举哪个server是leader,哪个是follower。  【这里呢就安装完毕了! 动手操作也就14步是不是很简单。但是搞清楚原理才是最主要的。】

B. 如何使用Zookeeper集群Tomcat

(1)解压为zookeepertar -xf -C /home/myuser/zookeeper/复制zookeeper文件夹3份,分别重名名为zookeeperA,zookeeperB,zookeeperC。 并且创建数据快照以及日志存放文件夹,命名为zooA,zooB,zooC。 (2)编辑对应的zookeeper配置文件,复制zookeeperconf下zoo_sample.cfg为zoo.cfgcd /home/myuser/zookeeperA/confcp zoo_sample.cfg zoo.cfg (3)修改zoo.cfg# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks that can pass between # sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is just # example sakes.dataDir=/home/myuser/zooA/data# the port at which the clients will connectclientPort=2181# ZooKeeper server and its port no. # ZooKeeper ensemble should know about every other machine in the ensemble # specify server id by creating 'myid' file in the dataDir # use hostname instead of IP address for convenient maintenance server.1=127.0.0.1:2888:3888server.2=127.0.0.1:2988:3988 server.3=127.0.0.1:2088:3088## Be sure to read the maintenance section of the # administrator guide before turning>tickTime:心跳时间,为了确保连接存在的,以毫秒为单位,最小超时时间为两个心跳时间initLimit:多少个心跳时间内,允许其他server连接并初始化数据,如果ZooKeeper管理的数据较大,则应相应增大这个值clientPort:服务的监听端口dataDir:用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里(注意:一个配置文件只能包含一个dataDir字样,即使它被注释掉了。)dataLogDir:用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争syncLimit:多少个tickTime内,允许follower同步,如果follower落后太多,则会被丢弃。(4)创建myid文件cd /home/myuser/zooA/datasudo sh -c 'echo "1" >> myid' 其他文件夹类似创建myid文件,zookeeperB为2,zookeeperC为3(5)启动zookeepercd /home/myuser/zookeeperA/binsudo sh zkServer.sh start查看zookeeper状态[root@weibo bin]# sh zkServer.sh statusJMX enabled by defaultUsing config: /home/weibo/zookeeperA/bin/../conf/zoo.cfgMode: follower启动OK,依次启动另外两台zookeeper,启动第一台zookeeper后,你可以观察bin下的zookeeper.out可以看到报错,connection refused,没有关系,zookeeper需要等待其他另个节点的加入,全部启动之后就正常了。(6)客户端连接zookeeper[root@weibo bin]# sh zkCli.sh Connecting to localhost:21812013-05-10 15:00:25,363 [myid:] – INFO [main:Environment@100] – Client environment:zookeeper.version=3.4.5-1392090, built>configs:保存上传的配置文件信息clusterstate.json:集群状态jsonaliases:别名jsonlive_node:当solr服务器启动的时候,会注册到这里overseer:保存shard信息overseer_elect:节点选举collections:所有的collection


赞 (0)