1、前提条件
????????1、部署Kafka集群搭建需要服务器至少3台,奇数台
????????2、Kafka的安装需要java环境,jdk1.8
????????3、Kafka安装包版本:kafka_2.11-0.10.0.1.tar.gz
????????4、假设3台服务器分别为:kafka1、kafka2、kafka3
2、Zookeeper集群搭建
? ? ? ? 1、将安装包kafka_2.11-0.10.0.1.tar.gz上传到/opt 目录下
? ? ? ? 2、解压:tar -zxvf kafka_2.11-0.10.0.1.tar.gz
? ? ? ? 3、创建zookeeper目录:mkdir zk_kfk_data
? ? ? ? 4、进入目录:cd /opt/kafka_2.11-0.10.0.1/
? ? ? ? 5、修改zookeeper.properties文件
????????????????命令:cd /opt/kafka_2.11-0.10.0.1/config
? ? ? ? ????????三台机器上的zookeeper.properties文件配置相同,data.Dir 为zk的数据目录,server.1、server.2、server.3 为集群信息。
????????????????2888端口号是zookeeper服务之间通信的端口
????????????????3888端口是zookeeper与其他应用程序通信的端口。
????????????????tickTime:CS通信心跳数
????????????????Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
?????? ?????????????tickTime:该参数用来定义心跳的间隔时间,zookeeper的客户端和服务端之间也有和web开发里类似的session的概念,而zookeeper里最小的session过期时间就是tickTime的两倍。
?????????????????initLimit:LF初始通信时限
集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)
????????????????syncLimit:LF同步通信时限
????????????????集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)
6、创建myid文件
????????进入/opt/kafka_2.11-0.10.0.1/zk_kfk_data目录,创建myid文件,将三台服务器上的myid文件分别写入1,2,3。myid是zookeeper集群用来发现彼此的标识,必须创建,且不能相同。
7、???????执行启动zookeeper命令:
?nohup /opt/kafka_2.11-0.10.0.1/bin/zookeeper-server-start.sh /opt/kafka_2.11-0.10.0.1/config/zookeeper.properties &>> /opt/kafka_2.11-0.10.0.1/zookeeper.log &
????????三台机器都执行启动命令,查看zookeeper的日志文件,没有报错就说明zookeeper集群启动成功了。
8、Kafka集群搭建 ? ? ? ? 1、修改server.properties配置文件 ? ? ? ? ? ? ? ? 命令:cd /opt/kafka_2.11-0.10.0.1/config ? ? ? ? 2、创建kafka日志数据目录:mkdir kafka-logs-1 ? ? ? ? ????????命令:cd /opt/kafka_2.11-0.10.0.1/
? ? ? ? 3、参数说明:
????????????????broker.id?0?#broker.id的值三个节点要配置不同的值,分别配置为0,1,2
advertised.host.name?kafka1.sd.cn?#在hosts文件配置kafka1域名,另外两台分别为:kafka2.sd.cn,kafka3.sd.cn
????????????????advertised.port?9092?#默认端口,不需要改
????????????????log.dirs?/opt/kafka_2.11-0.10.0.1/kafka-logs-1?#Kafka日志数据目录
????????????????num.partitions?40?#分区数,根据自行修改
????????????????log.retention.hours?#24?#日志保存时间
????????????????zookeeper.connect??kafka1.sd.cn:3181,kafka2.sd.cn:3181,kafka3.sd.cn:3181?#zookeeper连接地址,多个以逗号隔开
9、启动kafka集群: ????????????????nohup /opt/kafka_2.11-0.10.0.1/bin/kafka-server-start.sh /opt/kafka_2.11-0.10.0.1/config/server.properties &>> /opt/kafka_2.11-0.10.0.1/kafka.log &
10、测试Kafka集群 ? ? ? ? 1、创建topic:test ????????????????/opt/kafka_2.11-0.10.0.1/bin/kafktopics.sh --create --zookeeper kafka1.sd.cn:3181,kafka2.sd.cn:3181,kafka3.sd.cn:3181 --replication-factor 1 --partitions 1 --topic test
? ? ? ? 2、列出已创建的topic列表 ????????????????/opt/kafka_2.11-0.10.0.1/bin/kafka-topics.sh --list --zookeeper localhost:3181
????????3、模拟客户端去发送消息 ????????????????/opt/kafka_2.11-0.10.0.1/bin/kafka-console-producer.sh --broker-list kafka1.sd.cn:9092,kafka2.sd.cn:9092,kafka3.sd.cn:9092 --topic test
? ? ? ? 4、模拟客户端去接受消息 /opt/kafka_2.11-0.10.0.1/bin/kafka-console-consumer.sh --zookeeper kafka1.sd.cn:3181,kafka2.sd.cn:3181,kafka3.sd.cn:3181 --from-beginning --topic test
?????????????
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。 |