• Kafka集群环境搭建本文只讲述Kafka集群环境的搭建步骤,后续会对kafka的其他相关知识进行整理.1、准备工作Linux服务器3台(本文将在一台linux服务器上建立三个文件夹来模拟三台linux服务器,搭建伪集群)JDK1.8...

    Kafka集群环境搭建

    本文只讲述Kafka集群环境的搭建步骤,后续会对kafka的其他相关知识进行整理.

    1、准备工作

    Linux服务器3台(本文将在一台linux服务器上建立三个文件夹来模拟三台linux服务器,搭建伪集群)
    JDK1.8http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    Zookeeperhttp://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/
    Kafkahttps://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.0/kafka_2.11-1.0.0.tgz

     


        

     

    2、开始搭建

    安装JDK(网上有很多详细安装步骤,本文不在赘述).

    配置&安装Zookeeper

    #我的目录统一放在/opt下面
    #首先创建Zookeeper项目目录
    mkdir zookeeper 
    
    #再进入新建好的zookeeper目录下创建模拟的三个服务器的项目目录(server1,server2,server3)
    mkdir server1
    mkdir server2
    mkdir server3
    
    #将下载好的zookeeper-3.4.10.tar.gz解压到三个server中.
    tar -zxvf zookeeper-3.4.10.tar.gz
    
    #在server1,server2,server3中分别创建下面两个文件夹
    mkdir data  #存放快照日志
    mkdir datalog #存放事物日志

     修改配置文件

    进入到解压后的zookeeper-3.4.10的conf目录.

    #进入conf目录
    /opt/zookeeper/server1/zookeeper-3.4.10/conf
    /opt/zookeeper/server2/zookeeper-3.4.10/conf
    /opt/zookeeper/server2/zookeeper-3.4.10/conf

    conf目录中的zoo_sample.cfg  这个文件是官方给我们的zookeeper的样板文件,我们复制一份命名为zoo.cfg保存在和样板文件同目录下(server1,server2,server3操作步骤一样),zoo.cfg是官方指定的文件命名规则。

    修改/opt/zookeeper/server1/zookeeper-3.4.10/conf/zoo.cfg文件如下:(代码中红色字体是需要我们更改的内容.)

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/opt/zookeeper/server1/data
    dataLogDir=/opt/zookeeper/server1/datalog
    clientPort=2181
    server.1=127.0.0.1:2888:3888
    server.2=127.0.0.1:2889:3889
    server.3=127.0.0.1:2890:3890

    server2,server3中的/zookeeper-3.4.10/conf/zoo.cfg文件和server1中的更改内容大致相同,需要注意的是dataDir,dataLogDir属性的值要改为server2,server3相应的data和datalog目录clientPort=2181端口号要在server2和server3中分别改为 clientPort=2182 clientPort=2183

    配置文件解释:

    #tickTime:
    这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
    #initLimit:
    这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
    #syncLimit:
    这个配置项标识 Leader 与Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是5*2000=10秒
    #dataDir:
    快照日志的存储路径
    #dataLogDir:
    事物日志的存储路径,如果不配置这个那么事物日志会默认存储到dataDir制定的目录,这样会严重影响zk的性能,当zk吞吐量较大的时候,产生的事物日志、快照日志太多
    #clientPort:
    这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。修改他的端口改大点

    创建myid文件:

    #在server中的data文件夹下创建myid文件
    
    #server1
    /opt/zookeeper/server1/data/myid
    文件中内容为 1
    
    #server2
    /opt/zookeeper/server2/data/myid
    文件中内容为 2
    
    #server3
    /opt/zookeeper/server3/data/myid
    文件中内容为 3

    启动服务并查看

    1,启动服务

    #进入到Zookeeper的bin目录下
    #server1
    cd /opt/zookeeper/server1/zookeeper-3.4.10/bin
    
    #启动服务
    ./zkServer.sh start
    
    #server2
    cd /opt/zookeeper/server2/zookeeper-3.4.10/bin
    
    #启动服务
    ./zkServer.sh start
    
    #server3
    cd /opt/zookeeper/server3/zookeeper-3.4.10/bin
    
    #启动服务
    ./zkServer.sh start
    
    #启动成功后的信息(server1为例):
    ZooKeeper JMX enabled by default
    Using config: /opt/zookeeper/server1/zookeeper-3.4.10/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED

    2,检查服务状态

    #检查服务器状态
    ./zkServer.sh status
     
    #下面的状态为启动成功。
    ZooKeeper JMX enabled by default
    Using config: /home/user/zookeeper/server3/zookeeper3.4.10/bin/../conf/zoo.cfg
    Mode: follower      
    #Mode有两种类型:leader和follower,leader代表领导(主节点),follower代表下属(备节点)
    #zk集群一般只有一个leader,多个follower,主一般是相应客户端的读写请求,而从主同步数据,当主挂掉之后就会从follower里投票选举一个leader出来。

     至此,zookeeper集群就成功搭建完成了,接下来我们开始搭建kafka。

    配置&安装Kafka

    #创建目录
    cd /opt/
    mkdir kafka #创建项目目录
    cd kafka
    
    mkdir kafkalogs #创建kafka消息目录,主要存放kafka消息-对应server1服务器
    
    mkdir kafkalogs1 #创建kafka消息目录,主要存放kafka消息-对应server2服务器
    mkdir kafkalogs2 #创建kafka消息目录,主要存放kafka消息-对应server3服务器
    
    #解压kafka_2.11-1.0.0.tgz到kafka目录下
    
    tar -zxvf kafka_2.11-1.0.0.tgz
    #如果是三台真实的linux服务器,只需要将kafka_2.11-1.0.0.tgz解压到三台服务器的/opt/kafka目录下,再新建kafkalogs即可。

    修改kafka配置文件

    #进入到config目录
    cd /opt/kafka/kafka_2.11-1.0.0/config/

    我们可以看到目录下有zookeeper的一些文件,这是kafka内置的zookeeper集群,我们可以使用它来直接启动,但建议使用独立的zookeeper集群。

    -rw-r--r--. 1 root root  906 Oct 27 08:56 connect-console-sink.properties
    -rw-r--r--. 1 root root  909 Oct 27 08:56 connect-console-source.properties
    -rw-r--r--. 1 root root 5807 Oct 27 08:56 connect-distributed.properties
    -rw-r--r--. 1 root root  883 Oct 27 08:56 connect-file-sink.properties
    -rw-r--r--. 1 root root  881 Oct 27 08:56 connect-file-source.properties
    -rw-r--r--. 1 root root 1111 Oct 27 08:56 connect-log4j.properties
    -rw-r--r--. 1 root root 2730 Oct 27 08:56 connect-standalone.properties
    -rw-r--r--. 1 root root 1221 Oct 27 08:56 consumer.properties
    -rw-r--r--. 1 root root 4727 Oct 27 08:56 log4j.properties
    -rw-r--r--. 1 root root 1919 Oct 27 08:56 producer.properties
    -rw-r--r--. 1 root root  173 Jan  7 05:54 server-1.properties
    -rw-r--r--. 1 root root  173 Jan  7 05:56 server-2.properties
    -rw-r--r--. 1 root root  172 Jan  7 05:55 server.properties
    -rw-r--r--. 1 root root 1032 Oct 27 08:56 tools-log4j.properties
    -rw-r--r--. 1 root root 1023 Oct 27 08:56 zookeeper.properties

    我们主要修改 server.properties 这个文件即可. 用以下代码覆盖server.properties里的内容进行保存.(这些是主要参数,以后需要自定义其他参数再做调整)

    broker.id=0
    listeners=PLAINTEXT://127.0.0.1:9092
    port=9092
    host.name=127.0.0.1
    log.dirs=/opt/kafka/kafkalogs
    zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

    因为我是在一台服务器搭建,可以将server.properties复制两份,分别命名为server1.properties,server2.properties,来模拟三台服务器。如果是在三台不同服务器,则不需要复制多份,只需要在三台服务器分别对server.properties进行配置即可.

    #在config目录下复制两份server.properties,并命名 server-1.propertis, server-2.propertis
    
    cp server.properties server-1.propertis
    
    cp server.properties server-2.propertis

    修改server1.properties如下:

    broker.id=1
    listeners=PLAINTEXT://127.0.0.1:9093
    port=9093
    host.name=127.0.0.1
    log.dirs=/opt/kafka/kafkalogs1
    zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

    修改server2.properties如下:

    broker.id=2
    listeners=PLAINTEXT://127.0.0.1:9094
    port=9094
    host.name=127.0.0.1
    log.dirs=/opt/kafka/kafkalogs2
    zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

    启动Kafka集群并测试

    1、启动服务

    #从后台启动Kafka集群(3台都需要启动)
    
    #进入到kafka的根目录 
    cd /opt/kafka/kafka_2.11-1.0.0
    
    #模拟启动三个配置文件,代表三台服务器.
    ./bin/kafka-server-start.sh -daemon config/server.properties
    ./bin/kafka-server-start.sh -daemon config/server1.properties
    ./bin/kafka-server-start.sh -daemon config/server2.properties
    
    # 启动命令中的 -daemon 表示以守护进程的方式启动.

     2、测试kafka

    创建主题:

    #创建一个test主题,分区数为3,备份数为3
    #在kafka根目录执行下面命令
    bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 3 --partitions 3 --topic test

    启动生产者:

    #kafka根目录执行,启动一个生产者
    bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test

    不要关闭生产者窗口,再打开一个新窗口,进入到kafka根目录,启动消费者:

    #启动消费者命令
    bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic test --from-beginning

    在生产者发送一条消息,查看消费者是否有接收成功。接收成功后kafka集成环境搭建完成。

    展开全文
  • Linux搭建Kafka集群

    2018-11-30 16:48:14
    Linux搭建Kafka集群 1 说明 1.1 编写目的 本文编写旨在介绍Kafka的集群架构配置,了解Kafka的基本使用。 1.2 适用范围 本文适用于对高效率消息中间件及对大数据处理比较有兴趣的童鞋。本文仅介绍了Kafka的基本知识、...

    Linux搭建Kafka集群

    1 说明

    1.1 编写目的

    本文编写旨在介绍Kafka的集群架构配置,了解Kafka的基本使用。

    1.2 适用范围

    本文适用于对高效率消息中间件及对大数据处理比较有兴趣的童鞋。本文仅介绍了Kafka的基本知识、集群架构,以及Kafka的基本使用。

    2 Kafka简介

    2.1 什么是kafka

    Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka使用Scala编写,是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。据了解,Kafka每秒可以生产约25万消息(50 MB),每秒处理55万消息(110 MB)。
    其主要设计目标为:
    1、以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。
    2、高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输。
    3、支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输。
    4、同时支持离线数据处理和实时数据处理。
    5、 Scale out:支持在线水平扩展。

    2.2 Kafka基本概念

    1、Producer:消息生产者,就是向kafka broker发消息的客户端。
    2、Consumer:消息消费者,向kafka broker取消息的客户端。
    3、Topic:特定类型的消息流,可以理解为一个队列。
    4、Consumer Group (CG):这是kafka用来实现一个topic消息的广播(发给所有的consumer)和单播(发给任意一个consumer)的手段。一个topic可以有多个CG。topic的消息会复制(不是真的复制,是概念上的)到所有的CG,但每个CG只会把消息发给该CG中的一个consumer。如果需要实现广播,只要每个consumer有一个独立的CG就可以了。要实现单播只要所有的consumer在同一个CG。用CG还可以将consumer进行自由的分组而不需要多次发送消息到不同的topic。
    5、Broker:已发布的消息保存在一组服务器中,称之为Kafka集群。一台kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。
    6、Partition:为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上,一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset)。kafka只保证按一个partition中的顺序将消息发给consumer,不保证一个topic的整体(多个partition间)的顺序。
    7、Offset:kafka的存储文件都是按照offset.kafka来命名,用offset做名字的好处是方便查找。例如你想找位于2049的位置,只要找到2048.kafka的文件即可。当然the first offset就是00000000000.kafka。

    2.3 Kafka架构

    2.3.1 集群示意

    kafka集群示意图
    Kafka集群的业务处理示意如上图所示。生产者发布消息到集群中,消费者订阅某topic,创建消息流。生产者发布到该话题的消息被均衡地分发到这些流中。

    2.3.2 整体架构

    kafka整体架构图
    Kafka的整体架构如上图所示,展示了生产者、消费者、Topic、Partition之间的关系和数据传递。因为Kafka内在就是分布式的,一个Kafka集群通常包括多个代理。为了均衡负载,将话题分成多个分区,每个代理存储一或多个分区。多个生产者和消费者能够同时生产和获取消息。

    3 配置准备

    3.1 服务器准备

    一般情况下,Kafka集群至少需要3台机器。本文档就以3台机器作为安装环境进行配置,操作系统以Centos 7为例。
    各个节点及描述如下表所示:

    机器名 IP
    node1 192.168.204.127
    node2 192.168.204.128
    node3 192.168.204.129

    如以下步骤使用机器名替代ip需要在/etc/hosts文件中配置例如192.168.204.127 node1信息 ,直接使用ip则不需要配置

    3.2 环境准备

    由于Kafka需要通过Zookeeper进行分布式系统的协调和促进,通过Zookeeper协调Broker、生产者和消费者。所以安装前需在每台机器上安装好Zookeeper(虽然Kafka自带有Zookeeper,但一般使用外置安装),具体安装步骤见https://blog.csdn.net/zhangkai19910815/article/details/84230349

    3.3 软件准备

    Kafka属于Apache的一个子项目,需到其官网上进行下载,下载方式为:
    wget https://www.apache.org/dyn/closer.cgi?path=/kafka/1.1.1/kafka_2.12-1.1.1.tgz
    (具体版本以官网为准)

    4 Kafka安装

    如无特别说明,以下操作均需要在每台服务器上完成。

    4.1 Kafka安装

    1、进入某一目录(本文以/home/tmp/为例),执行如下命令完成kafka的下载:
    wget https://www.apache.org/dyn/closer.cgi?path=/kafka/1.1.1/ kafka_2.12-1.1.1.tgz
    2、执行命令解压压缩包至软件安装常用目录(本人常用目录为/usr/local/apps,个人按情况而定)
    [root@node1 tmp]# tar zxvf kafka_2.12-1.1.1.tgz -C /usr/local/apps
    3、为了方便操作,进入 /usr/local/apps 并修改安装目录名:
    [root@ node1 tmp]# cd /usr/local/apps
    [root@ node1 apps]# mv kafka_2.12-1.1.1 kafka
    4、配置环境变量

    vi /etc/profile
    添加系统变量并修改PATH:

    export KAFKA_HOME=/usr/local/apps/kafka
    export PATH=.:${JAVA_HOME}/bin:${ZK_HOME}/bin:${STORM_HOME}/bin:$PATH:${KAFKA_HOME}/bin
    

    4.2 Kafka配置

    安装完成后需对Kafka进行配置,配置主要体现在config目录下的server.properties
    [root@ node1 config]# cd /user/local/apps/kafka/config/
    [root@ node1 config]# vi server.properties
    将配置信息按如下内容进行基础性的修改:
    1、 修改broker.id,确保每台机器的broker.id不一致,本文3台服务器的broker.id分别设置为1、2、3;
    2、 port默认为9092,可以根据需要进行修改,一般情况下保持3台服务器一致;
    3、 修改host.name为本机真实IP;
    4、 num.partitions默认为1,可根据集群要求进行修改,本文修改为4;
    5、 修改zookeeper.connect,其值为所有服务器上zookeeper的IP端口串,如下所示:
    zookeeper.connect=192.168.204.127:2181,192.168.204.128:2181,192.168.204.129:2181
    6、 log.dirs=/usr/local/apps/kafka/kafka-logs 配置kafka日志目录

    4.3 启动与停止

    4.3.1 启动

    Kafka的启动顺序为启动Zookeeper—>启动Kafka。
    1、 启动Zookeeper
    在Zookeeper的安装目录下执行启动命令:
    [root@node1 bin]#./zkServer.sh start
    Zookeeper相关配置可见
    https://blog.csdn.net/zhangkai19910815/article/details/84230349
    2、 启动Kafka
    执行如下命令,进行Kafka启动:
    [root@ node1 bin]#./kafka-server-start.sh …/config/server.properties &

    4.3.2 停止

    Kafka的停止与启动顺序刚好相反:停止Kafka—>停止Zookeeper
    1、停止Kafka
    执行如下命令,进行Kafka停止:
    [root@ node1 bin]#./kafka-server-stop.sh
    第一次启动Kafka建议进入Kafka安装目录执行
    bin/kafka-server-start.sh config/server.properties命令,方便查看详情启动日志
    2、停止Zookeeper
    在Zookeeper的安装目录下执行启动命令:
    [root@ node1 bin]#./zkServer.sh stop
    如果仅仅是停止Kafka而不是停止整个集群环境,可以不用停止Zookeeper。

    5 Kafka常用命令

    5.1 创建topic

    在安装目录下执行以下命令进行topic的创建:

    创建一个1个分区,3个副本,topic名为test01。
    ./kafka-topics.sh --create --zookeeper 192.168.204.127:2181 --replication-factor 3 --partitions 1 --topic test01

    5.2 查看topic

    在安装目录下执行以下命令,可查看kafka的topic情况:
    [root@ node1 bin]# ./kafka-topics.sh --describe --zookeeper 192.168.204.127:2181

    5.3 创建发送者

    在安装目录下执行以下命令,可创建kafka生产者进行消息发布:
    [root@node1 bin]#./kafka-console-producer.sh --broker-list 192.168.204.127:9092 --topic test01
    Test msg1
    Test msg2

    5.4 创建消费者

    结合5.3创建消费者使用,在一台机器的安装目录下执行以下命令,可创建kafka消费者进行消息读取:
    [root@ node1 bin]#./kafka-console-consumer.sh --zookeeper 192.168.204.128:2181 --topic test01 --from-beginning
    Test msg1
    Test msg2

    展开全文
  • 1.1 Win7官网下载kafka包 本文使用版本kafka_2.10-0.10.1.0.tgz 1.2 配置jdk、scala、zookeeper jdk1.7:linux jdk安装和配置 scala2.10.6:linux scala安装和配置 zookeeper3.49:zookeeper3.49集群安装和配置 ...

    一.前期准备

    1.1 Win7官网下载kafka包

    本文使用版本kafka_2.10-0.10.1.0.tgz

    1.2 配置jdk、scala、zookeeper

    jdk1.7:linux jdk安装和配置

    scala2.10.6:linux scala安装和配置

    zookeeper3.4.9:zookeeper3.49集群安装和配置

    jdk,scala,kafka版本要对应

    1.3 centos7集群服务器

    主机名    系统          IP地址

    master    centos7    192.168.32.128

    slave01   centos7    192.168.32.131

    slave02   centos7     192.168.32.132

    二.kafka集群搭建

    以下操作只针对master主机服务器,其他主机服务器类似。

    2.1 上传kafka包至 /opt/software目录

    2.2 解压和拷贝kafka至 /usr/local/kafka

    cd /opt/software
    tar -zxvf kafka_2.10-0.10.1.0.tgz
    cp -r kafka_2.10-0.10.1.0 /usr/local/kafka


    kafka解压和拷贝

    三.kafka集群配置

    3.1 server.properties文件配置

    进入kafka中的config目录

    vi server.properties
    
    #switch to enable topic deletion or not, default value is false
    delete.topic.enable=true
    #本机对应的ip地址
    listeners=PLAINTEXT://192.168.32.128:9092
    log.dirs=/tmp/kafka-logs
    zookeeper.connect=192.168.32.128:2181,192.168.32.132:2181,192.168.32.131:2181


    server.properties配置

    注意:相关配置项不要重复。

    3.2 新增/tmp/kafka-logs

    mkdir -p /tmp/kafka-logs

    至此 master主机服务器kafka已搭建完成。

    3.3 其他服务器kafka搭建

    搭建192.168.32.131/slave01和192.168.32.132/slave02服务器的kafka

    拷贝master服务器的kafka至slave01和slave02的 /usr/local/目录

    master服务器:

    cd /usr/local
    scp -r kafka root@192.168.32.131:/usr/local/

    slave01服务器:

    类似3.1配置server.properties

    注意:

    broker.id=1,要与master中broker.id区别

    listeners=PLAINTEXT://192.168.32.131:9092,需要改成本机对应ip


    slave01中server.properties修改

    slave02服务器配置类似。

    四.kafka集群测试

    4.1 测试命令

    Step 1: Start the server

    后台方式启动,推荐第一次配置的新手不要加入-daemon参数,看看控制台输出的是否有success.

    bin/kafka-server-start.sh -daemon config/server.properties

    Step 2: Create a topic(replication-factor一定要大于1,否则kafka只有一份数据,leader一旦崩溃程序就没有输入源了,分区数目视输入源而定)

    bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic topicTest

    Step 3: Describe a topic

    bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic topicTest

    step 4: list the topic

    bin/kafka-topics.sh --list --zookeeper localhost:2181

    step 5: send some message

    bin/kafka-console-producer.sh --broker-list localhost:2181 --topic topicTest

    step 6: start a consumer

    bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic topicTest --from-beginning

    step 7: delete a topic

    要事先在 serve.properties 配置 delete.topic.enable=true

    bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic topicTest

    # 如果仍然只是仅仅被标记了删除(zk中并没有被删除),那么启动zkCli.sh,输入如下指令

    rmr /brokers/topics/topicTest

    4.2 集群测试

    step1:启动zookeeper集群

    step2:启动kafka集群

    三台服务器分别运行启动命令

    bin/kafka-server-start.sh -daemon config/server.properties

    jps查看进程


    jps查看进程

    注意:kafka是kafka进程,QuorumPeerMain是zookeeper进程

    step3. 创建主题和查看主题

    bin/kafka-topics.sh --create --zookeeper 192.168.32.128:2181,192.168.32.131:2181,192.168.32.132:2181 --replication-factor 3 --partitions 3 --topic topicTest
    
    bin/kafka-topics.sh --list --zookeeper 192.168.32.128:2181,192.168.32.131:2181,192.168.32.132:2181


    创建和查看主题

    step4. 启动消息生产者和消息消费者

    master服务器

    bin/kafka-console-producer.sh --broker-list 192.168.32.128:9092,192.168.32.131:9092,192.168.32.132:9092 --topic topicTest

    slave01或slave02服务器

    bin/kafka-console-consumer.sh --zookeeper 192.168.32.128:2181,192.168.32.131:2181,192.168.32.132:2181 --topic topicTest --from-beginning

    master服务器输入信息,slave01或slave02会显示master输的的信息


    消息生产者

    消息消费者
    展开全文
  • 一,安装3台虚拟Linux机 可参照 -https://blog.csdn.net/Ginny_2017/article/details/92799904 二,安装Kafka之前,需要安装Zookeeper, 也可以使用Kafka自带的ZK 独立安装ZK, 可参考:...

    一,安装3台虚拟Linux机

    可参照 - https://blog.csdn.net/Ginny_2017/article/details/92799904

    二,安装Kafka之前,需要安装Zookeeper, 也可以使用Kafka自带的ZK

    独立安装ZK, 可参考:https://blog.csdn.net/Ginny_2017/article/details/92848982

    第1步:下载代码

    下载 2.1.0版本并解压缩它。

    1

    2

    > tar -xzf kafka_2.11-2.1.0.tgz

    > cd kafka_2.11-2.1.0

    第2步:启动服务器

    Kafka使用ZooKeeper,因此如果您还没有ZooKeeper服务器,则需要先启动它。您可以使用与kafka一起打包的便捷脚本来获得快速且脏的单节点ZooKeeper实例。

    1

    2

    3

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

    [2019-06-19 18:50:45] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)

    ...

    现在启动Kafka服务器:

    1

    2

    3

    4

    5

    [root@localhost kafka_2.12-2.2.0]# bin/kafka-server-start.sh config/server.properties
    [2019-06-19 19:21:27,341] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
    [2019-06-19 19:21:28,611] INFO starting (kafka.server.KafkaServer)
    [2019-06-19 19:21:28,612] INFO Connecting to zookeeper on 192.168.32.129:2181 (kafka.server.KafkaServer

    ...

    第3步:创建主题

    让我们创建一个名为“kafka1”的主题,它只包含一个分区,只有一个副本:

    1

    2

    3

    [root@localhost bin]./kafka-topics.sh --create --zookeeper 192.168.32.129:2181 --replication-factor 1 --partitions 2 --topic kafka1
    Created topic kafka1.

    如果我们运行list topic命令,我们现在可以看到该主题:

    1

    2

    [root@localhost bin]# ./kafka-topics.sh --list --zookeeper 192.168.32.129:2181
    kafka1

    第4步:发送一些消息

    Kafka附带一个命令行客户端,它将从文件或标准输入中获取输入,并将其作为消息发送到Kafka集群。默认情况下,每行将作为单独的消息发送。

    运行生产者,然后在控制台中键入一些消息以发送到服务器。

    > ./kafka-console-producer.sh --broker-list localhost:9092 --topic kafka1

    第5步:启动消费者

    Kafka还有一个命令行使用者,它会将消息转储到标准输出。

    ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic kafka1--from-beginning

     

    步骤6:设置多代理群集

    对于Kafka来说,单个代理只是一个大小为1的集群,因此除了启动一些代理实例之外没有太多变化。我们j将集群扩展到三个节点,在不同的机器上,也可以在本机上。

    修改编辑其他机器上的config文件并设置以下属性:

    1

    2

    3

    4

    6

    7

    8

    9

    192.168.32.130: 

    config/server.properties:

        broker.id=1

        listeners=PLAINTEXT://192.168.32.130:9093

        log.dirs=//home/logs/kafka-logs

     

    192.168.32.131: 

    config/server.properties:

        broker.id=2

        listeners=PLAINTEXT://192.168.32.131:9094

        log.dirs=/home/logs/kafka-logs

     

    192.168.32.128: 

    config/server.properties:

         broker.id=0

         listeners=PLAINTEXT://192.168.32.128:9092

    broker.id属性是群集中每个节点的唯一且永久的名称。我们必须覆盖端口和日志目录,因为我们在同一台机器上运行这些,并且我们希望让所有代理尝试在同一端口上注册或覆盖彼此的数据。

    步骤7:查看集群状态

    1. 保证3台虚拟机上的kafka虚拟机都已启动

    2. 在安装zookeeper的机器上查看节点

        <1> cd /usr/local/zookeeper/bin

         <2> ./zkCli.sh -server 127.0.0.1:2181

         <3> 查看所有的节点:ls /

          <4> 查看当前节点中的所有brokers: ls /brokers/ids

          <5> 查看当前的leader状态: get /controller 

      集群搭建就成功了, 接下来就可以连接进行简单的代码测试了,稍后有更新。

    参照: http://kafka.apache.org/21/documentation.html#brokerconfigs

    展开全文
  • linux 下搭建kafka集群

    2018-01-04 15:49:27
    1.先下载zookerper,kafka 包 tar -zxvf 解压 到 /opt/kafka 和 /opt/kafka/zookeeper目录下sudo vim /etc/profile 在末尾附加:export PATH=/opt/kafka/zookeeper/bin:$PATH最后 source /etc/profile2.需先搭建...

    1.先下载zookerper,kafka 包 tar -zxvf 解压 到 /opt/kafka 和 /opt/kafka/zookeeper目录下

    sudo vim /etc/profile 
    在末尾附加:
    
    export PATH=/opt/kafka/zookeeper/bin:$PATH
    
    最后 source /etc/profile

    2.需先搭建zookeeper环境

    cp zoo_sample.cfg zoo.cfg 在 conf里面
    vim zoo.cfg

    根据需要改 zoo.cfg 如果不做集群 ,只按原来的就好了

    # The number of milliseconds of each tick
    tickTime=2000
    # The number of ticks that the initial 
    # synchronization phase can take
    initLimit=10
    # The number of ticks that can pass between 
    # sending a request and getting an acknowledgement
    syncLimit=5
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just 
    # example sakes.
    dataDir=/opt/kafka/zookeeper/data
    # the port at which the clients will connect
    clientPort=2181
    initLimit=5
    syncLimit=2
    server.1=192.168.195.149:2888:3888
    server.2=192.168.195.150:2888:3888
    server.3=192.168.195.151:2888:3888
    

    然后在dataDir 里面 (我的例子是data目录下) 新建一个 zookeeper_server.pid

    然后再搭建kafka集群

    bin/zkServer.sh start 在三台机器上启动
    bin/zkServer.sh status 查看状态
    bin/kafka-server-start.sh config/server.properties 在三台机器上启动

    bin/kafka-topics.sh –describe –zookeeper 192.168.195.128:2181, –topic test
    bin/kafka-console-producer.sh –broker-list master:9092 –topic test
    bin/kafka-console-consumer.sh –zookeeper master:2181 –topic test –from-beginning

    展开全文
  • linux下搭建kafka集群

    2020-04-20 13:04:39
    linux下搭建kafka集群 1、准备: 1)、kafka压缩包 2)、3台centOS7 系统的虚机或者服务器 3)、zookeeper搭建完成 4)、java环境 5)、将压缩包上传至服务器上并解压文件 2、配置kafka配置文件 进入解压...
  • linux kafka集群 安装

    2019-05-09 14:48:34
  • Linux搭建kafka集群1 准备3台机器1.1host配置2 zookeeper配置3 安装kafka3.1 设置环境变量3.2 修改改$KAFKA_HOME/config 目录下的server.properties文件3.4 启动zookeeper和kafka 1 准备3台机器 hostname ...
  • 1:搭建kafka集群环境需要安装JDK、Zookeeper集群环境 JDK的安装可以参考https://mp.csdn.net/postedit/84196901这篇博客 Zookeeper集群环境的安装可以参考https://mp.csdn.net/postedit/84201320这篇博客,具体的...
  • zookeeper安装部署 前提:必须安装java环境,最好1.8版本的jdk,配好环境变量 准备环境 三台Linux服务器:172.52.0.162,172.52.0.163,172.52.0.164 ... 先把安装包拷入Linux系统中,目录为 /work/packag...
  • Linux 安装kafka集群

    2019-05-07 17:45:51
    环境: CentOS 6.5 kafka_2.11-2.2.0 前提是需要安装zookeeper,本文不再赘述,详细安装请参照:... 下载Linux版的kafka安装包 http://kafka.apache.org/downloads 下载完成之后通过ftp上传到linux服务器指定目...
  • Linuxkafka集群搭建

    2019-02-19 15:02:30
    主机IP地址 zookeeper kafka 10.19.85.149 myid=1 broker.id=1 10.19.15.103 myid=2 broker.id=2 10.19.189.221 myid=3 broker.id=3 配置文件: # cat zoo.cfg tickTime=2000 initLimit=10 sy...
  • Kafka基本架构: 它的架构包括以下组件... Broker 服务代理Kafka集群包含一个或多个服务器,这种服务器被称为broker Topic 话题每条发布到Kafka集群的消息都有一个类别,这个类别被称为topic。(物理上不同topic...
  • linux上安装kafka集群

    2020-05-18 17:46:47
    在 192.168.191.5 hadoop5上 注先 vim /etc/hosts 192.168.191.5 hadoop5 192.168.191.9 hadoop9 192.168.191.11 hadoop11 配置环境变量: (1)vi /etc/profile export ZOOKEEPER_HOME=/usr/local/software/...
  • kafka集群重启方法

    2019-09-29 08:53:15
    1.进入服务器 2.进入kafka:cd kafka 3.重启kafka:./startup.sh ...4.进入zookeeper:cd /home/tmkj/zookeeper/bin ...按以上步骤操作集群中的其他服务器,即可重启kafka集群。 附:kafka startup.sh脚本 n...
  • 一,安装环境:操作系统:Red Hat Linux 6.5JDK版本:1.8.0_151 //需先安装JDKZookeeper版本:3.4.12Kafka版本:2.11-1.1.0IP地址:10.11.111...mrzwk-8备注:搭建kafka集群前提是安装好zookeeper集群安装kafka集群#...
  • 一、搭建Zookeeper集群 具体看:http://blog.csdn.net/jeffleo/article/details/75735136 二、kafka broker集群搭建 kafka 下载、解压 wget http://apache.opencas.org/kafka/0.9.0.1/kafka_2.11-0.9.0.1.tgz tar ...
  • 一、说明: 操作系统:linux kafka版本信息:kafka_2.11-0.8.2.1二、具体操作:1、安装kafka之间先检查操作系统中是否装有JDK,若没有点击打开链接有JDK安装步骤。2、关闭SELINUX、开启防火墙9092端口 2.1、关闭...
  • Kafka集群配置---Windows版   Kafka是一种高吞吐量的分布式发布订阅的消息队列系统,Kafka对消息进行保存时是通过tipic进行分组的。今天我们仅实现Kafka集群的配置。 前言 最近研究kafka,发现网上很多关于...
  • Docker搭建Kafka集群环境准备依赖单实例(Without Docker)安装JDK下载安装包启动进程测试集群安装(Without Docker)准备启动zookeeper 集群更改配置启动测试Docker 集群安装安装Docker 环境准备 依赖 CentOS7.6 单...
1 2 3 4 5 ... 20
收藏数 17,347
精华内容 6,938