• 【环境搭建】Apache ZooKeeper 3.8.4 Stable


    软件环境

    Ubuntu 20.04 、OpenJDK 11

    OpenJDK 11(如果已经安装,可以跳过这一步)

    安装OpenJDK 11:

     $ sudo apt-get update
     $ sudo apt-get install -y openjdk-11-jdk

    设置 JAVA_HOME 环境变量

     $ sudo gedit ~/.bashrc

    添加内容:

     export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
     export PATH=$PATH:$JAVA_HOME/bin

    环境变量生效:

     $ source ~/.bashrc

    验证:

     $ java --version

    获取 Zookeeper

    进入 Zookeeper 官网Apache ZooKeeper,找到Downloads,直接下载编译好的安装包,不然下载源码还要自己手动编译比较麻烦,我们选择Apache ZooKeeper 3.8.4 Stable:

    复制这个HTTP网址:

    使用wget下载到本地:

     $ wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz --no-check-certificate

    解压:

     $ tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz

    将解压后的文件移动到合适的目录,例如/opt/zookeeper

     $ sudo mv apache-zookeeper-3.8.4-bin /opt/zookeeper

    配置 Zookeeper

    /opt/zookeeper/conf目录下,复制一份默认配置文件示例:

     $ cd /opt/zookeeper/conf
     $ sudo cp zoo_sample.cfg zoo.cfg

    打开zoo.cfg文件,找到并修改dataDir参数,指定 Zookeeper 存储数据的目录:

     $ sudo gedit zoo.cfg

    改为以下内容:

     # The number of milliseconds of each tick
     tickTime=2000
     # The number of ticks that the initial 
     # synchronization phase can take
     initLimit=10
     # The number of ticks that can pass between 
     # sending a request and getting an acknowledgement
     syncLimit=5
     # the directory where the snapshot is stored.
     # do not use /tmp for storage, /tmp here is just 
     # example sakes.
     dataDir=/var/lib/zookeeper/data
     # the port at which the clients will connect
     clientPort=2181
     # the maximum number of client connections.
     # increase this if you need to handle more clients
     #maxClientCnxns=60
     #
     # Be sure to read the maintenance section of the 
     # administrator guide before turning on autopurge.
     #
     # https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
     #
     # The number of snapshots to retain in dataDir
     #autopurge.snapRetainCount=3
     # Purge task interval in hours
     # Set to "0" to disable auto purge feature
     #autopurge.purgeInterval=1
     ​
     ## Metrics Providers
     #
     # https://prometheus.io Metrics Exporter
     #metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
     #metricsProvider.httpHost=0.0.0.0
     #metricsProvider.httpPort=7000
     #metricsProvider.exportJvmInfo=true

    此外,可以根据需要修改clientPort参数来指定 Zookeeper 服务端口,默认是2181。如果要配置 Zookeeper 集群,还需要在zoo.cfg文件中添加其他节点信息。

    创建相应的目录:

     $ sudo mkdir -p /var/lib/zookeeper/data

    给予目录所有者读写执行权限,给所属组和其他用户读执行权限:

     $ sudo chmod -R 755 /var/lib/zookeeper/data

    启动 Zookeeper

    /opt/zookeeper/bin目录添加到系统的PATH环境变量中:

     $ sudo gedit ~/.bashrc

    添加内容如下:

     export PATH=$PATH:/opt/zookeeper/bin

    环境变量生效:

     $ source ~/.bashrc

    先切换为root shell,否则权限不够:

     $ sudo su

    启动 Zookeeper:

     $ zkServer.sh start

    出现问题:

    解决:

    权限不够,切换root shell即可。

    出现问题:

     # zkServer.sh start
     zkServer.sh: command not found

    解决:

    在root shell里按照刚才的步骤再添加一次环境变量并生效即可。

    检查 Zookeeper 服务的状态,确保其正常启动:

     # zkServer.sh status

  • 相关阅读:
    Optional 详解
    性能优化究竟应该怎么做
    HCIP-路由01:路由基础
    智能化的共享台球室管理:微信小程序的应用与优势
    SpringBoot线上项目隐藏Swagger接口文档
    聊天机器人有何用处?有何类型?看完这些就明白了!
    怎么语音转文字?快来看看这些方法
    Uniapp中的事件处理:uni.emit和uni.on/uni.once
    STM32与陀螺仪、加速度计传感器的数据融合与姿态估计
    什么是动态组件以及使用场景
  • 原文地址:https://blog.csdn.net/Mitchell_Donovan/article/details/143420252