第 4 章 运行多节点环境
多节点环境由多个节点组成,它们作为集群运行。您可以有一个复制 ZooKeeper 节点和代理节点集群,并在代理间复制主题。
多节点环境提供稳定性和可用性。
4.1. 运行多节点 ZooKeeper 集群
将 ZooKeeper 配置为多节点集群。
先决条件
- Apache Kafka 的流安装在用作 ZooKeeper 集群节点的所有主机上。
运行集群
- 在 - /var/lib/zookeeper/中创建- myid文件。为第一个 ZooKeeper 节点输入 ID- 1,为第二个 ZooKeeper 节点输入- 2,以此类推。- su - kafka echo "<NodeID>" > /var/lib/zookeeper/myid - su - kafka echo "<NodeID>" > /var/lib/zookeeper/myid- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 例如: - su - kafka echo "1" > /var/lib/zookeeper/myid - su - kafka echo "1" > /var/lib/zookeeper/myid- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 编辑 ZooKeeper - /opt/kafka/config/zookeeper.properties配置文件:- 
								将选项 dataDir设置为/var/lib/zookeeper/。
- 
								配置 initLimit和syncLimit选项。
- 
								配置 reconfigEnabled和standaloneEnabled选项。
- 添加所有 ZooKeeper 节点的列表。该列表还应包含当前的节点。 - 具有五个成员的 ZooKeeper 集群节点配置示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 
								将选项 
- 使用默认配置文件启动 ZooKeeper。 - su - kafka /opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties - su - kafka /opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 验证 ZooKeeper 是否正在运行。 - jcmd | grep zookeeper - jcmd | grep zookeeper- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 返回: - number org.apache.zookeeper.server.quorum.QuorumPeerMain /opt/kafka/config/zookeeper.properties - number org.apache.zookeeper.server.quorum.QuorumPeerMain /opt/kafka/config/zookeeper.properties- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在集群的所有节点上重复此步骤。
- 使用 - ncat实用程序向每个节点发送- stat命令,以验证所有节点是否都是集群的成员。- 使用 ncat stat 检查节点状态 - echo stat | ncat localhost 2181 - echo stat | ncat localhost 2181- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 要使用四个字母单词命令,如 - stat,您需要在- zookeeper.properties中指定- 4lw.commands.whitelistprerequisites。- 输出显示节点是 - 领导机或后续- 。- ncat 命令的输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow