版本:kafka_2.11-1.1.1.tgz
准备:
下载安装包:http://kafka.apache.org/downloads
虚拟机,集群安装准备三个节点
JDK1.8
zookeeper-3.4.14
一、单点安装
1.上传压缩包至虚拟机
scp kafka_2.11-1.1.1.tgz hadoop@hadoop001:/home/hadoop/software
2.解压
tar -zxvf kafka_2.11-1.1.1.tgz
3.移动解压文件到安装目录
mv kafka_2.11-1.1.1 /home/hadoop/app/
我是把所有的服务都部署在home目录下
4.编辑服务配置文件
vim config/server.properties
5.修改配置文件
#这里需要指定对外的服务地址,我自己设置了host,所以直接用了域名
listeners=PLAINTEXT://hadoop000:9092
#zookeeper服务是一个三节点的集群
zookeeper.connect=hadoop000:2181,hadoop001:2181,hadoop002:2181
在单点部署中其他的属性都用默认值就可以。
6.启动kafka
./bin/kafka-server-start.sh config/server.properties
#后台启动
./bin/kafka-server-start.sh config/server.properties &
./bin/kafka-server-start.sh -daemon config/server.properties
7.验证是否启动成功
jps
45977 Kafka
8.验证服务
创建topic
bin/kafka-topics.sh --zookeeper hadoop000:2181 --create --topic test --partitions 4 --replication-factor 1
这里的--zookeeper,--partitions,--replication-factor都是必须要有的,同时因为是单点服务,所以replication-factor的参数值只能是1
启动consumer消费者
bin/kafka-console-consumer.sh --bootstrap-server hadoop000:9092 --topic test
启动生产者
bin/kafka-console-producer.sh --broker-list hadoop000:9092 --topic test
在生产者界面输入hello, world!,查看消息是否被消费者消费。
二、集群安装
通过单点安装,kafka服务已经可以使用了,现在在单点安装的基础上进行集群安装
1.将单点安装的kafka文件复制到其他两台服务器上
scp -r kafka_2.11-1.1.1/ hadoop@hadoop001:/home/hadoop/app
scp -r kafka_2.11-1.1.1/ hadoop@hadoop002:/home/hadoop/app
2.修改3台kafka的配置文件
hadoop000
broker.id=0
listeners=PLAINTEXT://hadoop000:9092
hadoop001
broker.id=1
listeners=PLAINTEXT://hadoop001:9092
hadoop002
broker.id=2
listeners=PLAINTEXT://hadoop002:9092
3.添加环境变量
vim ~/.bash_profile
export KAFKA_HOME=/home/hadoop/app/kafka_2.11-1.1.1
export PATH=$KAFKA_HOME/bin:$PATH
source ~/.bash_profile
4.启动kafka服务
./bin/kafka-server-start.sh config/server.properties
#后台启动
./bin/kafka-server-start.sh config/server.properties &
./bin/kafka-server-start.sh -daemon config/server.properties
5.创建topic
bin/kafka-topics.sh --zookeeper hadoop000:2181,hadoop001:2181,hadoop002:2181 --create --topic tests --partitions 4 --replication-factor 3
6.在hadoop000,hadoop001,hadoop002服务器上启动消费者
bin/kafka-console-consumer.sh --bootstrap-server hadoop000:9092,hadoop001:9092,hadoop002:9092 --topic tests
7.在hadoop000,hadoop001,hadoop002上启动生产者
bin/kafka-console-producer.sh --broker-list hadoop000:9092,hadoop001:9092,hadoop002:9092 --topic tests