只是简单记录搭建的过程,有时间再详细说明。
前置环境
- 准备4台虚拟机(node(01~04))
- node02、node03、node04上已经安装了zookeeper集群
- node01、node02、node03准备安装kafka集群
kafka集群安装
下载kafka
[root@node01 soft]# wget https://www.apache.org/dyn/closer.cgi?path=/kafka/2.1.0/kafka_2.12-2.1.0.tgz
[root@node01 soft]# tar -zxvf kafka_2.12-2.1.0.tgz
[root@node01 soft]# mv kafka_2.12-2.1.0 /opt/bigdata/
[root@node01 soft]#
修改配置文件
修改配置/opt/bigdata/kafka/config/server.properties
每个kafka实例单独配置其独有的本地broker.id 和listeners
[root@node01 soft]# vi /opt/bigdata/kafka/config/server.properties
broker.id=0
listeners=PLAINTEXT:node01:9092
log.dirs=/var/kafka/data
zookeeper.connect=node02:2181,node03:2181,node04:2181/kafka
[root@node01 soft]#
[root@node01 soft]#
[root@node01 soft]#
配置环境变量
[root@node01 soft]# vi /etc/profile
export JAVA_HOME=/usr/java/default
export ZOOKEEPER_HOME=/opt/mmm/zk/apache-zookeeper-3.7.0-bin
export KAFKA_HOME=/opt/bigdata/kafka_2.12-2.1.0
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$KAFKA_HOME/bin
[root@node01 soft]# source /etc/profile
分发kafka安装文件到其他节点
[root@node01 soft]# cd /opt/bigdata
[root@node01 bigdata]# scp -r kafka_2.12-2.1.0 node02:`pwd`
[root@node01 bigdata]# scp -r kafka_2.12-2.1.0 node03:`pwd`
修改node(02~03)配置文件
[root@node02 ~]# vi /opt/bigdata/kafka/config/server.properties
broker.id=1
listeners=PLAINTEXT:node02:9092
log.dirs=/var/kafka/data
zookeeper.connect=node02:2181,node03:2181,node04:2181/kafka
[root@node03 ~]# vi /opt/bigdata/kafka/config/server.properties
broker.id=2
listeners=PLAINTEXT:node03:9092
log.dirs=/var/kafka/data
zookeeper.connect=node02:2181,node03:2181,node04:2181/kafka
配置环境变量
[root@node02 ~]# vi /etc/profile
export JAVA_HOME=/usr/java/default
export ZOOKEEPER_HOME=/opt/mmm/zk/apache-zookeeper-3.7.0-bin
export KAFKA_HOME=/opt/bigdata/kafka_2.12-2.1.0
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$KAFKA_HOME/bin
[root@node02 ~]# source /etc/profile
[root@node03 ~]# vi /etc/profile
export JAVA_HOME=/usr/java/default
export ZOOKEEPER_HOME=/opt/mmm/zk/apache-zookeeper-3.7.0-bin
export KAFKA_HOME=/opt/bigdata/kafka_2.12-2.1.0
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$KAFKA_HOME/bin
[root@node03 ~]# source /etc/profile
使用kafka
启动kafka
[root@node01 ~]# kafka-server-start.sh /opt/bigdata/kafka/config/server.properties
[root@node02 ~]# kafka-server-start.sh /opt/bigdata/kafka/config/server.properties
[root@node03 ~]# kafka-server-start.sh /opt/bigdata/kafka/config/server.properties
创建topic
生产者消费者
生产者生产消息,消费者消费消息
- 启动一个生产者,启动一个消费者
- 生产者生产消息后,在消费者中消费到到了消息
- 在启动一个消费者,生产者连续生产消息1,2,3,4,5,6,7,8
- 两个消费者中均衡的消费消息,一个消费者消费1,3,5,7;另一个消费者消费2,4,6,8
生产者生产消息
[root@node01 conf]# kafka-console-producer.sh --broker-list node02:9092,node03:9092 --topic hello
hello1
hello2
1
2
3
4
5
6
7
8
消费者消费消息
[root@node01 ~]# kafka-console-consumer.sh --bootstrap-server node02:9092,node03:9092 --topic hello --group mmm
hello1
hello2
1
3
5
7
[root@node03 ~]# kafka-console-consumer.sh --bootstrap-server node02:9092,node03:9092 --topic hello --group mmm
2
4
6
8