zookeeper+kafka集群部署

有三台linux机器:

       机器IP                   HostName

    192.168.137.164      server1
    192.168.137.128      server2
    192.168.137.131      server3

zookeeper版本:zookeeper-3.4.8.tar.gz

kafka版本:kafka_2.11-0.10.2.1.tgz

zookeeper集群部署

1、将下载的zookeeper解压到/opt/soft目录下

tar-zxvf zookeeper-3.4.8.tar.gz  -C/opt/soft

2、进入zookeeper的conf目录

cd /opt/soft/zookeeper-3.4.8/conf

3、复制一份zoo_sample.cfg  zoo.cfg

cp zoo_sample.cfg zoo.cfg

4、创建data目录

mkdir/opt/soft/zookeeper-3.4.8/data

5、修改zoo.cfg

vizoo.cfg

修改:

dataDir=/opt/soft/zookeeper-3.4.8/data

新增:

server.1=server1:2888:3888

server.2=server2:2888:3888

server.3=server3:2888:3888

6、在data目录中创建myid并输入1

echo'0'>myid

7、scp zookeeper到其他机器

scp-r zookeeper-3.4.8 root@server2:/opt/soft/

scp-r zookeeper-3.4.8 root@server3:/opt/soft/

8、其他机器的data目录下的myid也相应更改,相应的server2为2,server3为3。

9、检查集群

分别在三台机器上执行:zkServer.sh start。

检查ZooKeeper状态:zkServer.sh status,应该是一个leader,两个follower。

使用jps检查三个节点是否都有QuromPeerMain进程。

kafka集群部署

kafka部署在上面的zookeeper集群上。

1、将下载的kafka解压到/opt/soft目录下

tar-zxvf kafka_2.11-0.10.2.1.tgz  -C/opt/soft

2、进入kafka/libs目录

cd/opt/soft/kafka_2.11-0.10.2.1/libs

3、从zookeeper中复制zookeeper-3.4.8.jar

cp /opt/soft/zookeeper-3.4.8/zookeeper-3.4.8.jar  ./

4、删除zookeeper-3.4.9.jar

rmzookeeper-3.4.9.jar

5、进入config目录

cdconfig/

6、创建kafka-logs目录

/opt/soft/kafka_2.11-0.10.2.1/kafka-logs

7、编辑server.properties

vi server.properties

broker.id:每台机器依次增长的整数,1、2、3,集群中Broker的唯一id。(和安装zookeeper的id一一对应)。

如果 delete.topic.enable 参数没有设置为true ,则删除topic 时,不会在zookeeper 上同步删除。

broker.id=1

delete.topic.enable=true

log.dirs=/opt/soft/kafka_2.11-0.10.2.1/kafka-logs

zookeeper.connect=server1:2181,server2:2181,server3:2181

# 192.168.137.164为server1的IP其他机器中需要自行修改。

listeners=PLAINTEXT://192.168.137.164:9092

advertised.listeners=PLAINTEXT://192.168.137.164:9092

8、scp到其他机器并按照规则更贵server.properties

scp-r /opt/soft/kafka_2.11-0.10.2.1/ server2:/opt/soft

scp-r /opt/soft/kafka_2.11-0.10.2.1/ server3:/opt/soft

9、依次在每台机器上启动kafka(在config/server.properties中设置zookeeper.connect参数,使得启动使用之前部署的zookeeper)

bin/kafka-server-start.sh  config/server.properties

启动成功会打印出如下信息表示启动成功。

INFO[Kafka Server 1], started (kafka.server.KafkaServer)

启动成功后查看jps进程发现出现kafka进程。

10、检查集群

创建topic

bin/kafka-topics.sh--zookeeper server1:2181,server2:2181,server3:2181 --topic TestTopic--replication-factor 1 --partitions 1 –create

创建producer

bin/kafka-console-producer.sh--broker-list server1:9092,server2:9092,server3:9092 --topic TestTopic

创建consumer

bin/kafka-console-consumer.sh--zookeeper server1:2181,server2:2181,server3:2181 --topic TestTopic--from-beginning

在生产端输入信息能够在消费端打印出来,证明已经没问题。

删除 topic

bin/kafka-topics.sh--delete --zookeeper server1:2181,server2:2181,server3:2181 --topic TestTopic

如果 delete.topic.enable 参数没有设置为true ,则删除topic 时,不会在zookeeper上同步删除。

停止kafka 服务的命令

bin/kafka-server-stop.sh

猜你喜欢

转载自blog.csdn.net/u014439239/article/details/78465559