zookeeper

  1. 检查是否安装JDK

    rpm -qa|grep -E '^open[jre|jdk]|j[re|dk]'
  2. 卸载已安装JDK

    rpm -qa|grep Java|xargs rpm -e --nodeps
  3. yum安装jdk

    yum search java|grep jdk
    yum install java-1.8.0-openjdk
  4. 检查安装是否成功

    java -versionjava version "1.8.0_101"
    Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
  5. 下载并安装

    cd /root
    wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz
    tar -xvf zookeeper-3.4.11.tar.gz
    mv ./zookeeper-3.4.11 /usr/local/zookeeper
    mkdir /usr/local/zookeeper/var
    mkdir /usr/local/zookeeper/var/log
    echo 1 > /usr/local/zookeeper/var/log/myid
    cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg
  6. 修改配置

    vim /usr/local/zookeeper/conf/zoo.cfgtickTime=2000
    initLimit=5
    syncLimit=2
    dataDir=/usr/local/zookeeper/var/log
    dataLogDir=/usr/local/zookeeper/var/log
    clientPort=2181
    # 多台server在下面配置即可,如果单台服务器构建多个server,则每个server用过的端口不能重复使用
    # 格式: server.[n]=[server_ip]:[server与leader交互端口]:[server选举leader端口]
    # server.1=172.31.9.59:2182:2183
    # server.2=172.31.9.60:2182:2183
    # server.3=172.31.9.61:2182:2183
    maxClientCnxns=60
    minSessionTimeout=60
    maxSessionTimeout=120
    # purgeInterval含义: 0-禁用自动清除 1-使用自动清除
    autopurge.purgeInterval=1ESC
    :wq
  7. 安装zookeeper-c

    cd /usr/local/zookeeper/src/c./configuremake
    make install
  8. 防火墙开启

    systemctl enable firewalld
    systemctl start firewalld
    firewall-cmd --zone=public --permanent --add-port=2181/tcp
    firewall-cmd --zone=public --permanent --add-port=2182/tcp
    firewall-cmd --zone=public --permanent --add-port=2183/tcp
    firewall-cmd --reload
  9. 单元文件

    # 进入单元文件目录
    cd /etc/systemd/system# 创建redis单元文件,格式为: [单元文件名].[单元文件类型]
    vim zookeeper.service[Unit]
    Description=开机启动zookeeper.
    After=default.target network.target[Service]
    User=root
    Group=root
    Type=forking
    PIDFile=/usr/local/zookeeper/var/log/zookeeper_server.pid
    ExecStart=/usr/local/zookeeper/bin/zkServer.sh start
    ExecReload=/usr/local/zookeeper/bin/zkServer.sh restart
    ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
    PrivateTmp=false
    Restart=always[Install]
    WantedBy=multi-user.targetESC
    :wq
  10. 安装php扩展:zookeeper参考链接

    cd /root
    wget https://pecl.php.net/get/zookeeper-0.4.0.tgz
    tar -zxvf zookeeper-0.4.0.tgz
    cd zookeeper-0.4.0/phpize
    ./configure
    make
    make install
  11. 安装php扩展libzookeeper参考链接

    cd /root
    wget https://github.com/Timandes/libzookeeper/archive/v0.7.2.tar.gz
    tar -xvf v0.7.2.tar.gz
    cd libzookeeper-0.7.2phpize
    ./configure
    make
    make install# 用来调起zookeeper-admin,仓库地址:
    https://github.com/Timandes/zookeeper-admin.git
  12. 修改php.ini

    vim /usr/local/php/lib/php.iniextension=libzookeeper.so
    extension=zookeeper.soESC
    :wq
  13. PHP使用进程公共锁

    # 出了$zc的作用域之后,锁将不存在
    $zc = new \Zookeeper('127.0.0.1:2181');
    //或者
    //$zc = new \Zookeeper();
    //$zc->connect('127.0.0.1:2181');
    $zookeeper_key = '/xxx';
    if ($zc->exists($zookeeper_key)) {//如果锁存在,则程序正在运行,不运行新的程序return false;
    }else{//如果锁文件不存在,则创建进程锁文件,运行程序$acl = [['perms' => \Zookeeper::PERM_ALL,//共享锁(用来跨进程执行某个程序)'scheme' => 'world','id' => 'anyone',]];//尝试创建锁$zookeeper_key_res = $zc->create($zookeeper_key, null, $acl, \Zookeeper::EPHEMERAL);//临时锁(可共享的)if ($zookeeper_key_res == $zookeeper_key) {//创建锁成功运行程序//做些什么,比如等待10秒sleep(10);$zc->delete($zookeeper_key);//其实不执行也会删除,因为这是一个临时锁,且return之后不再能取到$zcreturn true;} else {//创建锁失败不运行程序return false;}
    }

zookeeper基本安装文档相关推荐

  1. Docker软件安装文档

    软件安装文档 文章目录 软件安装文档 虚拟机安装 系统死锁问题 JDK11安装 Docker安装 Docker-Compose安装 MySQL安装 MySQL8安装 Docker-Compose安装M ...

  2. ELK安装文档及相关优化

    前言:随着硬件成本的不断低廉,我们可以存储更多数据内容,也会对各数据加以利用,其中一项很重要的数据内容便是日志文件,无论是访问日志还是系统日志或是应用日志,都显得十分重要,而怎么加以利用一直是一个难题 ...

  3. mysql数据库21_Mysql5.7.21安装文档

    Mysql5.7.21安装文档 发布时间:2020-06-27 13:59:56 来源:51CTO 阅读:946 作者:PengChonggui --1.创建用户组mysql,创建用户mysql并将其 ...

  4. Subversion(SVN)安装文档

    Subversion(SVN)安装文档 SVN中文网址(操作手册) http://www.iusesvn.com/    软件版本(当前版本): subversion-1.6.17.tar.gz su ...

  5. GitLab安装文档

    GitLab安装文档 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务. GitLab与GitHub的功能相似,通常企业使用GitLab在局 ...

  6. Oracle 11g 单实例安装文档

    这里介绍在Red Hat Enterprise Linux Server release 5.7 (Tikanga)下安装ORACLE 11.2.0.1.0的过程,本文仅仅是为了写这样安装指导文档而整 ...

  7. KVM 标准化安装文档

    KVM 标准化安装文档 转载于:https://blog.51cto.com/wangwei007/600111

  8. hadoop2.6.5安装文档及解决root用户无法ssh localhost的问题

    hadoop2.6.5官方安装文档 解决root用户无法ssh localhost的问题:

  9. 转自 David dai linux平台 oracle 数据库 安装文档

    Oracle 官方的安装文档 http://download.oracle.com/docs/cd/B28359_01/install.111/b32002/toc.htm 一. 安装相关包  1.1 ...

  10. php oracle817,Oracle 817 For Linux/Unix安装文档-数据库专栏,ORACLE

    oracle 817安装文档 1.      创建dba组和oracle用户 root@hz_cmode # groupadd dba root@hz_cmode # useradd -m -d /o ...

最新文章

  1. 做事范围是多么多么重要
  2. 字符集与编码(四)——Unicode
  3. 浅谈 RocketMQ、Kafka、Pulsar 的事务消息
  4. 关于搜狐焦点房产的数据分析
  5. SAP两款CRM产品各方面比较:SAP CRM vs SAP Cloud for Customer
  6. 隐藏网页文件的后缀(IIS测试通过)!
  7. 前端技术学习之选择器(十三)
  8. 6. 区别值类型和引用类型。
  9. NPAPI:JS的Number,在接口中可能是int32,也可能是double
  10. matlab的火山图,ggplot绘制火山图
  11. E2-AEN: End-to-End Incremental Learning with Adaptively Expandable Network
  12. The Auto-extending innodb_system data file './ibdata1' is of a different size 6400 pages (rounded do
  13. cin gt gt n是c语言中的什么,c++中cinna是什么意思
  14. 2017爱创课堂vue.js视频完整版
  15. 再说说微软为什么会转型成功
  16. 北斗GPS同步时钟(授时系统)技术原理详解
  17. 计算机二级Python嵩天老师Mooc学习笔记:天天向上的力量
  18. 李嘉诚的人生感悟(ZT)
  19. 你还不清楚某个系统文件的作用吗?Windows系统文件详解【大全】
  20. 在无网络时使用Unity Hub

热门文章

  1. 无需编码生成信息系统_无需编码即可逐步进行花分类
  2. 单片机定时报警C语言程序,单片机控制的简易定时报警器电路设计( - 控制/MCU - 电子发烧友网...
  3. python更换证件照背景
  4. 大型网站seo方案_网站seo完整的优化方案
  5. 在程序中表示什么_程序开发中:什么是前后端分离?你搞清楚了吗?
  6. R实践 第二篇:创建数据集
  7. Grunt usemin前端自动化打包流程
  8. Office 365系列(1)------Office 365邮箱申请及初步配置说明
  9. 用python调用ICTCLAS50进行中文分词
  10. C#接口编程实例解析[转]