zoukankan      html  css  js  c++  java
  • linux下zookeeper的安装

    在阿里云购买了基础版配置的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连接,添加对应的图形化界面来管理。

  • 相关阅读:
    javaEE的三层结构:web层、service层、dao层
    shell 流水账
    Git笔记(流水账)
    Openstack搭建(流水账)
    shell数组脚本
    linux配置邮箱服务
    Linux产生随机数的几种方法
    MySQL主从复制原理及配置过程
    安装并配置多实例Mysql数据库
    Nginx防盗链配置
  • 原文地址:https://www.cnblogs.com/ybk2018af/p/9742124.html
Copyright © 2011-2022 走看看