为了安装过程对一些参数的理解,我先在这里提一下kafka一些重点概念,topic,broker,producer,consumer,message,partition,依赖于zookeeper,
kafka是一种消息队列,他的服务端是由若干个broker组成的,broker会向zookeeper,producer生成者对应一个topic主题生产的数据分成多个partition分区放在不同的broker中,
每个分区以message的形式存储对应的消息数据(包括key,value,offset,inserttime),另一方面就是consumer消费者要向消息队列拉数据的时候首先是通过访问zookeeper获取
一些元数据比如offset到对应的消息分区对应的读的地址继续读下去。我简单的画了个图,
接下来开始安装步骤了
1.解压
sudo tar -zxvf kafka_2.11-0.10.0.0.tgz[压缩包路径] -C /opt/modules/[解压的目标路径]
2.在kafka的根目录下新建个文件夹用于存储一些日志文件
mkdir kafka-logs
2.配置conf/server.properties文件
broker.id=0 log.dirs=/opt/modules/kafka_2.11-0.10.0.0/kafka-logs num.partitions=2 zookeeper.connect=hadoop-senior01.kyhoon.com:2181 ,hadoop-senior02.kyhoon.com:2181
3.分发到另外一台服务器(这里只用了两台虚拟机服务器集群)并修改配置文件中的broker.id
scp -r ./kafka_2.11-0.10.0.0/ root@hadoop-senior02.kyhoon.com:/opt/modules broker.id =1
4.启动集群的Zookeeper
bin/zkServer.sh start
5.启动集群的kafka服务
nohup bin/kafka-server-start.sh config/server.properties &
6.创建topic
bin/kafka-topics.sh --zookeeper hadoop-senior01.kyhoon.com:2181 ,hadoop-senior02.kyhoon.com:2181 --topic test --replication-factor 1 --partitions 2 --create
7.查看topic
bin/kafka-topics.sh --zookeeper hadoop-senior01.kyhoon.com:2181 ,hadoop-senior02.kyhoon.com:2181 --list
8.创建生产者
bin/kafka-console-producer.sh --broker-list hadoop-senior01.kyhoon.com:9092 ,hadoop-senior02.kyhoon.com:9092 --topic test
9.创建消费者
bin/kafka-console-consumer.sh --zookeeper hadoop-senior01.kyhoon.com:2181 ,hadoop-senior02.kyhoon.com:2181 --topic test --from-beginning
10.在生产者端输入消息回车,在消费者端看到对应的消息则证明安装成功了
kyhoon