在阿里云购买了基础版配置的centOs,用以下指令完成了zookeeper环境的搭建

  1.检查jdk是否已安装

java -version

  默认情况都是没有安装的,用以下命令完成安装

yum search java|grep jdk //先列出yum库中的所有jdk

yum install java-1.7.0-openjdk* -y //这里选择的是1.7(因为最近的项目都用1.7)

  yum会自动帮忙配置环境变量

 

  2.创建目录,下载和解压zookeeper

mkdir /home/zookeeper

mkdir /home/data

mkdir /home/logs

cd /home/zookeeper

wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

tar -zxvf  zookeeper-3.4.10.tar.gz

 

  3.配置zookeeper

cp /home/zookeeper/conf/zoo_sample.cfg /home/zookeeper/conf/zoo.cfg

vim zoo.cfg

#添加或修改配置
dataDir=/home/zookeeper/data

dataLogDir=/home/zookeeper/logs

clientPort=87     #这里是因为用的阿里云的安全规则配置只允许自己开发1-100间的端口,这里我配置开放的是87作为zookeeper的端口

server.l=118.190.146.40:2888:3888  # 注意是,server.数字1  对外暴露的ID:zookeeper服务间通讯端口:zookeeper与其他应用程序通讯端口

 

  4.创建zookeeper的服务id文件

cd /home/zookeeper/data

#这里我输入1之后不知道如何中止输入,直接用ctrl+x强制结束,结束后查看myid的文件内容为1 ,1为对应之前输入的server.数字1  表示是 zookeeper的服务号
cat>>myid
1

 

  5.配置zookeeper的环境变量

cd ~/.bash_profile

#添加
export ZOOKEEPER_HOME=/home/zookeeper/zookeeper-3.4.10

export PATH=$ZOOKEEPER_HOME/bin:$PATH

#使配置的环境变量生效
source ~/.bash_profile

#关闭防火墙
systemctl stop firewalld.service

systemctl disable firewalld.service

 

  6.zookeeper常用的指令

cd /home/zookeeper/zookeeper-3.4.10/bin

#启动
zkServer.sh start

#查看状态,也可以直接看同路径的日志文件
zkServer.sh status

#停止
zkServer.sh stop

 

 

 

 

  7.最后附上简单的测试zookeeper是否成功的JAVA代码

public static void main(String[] args) {
                   //服务器的地址
                   String url = "99.99.99.99:87";
                   int sessionTimeout =50000;
                   System.out.println("start zookeeper test");
                   try {
                             ZooKeeper zk = new ZooKeeper(url, sessionTimeout, new Watcher(){
                                      @Override
                                      public void process(WatchedEvent event) {
                                                // TODO Auto-generated method stub
                                                System.out.println("watcher:"+event);
                                      }
                             });
                             List<String> nodes = zk.getChildren("/", true);
                             if (nodes!=null) {
                                      for (String string : nodes) {
                                                System.out.println("node:"+string);
                                      }
                             }
                             zk.create("/test", "anyWords".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
                             nodes = zk.getChildren("/", true);
                             if (nodes!=null) {
                                      for (String string : nodes) {
                                                System.out.println("node:"+string);
                                      }
                             }
                   } catch (IOException e) {
                             // TODO Auto-generated catch block
                             e.printStackTrace();
                   } catch (KeeperException e) {
                             // TODO Auto-generated catch block
                             e.printStackTrace();
                   } catch (InterruptedException e) {
                             // TODO Auto-generated catch block
                             e.printStackTrace();
                   }
                   
                   System.out.println("test end");
          }

 

 

8.完毕。

 

其他,现在有很多可以安装在windows环境下的可视化查看(甚至管理)zookeeper节点的工具。比如ZooInspector,也可以本地搭建一个。

原理和上面的测试代码应该是类似的,建立新的zookeeper连接,添加对应的图形化界面来管理。