Write by lyc at 2020-6-18
一、zookeeper 集群部署
1.拷贝多个zk目录
1 2 3 4 5 6 7 8
| $ ls -ld /usr/local/zoo* drwxr-xr-x 7 root root 136 Jun 17 18:59 /usr/local/zookeeper1 drwxr-xr-x 7 root root 136 Jun 17 18:59 /usr/local/zookeeper2 drwxr-xr-x 7 root root 136 Jun 17 18:59 /usr/local/zookeeper3
$ mkdir -p /data/zookeeper{1,2,3}/{data,logs}
|
2.分别配置每个zk
zoo.cfg
zk_IP:leader间通:leader间选举
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| $ egrep -v "#|^$" /usr/local/zookeeper1/conf/zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=/data/zookeeper1/data dataLogDir=/data/zookeeper1/logs clientPort=2181 server.1=10.19.138.40:2888:3888 server.2=10.19.138.40:2889:3889 server.3=10.19.138.40:2890:3890
$ egrep -v "#|^$" /usr/local/zookeeper2/conf/zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=/data/zookeeper2/data dataLogDir=/data/zookeeper2/logs clientPort=2182 server.1=10.19.138.40:2888:3888 server.2=10.19.138.40:2889:3889 server.3=10.19.138.40:2890:3890
$ egrep -v "#|^$" /usr/local/zookeeper3/conf/zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=/data/zookeeper3/data dataLogDir=/data/zookeeper3/logs clientPort=2183 server.1=10.19.138.40:2888:3888 server.2=10.19.138.40:2889:3889 server.3=10.19.138.40:2890:3890
|
myid
1 2 3
| $ echo 1 > /data/zookeeper1/data/myid $ echo 2 > /data/zookeeper2/data/myid $ echo 3 > /data/zookeeper3/data/myid
|
3.zk 启动
1 2 3
| $ /usr/local/zookeeper1/bin/zkServer.sh start $ /usr/local/zookeeper2/bin/zkServer.sh start $ /usr/local/zookeeper3/bin/zkServer.sh start
|
二、kafka 集群部署
1.拷贝多个kafka目录
1 2 3 4 5 6 7 8
| $ ls -ld /usr/local/ka* drwxr-xr-x 7 root root 94 Jun 17 19:05 /usr/local/kafka1 drwxr-xr-x 7 root root 94 Jun 17 19:05 /usr/local/kafka2 drwxr-xr-x 7 root root 94 Jun 17 19:05 /usr/local/kafka3
mkdir -p /data/kafka{1,2,3}/{data,logs}
|
2.分别配置每个kafka
server.properties
其他相同的参数省略
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| $ egrep -v "#|^$" /usr/local/kafka1/config/server.properties broker.id=1 listeners=PLAINTEXT://10.19.138.40:9092 log.dirs=/data/kafka1/logs zookeeper.connect=10.19.138.40:2181,10.19.138.40:2182,10.19.138.40:2183
$ egrep -v "#|^$" /usr/local/kafka2/config/server.properties broker.id=2 listeners=PLAINTEXT://10.19.138.40:9093 log.dirs=/data/kafka2/logs zookeeper.connect=10.19.138.40:2181,10.19.138.40:2182,10.19.138.40:2183
$ egrep -v "#|^$" /usr/local/kafka3/config/server.properties broker.id=3 listeners=PLAINTEXT://10.19.138.40:9094 log.dirs=/data/kafka3/logs zookeeper.connect=10.19.138.40:2181,10.19.138.40:2182,10.19.138.40:2183 ````
```bash $ /usr/local/kafka1/bin/kafka-server-start.sh /usr/local/kafka1/config/server.properties & $ /usr/local/kafka2/bin/kafka-server-start.sh /usr/local/kafka2/config/server.properties & $ /usr/local/kafka3/bin/kafka-server-start.sh /usr/local/kafka3/config/server.properties &
|
三、验证
1.创建Topic
1 2 3 4 5 6
| ./kafka-topics.sh \ --create \ --zookeeper 10.19.138.40:2181,10.19.138.40:2182,10.19.138.40:2183 \ --replication-factor 3 \ --partitions 5 \ --topic TOPIC_NAME
|
2.查看Topic列表
1 2
| $ ./kafka-topics.sh --list \ --zookeeper 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
|
3.查看具体某个Topic信息
1 2 3 4 5 6 7 8 9
| $ ./kafka-topics.sh --describe \ --zookeeper 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 \ --topic hello2 Topic: hello2 PartitionCount: 5 ReplicationFactor: 3 Configs: Topic: hello2 Partition: 0 Leader: 1 Replicas: 1,3,2 Isr: 1,3,2 Topic: hello2 Partition: 1 Leader: 2 Replicas: 2,1,3 Isr: 2,1,3 Topic: hello2 Partition: 2 Leader: 3 Replicas: 3,2,1 Isr: 3,2,1 Topic: hello2 Partition: 3 Leader: 1 Replicas: 1,2,3 Isr: 1,2,3 Topic: hello2 Partition: 4 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1
|
4.测试:生成数据/发布消息
1 2 3
| ./kafka-console-producer.sh \ --broker-list 10.19.138.40:9092,10.19.138.40:9093,10.19.138.40:9094 \ --topic TOPIC_NAME
|
5.测试:消费数据/订阅消息
1 2 3 4
| ./kafka-console-consumer.sh \ --bootstrap-server 10.19.138.40:9092,10.19.138.40:9093,10.19.138.40:9094 \ --topic TOPIC_NAME \ --from-beginning
|