您的位置:新葡亰496net > 电脑系统 > 新葡亰496net:Kafka的单节点配置,Ubuntu下kafka集群

新葡亰496net:Kafka的单节点配置,Ubuntu下kafka集群

发布时间:2019-08-03 19:05编辑:电脑系统浏览(144)

    Zookeeper Kafka的单节点配置

    环境描述:Ubuntu16.04 server系统,在系统上搭建Java环境,jdk的版本为1.8或更高,我的服务器IP地址为192.168.0.106。

     

    1. 使用命令在根目录下的opt目录下创建data目录。

    mkdir /opt/data
    

     

    1. 在Apache官网http://www.apache.org/dyn/closer.cgi/zookeeper/和https://www.apache.org/dyn/closer.cgi?path=/kafka/0.10.0.0/kafka_2.10-0.10.0.0.tgz

    上下载zookeeper和kafka的压缩包,我下载的是zookeeper-3.4.10.tar.gz和kafka_2.11-0.10.1.0.gz。

     

    3. 使用命令对zookeeper和kafka压缩文件进行解压,对解压后的文件进行改名和移动位置,移动到/opt/data目录下。

    tar -zxvf zookeeper-3.4.10.tar.gz
    tar -zxvf kafka_2.11-0.10.1.0.gz
    

    新葡亰496net 1

     

    4. 使用命令增加zookeeper节点的IP如下附图所示。

    vim /etc/hosts
    

    新葡亰496net 2

     

    1. 使用命令

      cd /opt/data/zookeeper/conf

    进入zookeeper目录下的conf目录,使用命令

    cp zoo_sample.cfg zoo.cfg
    

    复制文件zoo.cfg,使用命令

    vim zoo.cfg
    

    修改该文件。同时,在/opt/data/zookeeper下创建data目录和logs目录,在/opt/data/zookeeper/data下创建文件myid,使用命令

    echo 1 > myid
    

    在文件myid中写入1。

     新葡亰496net 3

     

    ============================================================================================================================================

    在此zookeeper的配置已经完成。

    ============================================================================================================================================

     

    1. 使用命令

      vim /opt/data/kafka/config/server.properties

    修改kafka的配置文件,同时使用命令

    mkdir /opt/data/kafka/kafka-logs
    

    创建目录,修改内容如下附图所示。

    新葡亰496net 4

    新葡亰496net 5

     

    ============================================================================================================================================

    在此kafka的配置已经完成。

    ============================================================================================================================================

     

    测试zookeeper和kafka的配置是否成功:

    1. 启动zookeeper:在/opt/data/zookeeper目录下使用命令

    bin/zkServer.sh start
    

    启动zookeeper。使用命令

    bin/zkServer.sh status
    

    查看zookeeper的状态,如果现实如下图所示的状态表示zookeeper配置成功。

    新葡亰496net 6

     

     

    2.启动kafka:在/opt/data/kafka目录下使用命令

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

    启动kafka,显示以下信息为成功启动kafka。

    新葡亰496net 7

     

    3. 创建会话topic:打开新的终端(我们暂记为终端1),在/opt/data/kafka目录下使用命令

    bin/kafka-topics.sh --create --zookeeper 192.168.0.106:2181 --replication-factor 1 --partitions 1 --topic test1
    

    创建会话test1,使用命令

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

    查看会话列表,显示以下信息为成功创建会话。

    新葡亰496net 8

     

    4.启动生产者Producer发消息:在/opt/data/kafka目录下使用命令

    bin/kafka-console-producer.sh --broker-list 192.168.0.106:9092 --topic test1
    

    启动消息生产者。

     

    5.启动消费者Consumer接收消息:再打开一个新的终端(我们暂记为终端2),在/opt/data/kafka目录下使用命令

    bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.106:9092 --from-beginning --topic test1
    

    来接收消息。

     

    6.在生产者Producer所在的终端1里随便输入一些内容,消费者Consumer所在的终端2将会实时的捕获终端1里发出的消息。如下表示成功建立会话,kafka和zookeeper的单节点配置圆满成功。

    新葡亰496net 9

    新葡亰496net 10

     

    7.删除会话topic:在/opt/data/kafka目录下使用命令

    bin/kafka-topics.sh --delete --zookeeper 192.168.0.106:2181 --topic test1
    

    再使用命令

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

    查看会话是否存在,如下图所示,表示会话test1删除成功。

    新葡亰496net 11

     

    组件以及版本:

    1 ZooKeeper框架安装

    步骤1.1 - 下载ZooKeeper
    要在您的机器上安装ZooKeeper框架,请访问以下链接并下载最新版本的ZooKeeper。

    http://zookeeper.apache.org/releases.html
    截至目前,ZooKeeper的最新版本为3.4.6(ZooKeeper-3.4.6.tar.gz)。

    步骤1.2 - 提取tar文件
    使用以下命令提取tar文件

    $ cd opt/
    $ tar -zxf zookeeper-3.4.6.tar.gz
    $ cd zookeeper-3.4.6
    $ mkdir data
    

    步骤1.3 - 创建配置文件
    使用命令vi“conf / zoo.cfg” 打开名为conf / zoo.cfg的配置文件,并将所有以下参数设置为起始点。

    $ vi conf/zoo.cfg
    tickTime=2000
    dataDir=/path/to/zookeeper/data
    clientPort=2181
    initLimit=5
    syncLimit=2
    

    一旦配置文件成功保存并再次返回终端,就可以启动zookeeper服务器。

    步骤1.4 - 启动ZooKeeper服务器

    $ bin/zkServer.sh start
    

    执行此命令后,您会得到如下所示的响应:

    $ JMX enabled by default
    $ Using config: /Users/../zookeeper-3.4.6/bin/../conf/zoo.cfg
    $ Starting zookeeper ... STARTED
    

    步骤1.5 - 停止Zookeeper服务器
    连接服务器并执行所有操作后,可以使用以下命令停止zookeeper服务器 -

    $ bin/zkServer.sh stop
    

    现在,您已经在您的机器上成功安装了Java和ZooKeeper。让我们看看安装Apache Kafka的步骤。

    kafka集群依赖于zookeeper,所以需要先搭建zookeeper集群,kafka默认自带了内建的zookeeper,建议使用自己外搭建的zookeeper,这样比较灵活并且解耦服务,同时也可以让其他需要zookeeper的服务使用。注意kafka-2.11-0.11版本与zookeeper-3.4.10.tar.gz对应,

    kafka介绍:

    Kafka[1是一种高吞吐量[2]  的分布式发布订阅消息系统,有如下特性:

    • 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。

    • 高吞吐量[2]  :即使是非常普通的硬件Kafka也可以支持每秒数百万[2]  的消息。

    • 支持通过Kafka服务器和消费机集群来分区消息。

    • 支持Hadoop并行数据加载。[3] 

    Zookeeper:zookeeper-3.4.11.tar.gz

    2 - Apache Kafka安装

    让我们继续以下步骤在您的机器上安装Kafka。

    步骤2.1 - 下载kafka
    要在您的机器上安装Kafka,请点击下面的链接 -

    https://www.apache.org/dyn/closer.cgi?path=/kafka/0.9.0.0/kafka_2.11-0.9.0.0.tgz
    现在最新的版本,即 - kafka_2.11_0.9.0.0.tgz将被下载到你的机器上。

    步骤2.2 - 提取tar文件
    使用以下命令提取tar文件 -

    $ cd opt/
    $ tar -zxf kafka_2.11.0.9.0.0 tar.gz
    $ cd kafka_2.11.0.9.0.0
    

    现在您已经在您的机器上下载了最新版本的Kafka。

    步骤2.3 - 启动服务器
    您可以通过以下命令启动服务器 -

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

    服务器启动后,您将在屏幕上看到以下响应:

    $ bin/kafka-server-start.sh config/server.properties
    
    [2016-01-02 15:37:30,410] INFO KafkaConfig values:
    request.timeout.ms = 30000
    log.roll.hours = 168
    inter.broker.protocol.version = 0.9.0.X
    log.preallocate = false
    security.inter.broker.protocol = PLAINTEXT
    
     
    

    Kafka相关术语介绍

    • Broker

      Kafka集群包含一个或多个服务器,这种服务器被称为broker[5] 

    • Topic

      每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)

    • Partition

      Partition是物理上的概念,每个Topic包含一个或多个Partition.

    • Producer

      负责发布消息到Kafka broker

    • Consumer

      消息消费者,向Kafka broker读取消息的客户端。

    • Consumer Group

      每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。


    Flume:apache-flume-1.7.0-bin.tar.gz

    步骤2.4 - 停止服务器

    执行所有操作后,可以使用以下命令停止服务器 -

    $ bin/kafka-server-stop.sh config/server.properties
    

    一、安装

    单节点模式:

    1,解压

    root@Ubuntu-1:/usr/local# tar zxvf kafka_2.11-0.8.2.2.tgz
    

    2,重命名

    root@Ubuntu-1:/usr/local# mv /usr/local/kafka_2.11-0.8.2.2 /usr/local/kafka
    

    3,起zookeeper集群到指定后台文件(不占用页面)

    root@Ubuntu-1:/usr/local/kafka# bin/zookeeper-server-start.sh config/zookeeper.properties > logs/kafka131-1.log >&1 &
    

    4,起kafka集群到指定后台文件(不占用页面)

    bin/kafka-server-start.sh config/server.properties >logs/kafka131-server-1.log >&1 &
    

    5,查看zookeeper和kafka启动情况

    root@Ubuntu-1:/usr/local/kafka# jps
    3104 QuorumPeerMain
    5048 Kafka
    5064 Jps
    

    6,新增一个topic

    root@Ubuntu-1:/usr/local/kafka# bin/kafka-topics.sh --create --topic huxing --zookeeper localhost:2181 --partitions 2 --replication 1
    Created topic "huxing".
    

    7,所有可以使用的topic

    root@Ubuntu-1:/usr/local/kafka# bin/kafka-topics.sh --list --zookeeper localhost:2181
    huxing
    

    8,查询某个topic的信息

    root@Ubuntu-1:/usr/local/kafka# bin/kafka-topics.sh --describe --topic huxing --zookeeper localhost:2181
    Topic:huxing    PartitionCount:2    ReplicationFactor:1    Configs:
        Topic: huxing    Partition: 0    Leader: 0    Replicas: 0    Isr: 0
        Topic: huxing    Partition: 1    Leader: 0    Replicas: 0    Isr: 0
    

    9,删除某个topic

    在此之前需要在server.properties的配置文件中加入一行

    delete.topic.enable=true
    

    重启,然后执行代码

    root@Ubuntu-1:/usr/local/kafka# bin/kafka-topics.sh --delete --topic huxing --zookeeper localhost:2181
    Topic huxing is marked for deletion.
    Note: This will have no impact if delete.topic.enable is not set to true.
    root@Ubuntu-1:/usr/local/kafka# bin/kafka-topics.sh --list --zookeeper localhost:2181
    hello
    world
    

    在jps中可以查询到确实已经被删除了

    10,创建producer和consumer用户

    在创建producer用户时,出现下列错误:新葡亰496net 12

    解决办法:在server.properties的配置文件中加入一行

    advertised.host.name=192.168.22.131
    

    在server.properties 上该参数用来配置返回的host.name值,把这个参数配置为外网IP地址。
    这个参数默认没有启用,默认是返回的 java.net.InetAddress.getCanonicalHostName 的值,这个值并不等于 hostname 的值而是返回IP,但在linux上这个值就是 hostname 的值。

     配置好后重启,在两个shell框中输入下列命令:

    producer:

    root@Ubuntu-1:/usr/local/kafka# bin/kafka-console-producer.sh --topic hello --broker-list localhost:9092
    [2017-07-12 18:27:09,916] WARN Property topic is not valid (kafka.utils.VerifiableProperties)
    aa
    aaa
    1
    222
    

    consumer:

    root@Ubuntu-1:/usr/local/kafka# bin/kafka-console-consumer.sh --topic hello --zookeeper localhost:2181
    

    于是,在producer的shell框中输入的内容将会同步更新到consumer中

    标记删除的topic也可以使用


    Kafka:kafka_2.11-0.11.0.0.tgz

    3 kafka操作

    1、下载zookeeper:

    集群模式:

    由于我用kafka中内置的zookeeper怎么配置也无法启动,所以打算放弃kafka中内置的ZK,转而自己去下载

    1、安装Zookeeper

    下载路径:http://zookeeper.apache.org/releases.html

    https://www.apache.org/dyn/closer.cgi/zookeeper/

    拷贝文件到对应主机

    (1)cp or SSH Secure File Transfer Client

    (2)解压缩 tar -zvxf zookeeper-3.4.11.tar.gz

    (3)mv **** /opt/zookeeper

    目录:

    /bin    执行目录

    /conf    配置目录

    /lib    依赖包

    (4)修改配置文件顺带添加一下data和log目录

    /conf 目录下 有示例 zoo_sample.cfg,cp 到 zoo.cfg

    tickTime=2000: Zk的基本单位时间,单位ms

    initLimit =10集群模式下,Follower与Leader之间建立连接时的最大心跳间隔数

    syncLimit =5集群模式下,Follower与Leader之间通信时的最大心跳间隔数

    dataDir  存储数据目录

    logDir    存储日志目录

    ClientPort 端口号 默认2181

    单机模式下只需要配置如上:(不确定initLimit和syncLimit是否可以不配置,但理解上应该可以)

    集群模式下还需要配置服务器组:

    server.x = ip:2888:3888

    在对应服务器的data目录下要建立myid文件,内容为“x”

    2888指这个服务器与Leader之间交换信息的端口

    3888指选举Leader时所用的端口

    集群模式剩下的以后再补充

    (5)启动zookeeper

    bin目录下的 zkServer.sh start 用于启动zookeeper服务

    bin/zkServer.sh start

    start可以换成stop status等其他命令

    bin/zkCli.sh -server用于启动一个zookeeper客户端


    3.1 创建topic

    [root@192-168-123-169 bin]# ./kafka-topics.sh   --create --topic test --replication-factor 1 --partitions 1 --zookeeper localhost:2181
    Created topic "test".
    

    # wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

    zookeeper

    1,解压压缩包

    2,进入zookeeper目录下的conf子目录, 创建zoo.cfg文本文件,内容如下:

    initLimit=5    
    tickTime=2000
    syncLimit=2    
    dataDir=/usr/local/zookeeper/data    
    dataLogDir=/usr/local/zookeeper/logs    
    clientPort=2181 
    server.1=192.168.22.131:2888:3888  
    server.2=192.168.22.132:2888:3888    
    server.3=192.168.22.135:2888:3888  
    

    三个服务器上都是一样的内容 

    参数说明:

    • tickTime: zookeeper中使用的基本时间单位, 毫秒值.
    • dataDir: 数据目录. 可以是任意目录.
    • dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.
    • clientPort: 监听client连接的端口号.

    3,在配置的dataDir目录下,创建myid文本文件,内容为server.1等的”.”后的数字相同,每个服务器下的myid文件都不相同

    2、安装Flume

    下载路径:http://flume.apache.org/download.html

    (1)基本步骤同上,解压缩,拷贝文件

    (2)目录结构

    /bin 执行文件目录

    /conf  配置文件目录

    /lib    依赖目录

    /tools    辅助工具目录

    (3)拷贝配置文件示例 flume-conf.properties.template 和 flume-env.sh.template

    命名为 flume.conf 以及 flume-env.sh

    flume.conf 配置 source、channel、sink等信息

    flume-env.sh 配置启动信息

    配置JAVA_HOME,如果用Linux自带Jdk,也可以不配置,可以直接使用

    (4)启动 Flume

    bin/flume-ng agent --conf conf --conf-flie flume.conf --name agent1 -Dflume.root.logger=INFO,console

    --conf 配置文件目录

    --conf-file 配置文件

    --name agent名

    -Dflume应该是定义一个变量,日志级别?(不确定)


    3.2 在topic中发送消息

    [root@192-168-123-169 bin]# ./kafka-console-producer.sh --topic test --broker-list 192.168.123.169:9092
    abc
    ddd
    aaa
    ddd
    whoami
    

    生产环境使用集群至少需要三台服务器,官方建议至少3或5台,并且集群节点个数必须是奇数。需要java环境,jdk1.8 (自己先配置好,本文不涉及)。

    kafka:

    1,在server.propoties文件中更改:

    新葡亰496net 13

    新葡亰496net 14

    新葡亰496net 15

    3、安装Kafka

    下载路径:http://kafka.apache.org/downloads

    (1)基本步骤同上,解压缩,拷贝文件

    (2)目录结构

    /bin 执行文件目录

    /config 配置文件目录

    /lib    依赖目录

    /logs 日志数据目录

    (3)修改配置文件

    server.properties

    broker.id =  0

    port = 9092

    listeners = PLAINTERXT:// "ip:port"

    配置个人搭建的 zookeeper 

    zookeeper.connect = ip:port

    zookeeper.connect.timeout.ms = 6000

    修改 producer.properties 以及 consumer.properties 可以启动 produce和consumer对kafka的topic进行生产和消费

    也可以直接在启动时直接带参数

    搭建集群时,拷贝配置文件 修改broker.id、

    (4)启动

    //kafka start

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

    //kafka 消费者

    bin/kafka-console-consumer.sh --zookeeper “ip”:2181 --topic topic --from-beginning

    //kafka 生产者

    bin/kafka-console-producer.sh --broker-list “ip”:9092 --topic topic


    3.3 消费者接受消息

    [root@192-168-123-169 kafka_2.11-0.9.0.0]# bin/kafka-console-consumer.sh --zookeeper  127.0.0.1:2181  --from-beginning --topic test
    abc
    ddd
    aaa
    ddd
    whoami
    

    创建目录:

    启动:

    启动zookeeper服务器(三台):

     bin/zkServer.sh start
    

    启动kafka服务器(三台):

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

     创建topic:

    root@Ubuntu-1:/usr/local/kafka# bin/kafka-topics.sh --create --topic huxing2 --zookeeper 192.168.22.131:2181,192.168.22.132:2181,192.168.22.135:2181 --replication-factor 3 --partitions 2 
    Created topic "huxing2".
    

    列出可使用的topic:

    root@Ubuntu-1:/usr/local/kafka# bin/kafka-topics.sh --list --zookeeper localhost:2181
    huxing2
    

    查询某个topic的信息:

    root@Ubuntu-1:/usr/local/kafka#  bin/kafka-topics.sh --describe --topic huxing2 --zookeeper localhost:2181
    Topic:huxing2    PartitionCount:2    ReplicationFactor:3    Configs:
        Topic: huxing2    Partition: 0    Leader: 0    Replicas: 0,1,2    Isr: 0,1,2
        Topic: huxing2    Partition: 1    Leader: 1    Replicas: 1,2,0    Isr: 1,2,0
    

     

    从图中可以看出来,Partition分别存在不同的broker中,每个broker都不同,所以broker无副本

    遇到的坑

    在配置kafka的listener的时候没有用ip地址,而使用了localhost。而在Flume中用的是ip地址,因此出现Flume认不到Kafka的情况,无法生产到Kafka的Topic中

    另外,修改配置文件的时候,我这里可以在window系统下改了再拷贝进去,方便一点,但不专业

    #mkdir  /data

    #mkdir  /data/zookeeper/{data,logs}  -p

    #tar xf zookeeper-3.4.10.tar.gz

    #rm -rf zookeeper-3.4.10.tar.gz

    修改配置文件:

    创建配置文件zoo.cfg

    #cat  zoo.cfg

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/data/zookeeper/data
    clientPort=2181
    maxClientCnxns=100
    autopurge.snapRetainCount=3
    autopurge.purgeInterval=24
    quorumListenOnAllIPs=true
    dataLogDir=/data/zookeeper/logs
    server.3=10.10.11.92:2888:3888
    server.6=10.10.9.29:2888:3888
    server.9=10.10.8.16:2888:3888 

    创建myid,用于唯一标示一个zk节点,在创建的/data/zookeeper/data目录下面创建:

    #echo 3  >  /data/zookeeper/data/myid

    将配置好的zookeeper服务整个分别copy到另外两台服务器上,并创建需要的目录。

    #mkdir  /data/zookeeper/{data,logs}  -p

    并在相应的data目录下创建各自的myid文件:

    #echo 6  >  /data/zookeeper/data/myid

    #echo 9  >  /data/zookeeper/data/myid

    切换到bin目录,分别启动zk服务:

    ./zkServer.sh start

    三台都启动完成后,发现报错了:

    2017-11-07 15:31:01,300 [myid:3] - WARN  [WorkerSender[myid=3]:QuorumCnxManager@588] - Cannot open channel to 9 at election address /10.10.8.16:3888
    java.net.ConnectException: Connection refused (Connection refused)

    排错:

    1、怀疑是防火墙的问题,这是内网啊,所以不是防火墙;

    2、端口被占用了,lsof  -i:3888,没有输出啊,所以端口也没占用;

    3、ip地址不是本机的网卡

    云服务器采用虚拟化的技术,监听的网卡是属于物理网关的网卡,而虚拟化机内部自然没有这个网卡。

    新葡亰496net:Kafka的单节点配置,Ubuntu下kafka集群环境搭建及测试。在配置文件添加一下参数,重启服务正常:

    quorumListenOnAllIPs=true

     

    2、查看zk状态

    #./zkServer.sh  status

    3、zookeepr常用的四字节命令:

    ZooKeeper四字命令
    功能描述
    conf 3.3.0版本引入的。打印出服务相关配置的详细信息。
    cons 3.3.0版本引入的。列出所有连接到这台服务器的客户端全部连接/会话详细信息。包括"接受/发送"的包数量、会话id、操作延迟、最后的操作执行等等信息。
    crst 3.3.0版本引入的。重置所有连接的连接和会话统计信息。
    dump 列出那些比较重要的会话和临时节点。这个命令只能在leader节点上有用。
    envi 打印出服务环境的详细信息。
    reqs 列出未经处理的请求
    ruok 测试服务是否处于正确状态。如果确实如此,那么服务返回"imok",否则不做任何相应。
    stat 输出关于性能和连接的客户端的列表。
    srst 重置服务器的统计。
    srvr 3.3.0版本引入的。列出连接服务器的详细信息
    wchs 3.3.0版本引入的。列出服务器watch的详细信息。
    wchc 3.3.0版本引入的。通过session列出服务器watch的详细信息,它的输出是一个与watch相关的会话的列表。
    wchp 3.3.0版本引入的。通过路径列出服务器watch的详细信息。它输出一个与session相关的路径。
    mntr

    3.4.0版本引入的。输出可用于检测集群健康状态的变量列表

     

    #echo  mntr  | nc  ip  port

    ip:zk服务器的IP地址; port:zk服务的端口

     

    二、kafka集群

    将下载好的包上传到服务器,并解压到/data目录下:

    #tar xf  kafka_2.11-0.11.0.0.tgz

    只需要修改server.properties文件、consumer.properties、producer.properties文件

    server.properties文件主要注意三个地方:

    broker.id=0       #每个broker在集群中必须是唯一的,如有三个节点可以分别设置为(0、1、2)

    host.name=10.10.8.16      #host.name为个服务器的IP地址,根据自己的情况填写

    zookeeper.connect=10.10.8.16:2181,10.10.9.29:2181,10.10.11.92:2181

     

    #cat server.properties

    broker.id=0
    delete.topic.enable=true
    listeners=PLAINTEXT://10.10.89.219:9092
    num.network.threads=3
    num.io.threads=8
    socket.send.buffer.bytes=102400
    socket.receive.buffer.bytes=102400
    socket.request.max.bytes=104857600
    log.dirs=/data/kafka/kafka-logs
    num.partitions=4
    num.recovery.threads.per.data.dir=1
    offsets.topic.replication.factor=2
    transaction.state.log.replication.factor=2
    transaction.state.log.min.isr=1
    log.retention.hours=168
    log.segment.bytes=1073741824
    log.retention.check.interval.ms=300000
    zookeeper.connect=10.10.8.16:2181,10.10.9.29:2181,10.10.11.92:2181
    zookeeper.connection.timeout.ms=100000
    zookeeper.session.timeout.ms=50000
    group.initial.rebalance.delay.ms=0

     

    将配置好的服务分别copy到另外两台服务器上面:

    !!!注意修改broker.id、host.name,为各自服务器对应的。

    切换到bin目录,启动kafka服务:./kafka-server-start.sh -daemon ../config/server.properties &

     

    2、创建topic

    #./kafka-topics.sh --create --zookeeper 10.10.11.92:2181,10.10.8.16:2181,10.10.9.29:2181 --replication-factor 2 --partitions 9 --topic userlog
    
    参数解释:
    zookeeper:zookeepr集群的地址
    replication-factor:复制两份
    partitions:创建9个partition
    topic: topic名称
    

    使用 describe 命令来显示 topic 详情

    #./kafka-topics.sh --describe --zookeeper 10.10.11.92:2181,10.10.8.16:2181,10.10.9.29:2181 --topic test
    Topic:test    PartitionCount:1    ReplicationFactor:2    Configs:
        Topic: test    Partition: 0    Leader: 3    Replicas: 3,2    Isr: 3,2
    1) Leader 是给定分区的节点编号,每个分区的部分数据会随机指定不同的节点
    2) Replicas 是该日志会保存的复制
    3) Isr 表示正在同步的复制
    
     
    

     

    本文由新葡亰496net发布于电脑系统,转载请注明出处:新葡亰496net:Kafka的单节点配置,Ubuntu下kafka集群

    关键词: