Kafka 集群安装步骤

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

  1. 下载Kafka安装包
    http://kafka.apache.org/downloads.html 下 载 kafka 的 安 装 包 kafka_2.11-0.10.1.0.tgz
  2. 解压并重命名
[root@Server1 local]# tar -zxvf kafka_2.11-0.10.1.0.tgz
[root@Server1 local]# mv kafka_2.11-0.10.1 kafka //该重命名步骤纯属为了以后方便,可以省略 
  1. 修改服务端配置文件
[root@Server1 local]# cd kafka 
[root@Server1 kafka]# cd config 
[root@Server1 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. 修改生产者配置文件
[root@Server1 config]# vim producer.properties
bootstrap.servers=192.168.85.5:9092,192.168.85.6:9092
  1. 修改消费者配置文件
[root@Server1 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
[root@Server1 kafka]#kafka-server-start.sh -daemon config/server.properties

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

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

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

[root@Server1 ~]# kafka-topics.sh -describe --zookeeper localhost:2181 --topic test-topic

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

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

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

[root@Server2 ~]# kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic
aaaaaaaaaaaaaaaaa

至此,Kafka 集群搭建成功。

  1. 关闭 Kafka
    每一台机器上执行如下命令
[root@Server2 ~]# 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亦可
    原文作者:舰长同学
    原文地址: https://www.jianshu.com/p/475d02c76ba7
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞