在Debian系统上安装和配置Zookeeper的步骤如下:
首先,确保你的系统上已经安装了Java环境。你可以使用以下命令来安装OpenJDK:
sudo apt-get update
sudo apt-get install openjdk-11-jdk
安装完成后,检查Java是否正确安装:
java -version
从Apache Zookeeper的官方网站下载最新版本的Zookeeper压缩包,然后解压到你想要的目录。例如:
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
tar -xzf apache-zookeeper-3.7.0-bin.tar.gz -C /opt
进入解压后的Zookeeper目录,复制 zoo_sample.cfg 为 zoo.cfg ,并编辑该文件:
cd /opt/apache-zookeeper-3.7.0-bin
cp conf/zoo_sample.cfg conf/zoo.cfg
sudo nano conf/zoo.cfg
在 zoo.cfg 文件中,你可以配置以下参数:
tickTime:服务器之间或客户端与服务器之间维持心跳的时间间隔(毫秒)。initLimit:Zookeeper接受客户端初始化连接时最长能忍受多少个心跳时间间隔数。syncLimit:领导者与追随者之间发送消息,请求和应答的最大时间长度。dataDir:Zookeeper持久化存放数据存放的目录。clientPort:Zookeeper服务器监听的客户端连接端口。server.X:定义Zookeeper节点的ID,格式为 server.X IP:port:port ,其中X是节点的ID。例如:
tickTime 2000
initLimit 10
syncLimit 5
dataDir /var/lib/zookeeper
clientPort 2181
server.1 192.168.1.1:2888:3888
server.2 192.168.1.2:2888:3888
server.3 192.168.1.3:2888:3888
在 dataDir 指定的目录下创建一个名为 myid 的文件,并在其中写入节点的ID。例如,对于第一个节点,写入 1:
echo "1" > /var/lib/zookeeper/myid
你可以通过编辑 /etc/profile 文件来设置Zookeeper的环境变量:
sudo nano /etc/profile
添加以下内容:
export ZK_HOME=/opt/apache-zookeeper-3.7.0-bin
export PATH=$ZK_HOME/bin:$PATH
然后,使配置生效:
source /etc/profile
在Zookeeper的 bin 目录下,使用以下命令启动Zookeeper服务:
sudo ./zkServer.sh start
要停止Zookeeper服务,可以使用以下命令:
sudo ./zkServer.sh stop
你可以使用以下命令来检查Zookeeper服务的状态:
sudo ./zkServer.sh status
如果你需要配置一个Zookeeper集群,需要在每台服务器上执行上述步骤,并确保所有服务器的配置一致。特别要注意的是,每个节点的 myid 文件必须包含不同的ID。
zkCli.sh 是ZooKeeper的命令行工具,允许用户连接到ZooKeeper集群并进行管理操作。例如,登录到集群并查看节点状态:
./zkCli.sh -server 192.168.1.1:2181
在 zkCli.sh shell中,可以使用以下命令:
ls:列出节点。stat:查看节点状态。create:创建节点。get:获取节点数据。set:设置节点数据。rm:删除节点。