kafka集群搭建

集群规划

主机名NameNode1NameNode2DataNodeZKFCJNNRSNodeManagerzookeeperkafka
node01
node02
node03
node04
node05
node06
node07
client

集群搭建

1. 下载kafka安装包

访问Apache Kafka官网下载安装包,地址:http://kafka.apache.org/

点击download按钮,进入版本选择,这里选择0.9.0.1版本的基于Scala 2.11的kafka_2.10-0.8.2.1.tgz安装包

注意不要安装0.9.0.0的版本,这个版本存在问题,并且已经在0.9.0.1中得到修复

2. 启动zookeeper集群

安装kafka集群之前,确保zookeeper服务已经正常运行,因为我们使用的是外部的zookeeper集群,偏移量offset和元数据等都交给了外部的zookeeper进行维护,所以启动kafka之前,一定要保证zookeeper的正常运行。

分别的node05,node06,node07上启动zookeeper
./zkServer.sh start

3. 解压

tar -zxvf kafka_2.10-0.8.2.1.tgz.gz kafka 

4. 修改配置文件

这里只需要修改一个配置文件

4.1 进入conf目录

[root@node01 software]# cd kafka_2.10-0.8.2.1/config/
[root@node01 config]# ll
total 36
-rwxr-xr-x. 1 root root 1199 Nov 19 17:13 consumer.properties
-rwxr-xr-x. 1 root root   58 Nov 19 17:28 kafka.log
-rwxr-xr-x. 1 root root 3846 Nov 19 17:13 log4j.properties
-rwxr-xr-x. 1 root root 2228 Nov 19 17:13 producer.properties
-rwxr-xr-x. 1 root root 5576 Nov 19 17:15 server.properties
-rwxr-xr-x. 1 root root 3325 Nov 19 17:13 test-log4j.properties
-rwxr-xr-x. 1 root root  993 Nov 19 17:13 tools-log4j.properties
-rwxr-xr-x. 1 root root 1023 Nov 19 17:13 zookeeper.properties

4.2 修改server.properties文件配置

这里需要修改三个地方,请注意仔细查找

broker.id=0    修改broker id号,注意kafka集群的broker id也是递增的形式

# A comma seperated list of directories under which to store log files
log.dirs=/kafka-logs    设置存储日志文件的目录位置

#zookeeper的节点位置
zookeeper.connect=node05:2181,node06:2181,node07:2181

5. 启动

配置修改完成后就可以启动了,但是启动命令有点长,我们可以把它设置到脚本里,并且添加到环境变量里,方便我们后续的关闭与启动。

5.1 启动脚本编写

[root@node01 bin]# vim start-kafka.sh 

/opt/software/kafka_2.10-0.8.2.1/bin/kafka-server-start.sh /opt/software/kafka_2.10-0.8.2.1/config/server.properties >> kafka.log 2>&1 &

5.2 环境变量配置

[root@node01 bin]# vim ~/.bashrc

export KAFKA_HOME=/opt/software/kafka_2.10-0.8.2.1
export PATH=$KAFKA_HOME/bin

5.3 启动

[root@node01 bin]# start-kafka.sh 

6. 验证是否正常启动

[root@node01 bin]# jps
67639 ConsoleProducer
67018 ResourceManager
68140 Jps
66607 NameNode
66911 DFSZKFailoverController
65471 Kafka

看到Kafka进程启动,说明搭建没有问题。

7. 创建Topic话题

kafka-topics.sh --create --zookeeper node05:2181,node06:2181,node07:2181 --topic "mdj" --partitions 3 --replication-factor 3

8. 查询topic的详细信息

kafka-topics.sh --describe --zookeeper node05:2181 --topic "mdj"

9. 生产数据

kafka-console-producer.sh --broker-list node01:9092,node02:9092,node03:9092 --topic "mdj"

10. 消费数据

kafka-console-consumer.sh --zookeeper node05:2181 --topic "mdj"

11. 生产消费验证

在node01上生产

[root@node01 ~]# kafka-console-producer.sh --broker-list node01:9092,node02:9092,node03:9092 --topic "mdj"[2018-11-20 11:23:23,743] WARN Property topic is not valid (kafka.utils.VerifiableProperties)
hello sh
hello bj
hello sz  

在node02上消费,可以观察到消息是同步的,说明生产和消费正常。

[root@node02 ~]# kafka-console-consumer.sh --zookeeper node05:2181 --topic "mdj"
hello sh
hello bj
hello sz

问题总结

  1. 注意启动或者搭建kafka集群前,一定要先启动zookeeper,保证zookeeper的正常运行。

  2. 注意zookeeper和kafka的端口号
    zookeeper:2181
    kafka:9092

  3. 注意broker id递增,不要配置错了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值