软件环境:
Linux服务器:1台,3台,5台(2*n+1),因为zookeeper的工作原理,只要存活的机子数在半数以上,就能正常工作,比如我们有3台机子,那么存活两台机子就能工作。比如有4台机子,我们需要存活三台才可以工作,这两者都是只能关闭一台才能对外提供服务。所以偶数的机子没有太大的必要。
JAVA: jdk 1.7.
zookeeper : after 3.4.6 (比较稳定的版本).
搭建过程:以我们有三台linux服务器为例
1.在3台服务器上面都下载好jdk和zookeeper的tar包
2.mkdir jdk 和mkdir zookeeper在三台机子都创建jdk和zookeeper两个目录.
3.在三台机器把下载好的tar包都分别放入我们创建的目录里面(jdk的放入jdk, zookeeper放入zookeeper), 使用cp命令.
4. 进入jdk的目录 , tar -zxvf jdk-7u67-linux-x64.tar.gz 解压tar包 。 (三个服务器做同样的事情。)
5.进入jdk的根目录,cd /jdk/jdk1.7.0_67 pwd 列出目录 配置环境变量.
6.配置环境变量有两种方式:
a. vim ./.bashrc 对当前用户有效
b. vim /etc/profile 对所有用户有效
7.tar -zxvf 解压zookeeper的压缩包
8.创建zkdata和zkdatalog目录 在/zookeeper下面 。
9.进入zkp的配置目录,查看zoo_sample.cfg .并且 cp zoo_sample.cfg zoo.cfg重新命名一个配置文件.
10.查看zoo.cfg文件把dataDir目录的值变为我们刚刚创建的zkdata目录的位置。 (快照日志)
新增一个目录配置dataLogDir= 我们配置的zkdatalog目录 。 用于存放事物日志(事物日志)。
11.改变端口 防止端口已经被占用.
12. 用于配置slave 和leader . 只有一个leader其他都是slaver.
server.1= 本机的ip: 端口 (官方推荐是2888): 端口(官方推荐是3888) (通过hostname -i 可以查看)
server.2= 第二台机器的ip: (官方推荐是2888): 端口(官方推荐是3888)
server.3= 第三台机器的ip: (官方推荐是2888): 端口(官方推荐是3888)
13.进入快照目录zkdata cd ../../zkdata , 通过echo "1" >myid .同样 在第二第三台机器上面copuy zoo.cfg的配置文件 。 在第二台机器创建myid 文件 (echo "2" > myid) , 第三台机器创建 echo "3" > myid (使用重定向到myid文件中).
14.进入zkp 的 bin目录, 执行./zkServer.sh 会列出我们需要的参数 包括start |start -foreground | stop |restart 等 .
启动就是./zkServer.sh start
15.同样在其他机器也进行启动.
16. 通过./zkSever.sh status 查看各个机器的状态 可以看到机器是属于follower还是leader .