本文搭建一个三节点的Kafka集群。该集群有三个Zookeeper、三个Kafka Broker。

一、准备工作

  1. 解压kafka安装包,获得如下目录:

    unzip kafka_2.11-0.11.0.1.zip
    kafka_2.11-0.11.0.1
    
  2. Kafka目录结构:

    cd kafka_2.11-0.11.0.1
    tree -L 1
    

    展示如下内容:

    .
    ├── LICENSE
    ├── NOTICE
    ├── bin
    ├── config
    ├── libs
    ├── logs
    └── site-docs
    

二、搭建Zookeeper集群

  1. 将目录切换到Kafkaconfig 目录,要修改的主要是server.properties以及zookeeper.properties两个配置文件。

    server.properties                    kafka配置文件
    zookeeper.properties             zookeeper配置文件
    

    对Kafka感兴趣的童鞋们可前往 https://www.cnblogs.com/jun1019/p/6256371.html 了解Kafka常用配置属性详解。

  2. 修改zookeeper.properties

    initLimit=10
    syncLimit=5
    dataDir=/Users/apple/Desktop/zookeeper  # zookeeper的快照存储地址
    clientPort=2181                          # zookeeper端口
    maxClientCnxns=0                     # 单个客户端与单台服务器之间的连接数的限制
    server.1=IP1:2888:3888       # server.x中的x要与myid中的数字一致,2888用于follower与leader之间的数据同步与其他通信;3888用于leader选举时的通信。
    server.2=IP2:2889:3889
    server.3=IP3:2890:3890
    

    Zookeeper配置详解可参考:http://blog.csdn.net/lengzijian/article/details/9226867

  3. 将目录切换到dataDir 目录,并创建myid文件,内容分别是1、2、3。注意myid的内容要与server.x 中的x相一致。

    cd /Users/apple/Desktop/zookeeper
    vim myid
    
  4. 三台机器都配置好zookeeper.properties 并创建myid 文件后,即可进行测试。依次在三台机器上执行如下命令,即可启动Zookeeper集群。

    cd kafka_2.11-0.11.0.1 # 切换到你的Kafka目录
    nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
    
  5. 观察启动日志,确认启动无误。

三、搭建Kafka集群

搭建完Zookeeper集群后,Kafka集群的搭建就完成了一大半。下面我们来搭建Kafka集群:

  1. 在Kafka的config目录下创建文件server-cluster.properties ,在其中填写如下内容:

    broker.id=1                      # kafka broker的id,三个节点不能相同
    listeners=PLAINTEXT://:9094      # kafka所使用的端口
    log.dir=/tmp/kafka-logs          # kafka日志路径
    zookeeper.connect=xxx,yyy,zzz    # Zookeeper集群的地址列表,IP:PORT的形式,多个用,分隔
    

    当然,这里server-cluster.properties 名称不是强制的,你可以叫其他名字;不仅如此,也可直接修改server.properties

  2. 依次在三台机器执行如下命令,启动Kafka

    cd kafka_2.11-0.11.0.1 # 切换到你的Kafka目录
    bin/kafka-server-start.sh config/server-cluster.properties &
    
  3. 观察启动日志,确认启动无误。

四、验证Kafka集群正常工作

  1. 创建一个Topic,其中的xxx、yyy、zzz是Zookeeper的地址,形式为IP:PORT

    bin/kafka-topics.sh --create --zookeeper xxx,yyy,zzz --replication-factor 3 --partitions 1 --topic my-replicated-topic
    
  2. 我们现在已经搭建了一个Kafka集群,并创建了一个Topic,但我们如何知道每个broker在做什么呢?可使用describe topics 命令:

    bin/kafka-topics.sh --describe --zookeeper xxx,yyy,zzz --topic my-replicated-topicTopic:my-replicated-topic    PartitionCount:1    ReplicationFactor:3 Configs:Topic: my-replicated-topic  Partition: 0    Leader: 1   Replicas: 1,3,2 Isr: 1,3,2
    

    其中,第一行是对所有partition的摘要,每个附加行给出了每个partition的详情,这里只有一个partition,所以只有一行。

    leader是负责给定partition所有读写的节点,每个节点将称为partition随机选择部分的leader。

    replicas是复制此partition日志的节点列表,无论它们是否leader,即使它们处于活动状态。

    isr是一组in-sync 副本,这是replicas列表的子集,这些副本当前活动,并被引导到leader。

    笔者按:isr常被翻译成“副本同步队列”。

    leader、replicas、isr可参考:https://www.cnblogs.com/mengyou0304/p/4836555.html

  3. 创建一个生产者:

    bin/kafka-console-producer.sh --broker-list kafka集群地址列表 --topic my-replicated-topic
    

    地址为IP:PORT的形式,多个用逗号分隔

  4. 另启一个窗口,创建消费者:

    bin/kafka-console-consumer.sh --bootstrap-server kafka地址 --from-beginning --topic my-replicated-topic
    

    kafka地址为IP:PORT的形式,为Kafka集群中的任意一个节点。

  5. 在生产者窗口输入任意文字,看在消费者窗口能否接收。如果能正常接收,说明Kafka集群搭建成功。

五、界面管理

参考笔者博客Kafka Manager管理Kafka集群:http://www.itmuch.com/work/kafka-manager/

六、参考文档

  • Kafka官方文档:http://kafka.apache.org/quickstart
  • Kafka 0.9集群搭建文档:http://blog.csdn.net/gongxinju/article/details/53415051

kafka_2.11-0.11.0.1集群搭建相关推荐

  1. Hadoop 3.1.2(HA)+Zookeeper3.4.13+Hbase1.4.9(HA)+Hive2.3.4+Spark2.4.0(HA)高可用集群搭建

    目录 目录 1.前言 1.1.什么是 Hadoop? 1.1.1.什么是 YARN? 1.2.什么是 Zookeeper? 1.3.什么是 Hbase? 1.4.什么是 Hive 1.5.什么是 Sp ...

  2. Centos7.6+Hadoop 3.1.2(HA)+Zookeeper3.4.13+Hbase1.4.9(HA)+Hive2.3.4+Spark2.4.0(HA)高可用集群搭建

    本文转自https://mshk.top/2019/03/centos-hadoop-zookeeper-hbase-hive-spark-high-availability/,因为原链接打不开,故在 ...

  3. CentOS7.X安装Redis-4.0.8以及Redis集群搭建

    安装redis 安装前的准备 yum install \ vim \ wget \ make \ gcc \ gcc-c++ \ automake \ autoconf \ -y \ 下载解压并安装 ...

  4. kafka之四:Kafka集群搭建

    1.软件环境 1.linux一台或多台,大于等于2 2.已经搭建好的zookeeper集群 3.软件版本kafka_2.11-0.9.0.1.tgz 2.创建目录并下载安装软件 #创建目录 cd /o ...

  5. 转-Kafka【第一篇】Kafka集群搭建

    转自: https://www.cnblogs.com/luotianshuai/p/5206662.html Kafka[第一篇]Kafka集群搭建 Kafka初识 1.Kafka使用背景 在我们大 ...

  6. zookeeper 和 kafka 集群搭建

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

  7. redis安装、集群搭建等

    1 Redis介绍 1.1 什么是NoSql 为了解决高并发.高可扩展.高可用.大数据存储问题而产生的数据库解决方案,就是NoSql数据库. NoSQL,泛指非关系型的数据库,NoSQL即Not-On ...

  8. Hadoop-2.8.0集群搭建、hadoop源码编译和安装、host配置、ssh免密登录、hadoop配置文件中的参数配置参数总结、hadoop集群测试,安装过程中的常见错误

    25. 集群搭建 25.1 HADOOP集群搭建 25.1.1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据 ...

  9. CentOS7.0下Hadoop2.7.3的集群搭建

    集群服务器规划 使用3台CentOS-6.8虚拟机进行集群搭建 服务 ip 主机名称 用户 HDFS YARN hadoop1 192.168.1.40 hadoop1 root  NameNode, ...

  10. 【Flink实战系列】Flink 1.11.1 on yarn 集群搭建教程

    前面一篇博客中已经搭建了flink Standalone的集群,需要的可以进去看一下,今天主要来说一下flink on yarn 集群的搭建以及怎么提交任务,之前搭建Flink on yarn的时候用 ...

最新文章

  1. linux软中断的实现
  2. python分代回收_python 垃圾回收——分代回收 和java有些区别 注意循环引用无法被回收...
  3. android 自定义actionbar,如何让android的actionbar浮动且透明
  4. 安装centos7失败认不到硬盘_CentOS7 用U盘安装卡住无法进入安装界面解决方案
  5. 人类如何感受到四维空间?
  6. ruby的optparse使用小记
  7. 《中国人工智能学会通讯》——11.64 基于成对约束的属性特征选择
  8. CentOS配置ssh无密码登录
  9. grpc 可以传递context嘛_Python中使用gRPC方法示例
  10. python3 数据结构_Python3数据结构
  11. 4.携程架构实践 --- 呼叫中心
  12. WinForm实现SQLServer存储图片
  13. Python 爬取小说点评网站,用大数据方法找小说
  14. 第1关:MapReduce综合应用案例 — 电信数据清洗
  15. 获得与回馈丨点评中国两大金融机构基于OpenStack的网络联合实践
  16. 通过代理上网,如何配置Outlook
  17. ssm实战(1)------数据库表结构
  18. CSP201609-3炉石传说
  19. python爬虫练习5:博客阅读量助手
  20. Android获取手机设备识别码(IMEI)和手机号码

热门文章

  1. linq 根据指定条件返回集合中不重复的元素
  2. spring相关记录
  3. SharePoint:扩展DVWP - 第10部分:在表单操作工作流中传递工作流变量
  4. python学习第六天运算符总结大全
  5. Mac 10.12安装Google浏览器
  6. 机器学习 - pycharm, pyspark, spark集成篇
  7. CentOS设置默认启动命令行(不启动图形界面)
  8. php中include包含文件路径查找过程
  9. NHibernate中Example类使用注意事项
  10. centos6.9去掉网关地址后依然可以ping通外网