Kafka分布式安装与部署
目录
运行kafka需要开启zookeeper
zookeeper安装与部署
虚拟机配置
主机 | ip |
---|---|
master | 192.168.68.12 |
slave1 | 192.168.68.13 |
slave2 | 192.168.68.14 |
安装需要 | 安装路径 |
---|---|
zookeeper | /export/software/zookeeper |
kafka | /export/software/kafka |
解压缩
压缩包在官网可获得
kafka安装包
tar zxvf kafka_2.11-2.0.0.tgz
#将解压后的内容改名并移动到指定目录
mv kafka_2.11-2.0.0 kafka
mv kafka /export/software/
配置环境变量
export ZK_HOME=/export/software/zookeeper
export KAFKA_HOME=/export/software/kafka
export PATH=$ZK_HOME/bin:$KAFKA_HOME/bin:$PATH
刷新变量
source /etc/profile
配置文件
- broker的编号,如果集群中有多个broker,则每个broker的编号需要设置的不同
server.properties:
broker.id=0
port=9092
# 存放消息日志文件的地址
log.dir=/tmp-kafka-logs
host.name=master
server-1.properties:
broker.id=1
port=9093
# 存放消息日志文件的地址
log.dir=/tmp/kafka-logs-1
host.name=slave1
Server-2.properties:
broker.id=2
port=9094
# 存放消息日志文件的地址
log.dir=/tmp/kafka-logs-2
host.name=slave2
- broker对外提供的服务入口地址
server.properties:
listeners=PLAINTEXT://master:9092
advertised.listeners=PLAINTEXT://master:9092
server-1.properties:
listeners=PLAINTEXT://slave1:9093
advertised.listeners=PLAINTEXT://slave1:9093
server-2.properties:
listeners=PLAINTEXT://slave2:9094
advertised.listeners=PLAINTEXT://slave2:9094
- Kafka所需的ZooKeeper集群地址
zookeeper.connect=master:2181,slave1:2181,slave1:2181/kafka
在多个节点启动KAFKA命令
#在每个节点的$KAFKA_HOME 目录下执行
#master节点
bin/kafka-server-start.sh config/server.properties
#slave1节点
bin/kafka-server-start.sh config/server-1.properties
#slave2节点
bin/kafka-server-start.sh config/server-2.properties
在xshell中新开一个主机的窗口并jps,如果进程中有kafka,说明启动成功
kafka生产者消费者实例
创建一个名为itcasttopic的主题,命令如下:
$ kafka-topics.sh --create \
--topic lxy1 \
--partition 3 \
--replication-factor 2 \
--zookeeper master:2181,slave1:2181,salve2:2181/kafka
创建成功后,就可以创建生产者生产消息
$ kafka-console-producer.sh \
--broker-list master:9092,sle1:9093,slave2:9094 \
--topic lxy1
创建消费者信息
创建了生产者之后,可以看到光标保持在等待输入状态,切换至slave1来创建消费者
$ kafka-console-consumer.sh \
--from-beginning --topic lxy1 \
--bootstrap-server master:9092,slave1:9093,slave2:9094
传送生产信息
上述命令执行完后,依然没有任何消息输出。此时返回master,输入任意数据,会发送到slave1终端。
报错信息解决
- 创建主题时Replication factor: 2 larger than available brokers: 0.
方法1:
检查zookeeper和kafka进程是否挂掉
方法2:
kafka开了几台代表你的broker副本有几个,修改–replication-factor的个数
方法3:
–zookeeper后面的参数输入时要与server.properties里设置的一样