博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kafka_2.11-0.11.0.1集群搭建
阅读量:6463 次
发布时间:2019-06-23

本文共 2887 字,大约阅读时间需要 9 分钟。

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

一、准备工作

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

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

    cd kafka_2.11-0.11.0.1tree -L 1

    展示如下内容:

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

二、搭建Zookeeper集群

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

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

    对Kafka感兴趣的童鞋们可前往 了解Kafka常用配置属性详解。

  2. 修改zookeeper.properties

    initLimit=10syncLimit=5dataDir=/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:3889server.3=IP3:2890:3890

    Zookeeper配置详解可参考:

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

    cd /Users/apple/Desktop/zookeepervim 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可参考:

  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集群:

六、参考文档

  • Kafka官方文档:
  • Kafka 0.9集群搭建文档:

转载地址:http://viezo.baihongyu.com/

你可能感兴趣的文章
Adb移植(一)简单分析
查看>>
Linux VNC server的安装及简单配置使用
查看>>
阿里宣布开源Weex ,亿级应用匠心打造跨平台移动开发工具
查看>>
Android项目——实现时间线程源码
查看>>
招商银行信用卡重要通知:消费提醒服务调整,300元以下消费不再逐笔发送短信...
查看>>
python全栈_002_Python3基础语法
查看>>
C#_delegate - 调用列表
查看>>
交换机二层接口access、trunk、hybird三种模式对VLAN的处理过程
查看>>
jQuery.extend 函数详解
查看>>
[转]Windows的批处理脚本
查看>>
lnmp高人笔记
查看>>
[转载] OpenCV2.4.3 CheatSheet学习(三)
查看>>
C#中跨窗体操作(2)--消息机制
查看>>
子程序框架
查看>>
多维数组元素的地址
查看>>
数据库运维体系_SZMSD
查看>>
aspose 模板输出
查看>>
福大软工1816 · 第三次作业 - 结对项目1
查看>>
selenium多个窗口切换
查看>>
《单页面应用》所获知识点
查看>>