欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Kafka 集群安装步骤

程序员文章站 2022-06-14 09:38:35
...

准备工作:配置Java环境Zookeeper 集群部署

  1. 下载Kafka安装包
    http://kafka.apache.org/downloads.html 下 载 kafka 的 安 装 包 kafka_2.11-0.10.1.0.tgz
  2. 解压并重命名
[[email protected] local]# tar -zxvf kafka_2.11-0.10.1.0.tgz
[[email protected] local]# mv kafka_2.11-0.10.1 kafka //该重命名步骤纯属为了以后方便,可以省略 
  1. 修改服务端配置文件
[[email protected] local]# cd kafka 
[[email protected] kafka]# cd config 
[[email protected] config]# vim server.properties
broker.id=0(当前 broker 的编号) 
listeners=PLAINTEXT://192.168.85.5:9092(当前 broker 的 IP) 
zookeeper.connect=192.168.85.5:2181,192.168.85.6:2181, 
delete.topic.enable=true
  1. 修改生产者配置文件
[[email protected] config]# vim producer.properties
bootstrap.servers=192.168.85.5:9092,192.168.85.6:9092
  1. 修改消费者配置文件
[[email protected] config]# vim consumer.properties
# Zookeeper connection string
# comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"
zookeeper.connect=192.168.85.5:2181,192.168.85.6:2181
  1. 然后重复以上步骤,在其它虚拟机上安装,区别在于broker.id=0要变为 1,2......,listeners 所配置的 IP 也要进行相应的更改。
  2. 可以考虑将kafka相关命令配置到环境变量中。
  3. 进入Kafka安装目录的bin目录下,启动Kafka
[[email protected] kafka]#kafka-server-start.sh -daemon config/server.properties

由于 kafka 的启动依赖于 zookeeper,所以启动前要保证 zookeeper 启动成功

  1. Kafka 集群测试(一下皆为 bin 目录下的操作)
[[email protected] ~]# kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic test-topic
Created topic "test-topic".

a) 创建一个topic
b) 查看创建的topic

[[email protected] ~]# kafka-topics.sh -describe --zookeeper localhost:2181 --topic test-topic

c) Server1 创建一个生产者发送消息

[[email protected] ~]# kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic
[2016-10-11 20:54:07,025] aaaaaaaaaaaaaaaaa

d) Server2 创建一个消费者接收消息

[[email protected] ~]# kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic
aaaaaaaaaaaaaaaaa

至此,Kafka 集群搭建成功。

  1. 关闭 Kafka
    每一台机器上执行如下命令
[[email protected] ~]# kafka-server-stop.sh

关闭后使用 jps 命令查看有无 Kafka 进程存在
若自带脚本无法关闭 kafka,
修改 kafka-server-stop.sh 中的指令如下

PIDS=$(ps ax | grep -i 'kafka' | grep java | grep -v grep | awk '{print $1}')

  或

PIDS=$(jps -l | grep 'kafka\.Kafka' | awk '{print $1}') 
if [ -z "$PIDS" ]; then
    echo "No kafka server to stop"
    exit 1 
else
    kill -s TERM $PIDS 
fi
  • 遇到的错误:
WARN Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

-----解决方案:

$ vi /etc/hosts
将`192.168.31.108 hostname`改成`192.168.31.108 localhost hostname`
  • 注: 不修改producer.properties和consumer.properties亦可