Kafka分布式集群部署
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。
1.下载Kafka并安装
1)下载Apache版本的Kafka。
2)下载Cloudera版本的Kafka。
2.Kafka集群配置
1)配置server.properties文件
vi kafka_2.11-2.4.0
#节点唯一标识
broker.id=0
#默认端口号
port=9092
#主机名绑定
host.name=bigdata-01
#Kafka数据目录
log.dirs=/usr/bigdata/kafka_2.11-2.4.0/kafka-logs
#配置Zookeeper
zookeeper.connect=bigdata-01:2181,bigdata-02:2181,bigdata-03:2181
2)配置zookeeper.properties文件
vi zookeeper.properties
#Zookeeper的数据存储路径与Zookeeper集群配置保持一致
dataDir=/usr/bigdata/zookeeper-3.4.14/zkData
3)配置consumer.properties文件
#配置Zookeeper地址
zookeeper.connect=bigdata01:2181,bigdata02:2181,bigdata03:2181
bootstrap.servers=bigdata01:9092,bigdata02:9092,bigdata03:9092
4)配置producer.properties文件
#配置Kafka集群地址
metadata.broker.list=bigdata01:9092,bigdata02:9092,bigdata03:9092
bootstrap.servers=bigdata01:9092,bigdata02:9092,bigdata03:9092
5)Kafka分发到其他节点
scp -r /usr/bigdata/kafka_2.11-2.4.0/config root@bigdata-02:/usr/bigdata/kafka_2.11-2.4.0/config
scp -r /usr/bigdata/kafka_2.11-2.4.0/config bigdata-03:/usr/bigdata/kafka_2.11-2.4.0/config
6)修改另外两个节点的server.properties
#bigdata-02节点
broker.id=1
host.name=bigdata-02
#bigdata-03节点
broker.id=2
host.name=bigdata-03
3.启动Kafka集群并进行测试
1)各个节点启动Zookeeper集群
bin/zkServer.sh start
2)各个节点启动Kafka集群
bin/kafka-server-start.sh config/server.properties &
3)创建topic
bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic test --replication-factor 1 --partitions 1
4)查看topic列表
bin/kafka-topics.sh --zookeeper localhost:2181 --list
5)生产者生成数据
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
6)消费者消费数据
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning