1、准备3台linux主机,安装jdk环境
2、首先安装zookeeper集群,可通过 yum -y install mesosphere-zookeeper来安装
3、这样会生成zookeeper的服务脚本
4、编辑zoo.cfg文件
5、zk1到3为3台主机的主机名,这里如果用主机名,需要在hosts文件里给主机名做解析
6、通过“scp -r ”把配置好的zookeeper目录copy到其他两台server上
7、在配置集群的server中,分别找到zoo.cfg配置的dataDir目录,在目录下面添加一个“myid”的文件,把zoo.cfg配置的server list中的id值写入并保存:
8、分别启动三台zookeeper,并检查集群状态:
9、mode显示了所在server在集群中所扮演的角色,每个server的角色不是固定的,leader是通过zookeeper的Fast Leader 选举算法产生,三台zookeeper集群就这么搭建好了,大家可以根据自己实际的项目需要再做一些详细的配置。
10、开始搭建kafka集群,下载kafka : http://kafka.apache.org/downloads.html (最好下载scala预编译好的package,例如我下的是kafka_2.10-0.8.1.1.tgz,意思就是用scala 2.10预编译好的0.8.1.1版本)
11、使用 " tar -xzvf kafka_2.10-0.8.1.1.tgz "来 解压安装包
12、修改配置文件 /config/server.properties 就可以了,需要配置的属性有:broker.id(标示当前server在集群中的id,从0开始),port,host.name(当前的server host name),zookeeper.connect(连接的zookeeper集群),log.dirs(log的存储目录,记得对应的去建立这个目录)等,其他的一些配置可以看相应的注释:
13、通过“scp -r ”把配置好的kafka目录copy到其他几台server上
14、修改每台server对应的配置文件,主要是修改其中的broker.id 和 host.name 属性,broker.id从0开始递增,每台server必须唯一
15、 先启动zookeeper集群,再启动kakfa集群,kafka启动命令: sudo nohup ./bin/kafka-server-start.sh config/server.properties &
16、集群启动成功后,可以试着创建topic,在一台server上创建producer,另外一台创建consumer,从producer上发送信息,看consumer是否能接收到,以验证集群对否成功。
17、创建topic: sudo ./bin/kafka-topics.sh -zookeeper server1:2181,server2:2181,server3:2181 -topic test -replication-factor 2 -partitions 5 -create
查看topic:sudo ./bin/kafka-topics.sh -zookeeper server1:2181,server2:2181,server3:2181 -list
创建producer:sudo ./bin/kafka-console-producer.sh -broker-list zk1:9092,zk2:9092,zk3:9092 -topic test
创建consumer:sudo ./bin/kafka-console-consumer.sh -zookeeper server1:2181,server2:2181,server3:2181 - from-beginning -topic test
18、查看结果:
producer:
consumer: