1、准备3台linux主机,安装jdk环境

2、首先安装zookeeper集群,可通过 yum -y install mesosphere-zookeeper来安装

3、这样会生成zookeeper的服务脚本

4、编辑zoo.cfg文件

      image2016-8-4%2016%3A48%3A41.png?version

5、zk1到3为3台主机的主机名,这里如果用主机名,需要在hosts文件里给主机名做解析

      image2016-8-4%2016%3A50%3A20.png?version

6、通过“scp -r ”把配置好的zookeeper目录copy到其他两台server上

7、在配置集群的server中,分别找到zoo.cfg配置的dataDir目录,在目录下面添加一个“myid”的文件,把zoo.cfg配置的server list中的id值写入并保存:

     image2016-8-4%2016%3A57%3A12.png?version

8、分别启动三台zookeeper,并检查集群状态:

     image2016-8-4%2016%3A58%3A2.png?version=

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的存储目录,记得对应的去建立这个目录)等,其他的一些配置可以看相应的注释:

       image2016-8-4%2017%3A1%3A13.png?version=

13、通过“scp -r ”把配置好的kafka目录copy到其他几台server上

14、修改每台server对应的配置文件,主要是修改其中的broker.id 和 host.name 属性,broker.id从0开始递增,每台server必须唯一

       FbqY3qv.png!web

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: image2016-8-4%2017%3A9%3A15.png?version=

      consumer:image2016-8-4%2017%3A8%3A33.png?version=