准备工作:

1. 准备3台机器,IP地址分别为:192.168.0.10,192.168.0.11,192.168.0.12

2. 下载kafka稳定版本,我的版本为:kafka_2.9.2-0.8.1.1.tgz

3. 分别解压放入到想安装的目录下,我的目录为:/home/www 解压命令为:

tar -xzf kafka_2.9.2-0.8.1.1.tgz

搭建zookeeper集群

1. 进入解压后的目录/home/www/kafka_2.9.2-0.8.1.1

2. 进入config目录下,修改zookeeper.properties文件

tickTime=
dataDir=/data/zookeeper/
clientPort=
initLimit=
syncLimit=
server.=192.168.0.10::
server.=192.168.0.11::
server.=192.168.0.12::

在dataDir目录/data/zookeeper/下写一个myid文件,命令如下:

echo  >myid

注意:这个id是zookeeper的主机标示,每个主机id不同第二台是2 第三台是3。

逐次启动3台机器的zookeeper 构成一个集群:

> bin/zookeeper-server-start.sh config/zookeeper.properties &

注意:使用& 会打印出启动日志,但如果使用secure ssh直接退出,有可能会让zookeeper退出,建议使用命令检查一下:

> netstat -apn | grep 2181

我启动的顺序是

192.168.0.10
192.168.0.11
192.168.0.12

由于ZooKeeper集群启动的时候,每个结点都试图去连接集群中的其它结点,先启动的肯定连不上后面还没启动的,所以打印出来的部分的异常是可以忽略的。集群在选出一个Leader后,最后稳定了。其他结点可能也出现类似问题,属于正常。

至此,zookeeper集群搭建完成

搭建kafka broker集群

进入config目录,修改server.properties

broker.id=
port=
host.name=192.168.0.10zookeeper.connect=192.168.0.10:,192.168.0.11:,192.168.0.12:2181
log.dirs=/home/www/kafka-logs

不同集群broker.id 和host.name 不一样,根据实际情况配置。

修改生产者配置

 broker.list=192.168.0.10:,192.168.0.11:,192.168.0.12:
producer.type=async

修改消费者配置:

zookeeper.connect=192.168.0.10:,192.168.0.11:,192.168.0.12:

启动每台服务器的kafka:

> bin/kafka-server-start.sh config/server.properties &

测试集群

创建一个topic

> bin/kafka-topics.sh --create --zookeeper 192.168.0.10:2181 --replication-factor 3 --partitions 1 --topic test-replicated-topic

查看创建的topic

> bin/kafka-topics.sh --describe --zookeeper 192.168.0.10:2181 --topic my-replicated-topic
Topic:test-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs:
Topic: test-replicated-topic Partition: 0 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0

查看集群情况:

>bin/kafka-topics.sh --describe --zookeeper 192.168.0.11:2181 --topic test-replicated-topic
>bin/kafka-topics.sh --describe --zookeeper 192.168.0.10:2181 --topic test-replicated-topic

发现都能看到test-replicated-topic。

注意:使用一台机器,创建3个zookeeper不同端口,3个kafka 不同端口没有成功,和zookeeper集群的端口有关吧,以后会研究一下。

参考资料:

http://kafka.apache.org/documentation.html#quickstart

http://www.jonzobrist.com/2012/04/17/install-apache-kafka-and-zookeeper-on-ubuntu-10-04/

http://www.open-open.com/lib/view/open1387889827593.html

完结。

kafka 集群--3个broker 3个zookeeper创建实战的更多相关文章

  1. docker下部署kafka集群(多个broker+多个zookeeper)

    网上关于kafka集群的搭建,基本是单个broker和单个zookeeper,测试研究的意义不大.于是折腾了下,终于把正宗的Kafka集群搭建出来了,在折腾中遇到了很多坑,后续有时间再专门整理份搭建问 ...

  2. 假如Kafka集群中一个broker宕机无法恢复,应该如何处理?

    假如Kafka集群中一个broker宕机无法恢复, 应该如何处理? 今天面试时遇到这个问题, 网上资料说添加新的broker, 是不会自动同步旧数据的. 笨办法 环境介绍 三个broker的集群, z ...

  3. kafka1:Kafka集群部署步骤

    参考: kafka 集群--3个broker 3个zookeeper创建实战 细细品味Kafka_Kafka简介及安装_V1.3http://www.docin.com/p-1291437890.ht ...

  4. Kafka【第一篇】Kafka集群搭建

    Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户 ...

  5. kafka集群和zookeeper集群的部署,kafka的java代码示例

    来自:http://doc.okbase.net/QING____/archive/19447.html 也可参考: http://blog.csdn.net/21aspnet/article/det ...

  6. window环境搭建zookeeper,kafka集群

    为了演示集群的效果,这里准备一台虚拟机(window 7),在虚拟机中搭建了单IP多节点的zookeeper集群(多IP节点的也是同理的),并且在本机(win 7)和虚拟机中都安装了kafka. 前期 ...

  7. 《Apache kafka实战》读书笔记-管理Kafka集群安全之ACL篇

    <Apache kafka实战>读书笔记-管理Kafka集群安全之ACL篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家能看到这篇博客的小伙伴,估计你对kaf ...

  8. RedHat6.5安装kafka集群

    版本号: Redhat6.5    JDK1.8     zookeeper-3.4.6   kafka_2.11-0.8.2.1 1.软件环境 1.3台RedHat机器,master.slave1. ...

  9. centos7搭建kafka集群-第二篇

    好了,本篇开始部署kafka集群 Zookeeper集群搭建 注:Kafka集群是把状态保存在Zookeeper中的,首先要搭建Zookeeper集群(也可以用kafka自带的ZK,但不推荐) 1.软 ...

随机推荐

  1. Pressed状态和clickable,duplicateParentState的关系

    做Android开发的人都用过Selector,可以方便的实现View在不同状态下的背景.不过,相信大部分开发者遇到过和我一样的问题,本文会从源码角度,解释这些问题. 首先,这里简单描述一下,我遇到的 ...

  2. nodeJs建立简单的服务器

    var http = require('http');//http依赖 var hostname = '127.0.0.1';//本地 var port = 3000;//端口 var server ...

  3. npm的简单应用

    1.安装node 2.旧版node升级 (1)linux系统 sudo npm install npm -g (2)window系统 npm install npm -g 3.安装淘宝镜像cnpm(以 ...

  4. 搭建redis集群环境

    Redis的集群机制 ============================= 转自http://lib.csdn.net/article/redis/39999 别人写的,写得不错,转了. Red ...

  5. Mac的文件比对工具:Meld、Beyond Compare

    Meld开源免费 Beyond Compare可以在Windows.Mac下使用,但是收费,需要自己破解

  6. Asp.Net Core 缓存的使用(译)

    原文:http://www.binaryintellect.net/articles/a7d9edfd-1f86-45f8-a668-64cc86d8e248.aspx环境:Visual Studio ...

  7. OpenStack制作Windows 2008 KVM镜像

    1.下载驱动程序 [root@linux-node1 ~]# cd /usr/local/src [root@linux-node1 src]# wget https://launchpad.net/ ...

  8. 计算两个经纬度之间的距离(python算法)

    EARTH_REDIUS = 6378.137 def rad(d): return d * pi / 180.0 def getDistance(lat1, lng1, lat2, lng2): r ...

  9. 面试题:Java中值传递和引用传递的问题

    随便写写留着自己看. 首先,Java的参数传递,不管是基本数据类型还是引用类型的参数,都是按值传递,没有按引用传递! 当一个实例对象作为参数被传递到方法中时,参数的值就是该对象的引用的一个副本.指向同 ...

  10. http://www.binghe.org/2010/03/use-httpsurlconnection-in-java/

    http://www.binghe.org/2010/03/use-httpsurlconnection-in-java/