Kafka部署笔记

1 篇文章 0 订阅
1 篇文章 0 订阅

Kafka笔记

kafka基础架构

在这里插入图片描述

1)Producer :消息生产者,就是向 kafka broker 发消息的客户端;

2)Consumer :消息消费者,向 kafka broker 取消息的客户端;

3)Consumer Group (CG):消费者组,由多个 consumer 组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。

4)Broker :一台 kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个 broker可以容纳多个 topic。

5)Topic :可以理解为一个队列,生产者和消费者面向的都是一个 topic;

6)Partition:为了实现扩展性,一个非常大的 topic 可以分布到多个 broker(即服务器)上,一个 topic 可以分多个 partition,每个 partition 是一个有序的队列;

7)Replica:副本,为保证集群中的某个节点发生故障时,该节点上的 partition 数据不丢失,且 kafka 仍然能够继续工作,kafka 提供了副本机制,一个 topic 的每个分区都有若干个副本,一个 leader 和若干个 follower。

8)leader:每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是 leader。

9)follower:每个分区多个副本中的“从”,实时从 leader 中同步数据,保持和 leader 数据的同步。leader 发生故障时,某个 follower 会成为新的 follower。

安装部署

集群规划:(kafaka 依赖于zookeeper)

Hadoop102Hadoop103Hadoop104
zkzkzk
KafkaKafkaKafka
  1. jar包下载

    下载地址:https://kafka.apachecn.org/downloads.html

    选择版本:0.11.0.0
    在这里插入图片描述

  2. 上传文件,解压安装包,修改文件夹名称

    [hadoop@hadoop102 software]$ rz
    [hadoop@hadoop102 software]$ tar -zxvf kafka_2.11-0.11.0.0.tgz -C /opt/module/
    [hadoop@hadoop102 module]$ mv kafka_2.11-0.11.0.0/ kafka
    
  3. 在/opt/module/kafka 目录下创建 logs 文件夹

    [hadoop@hadoop102 module]$ cd kafka/
    [hadoop@hadoop102 kafka]$ ls
    bin  config  libs  LICENSE  NOTICE  site-docs
    [hadoop@hadoop102 kafka]$ mkdir logs
    
  4. 修改配置文件

    [hadoop@hadoop102 kafka]$ cd config/
    [hadoop@hadoop102 config]$ vi server.properties 
    #broker 的全局唯一编号,不能重复
    broker.id=0
    #删除 topic 功能使能
    delete.topic.enable=true
    #处理网络请求的线程数量
    num.network.threads=3
    #用来处理磁盘 IO 的现成数量
    num.io.threads=8
    #发送套接字的缓冲区大小
    socket.send.buffer.bytes=102400
    #接收套接字的缓冲区大小
    socket.receive.buffer.bytes=102400
    #请求套接字的缓冲区大小
    socket.request.max.bytes=104857600
    #kafka 运行日志存放的路径
    log.dirs=/opt/module/kafka/logs
    #topic 在当前 broker 上的分区个数
    num.partitions=1
    #用来恢复和清理 data 下数据的线程数量
    num.recovery.threads.per.data.dir=1
    #segment 文件保留的最长时间,超时将被删除
    log.retention.hours=168
    #配置连接 Zookeeper 集群地址
    zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181
    
  5. 配置环境变量

    [hadoop@hadoop102 etc]$ sudo vi /etc/profile.d/my_env.sh
    
  6. 分发安装包和环境变量

    ## 分发安装包
    [hadoop@hadoop102 module]$ xsync kafka/
    ## 分发环境变量
    [hadoop@hadoop102 module]$ sudo /home/hadoop/bin/xsync  /etc/profile.d/my_env.sh 
    ## 使配置生效
    [hadoop@hadoop102 module]$  source /etc/profile
    [hadoop@hadoop103 module]$  source /etc/profile
    [hadoop@hadoop104 module]$  source /etc/profile
    
  7. 分别在 hadoop103 和 hadoop104 上修改配置文件/opt/module/kafka/config/server.properties中的 broker.id=1、broker.id=2

    注:broker.id 不得重复

    [hadoop@hadoop103 clickhouse]$ vi /opt/module/kafka/config/server.properties 
    [hadoop@hadoop104 clickhouse]$ vi /opt/module/kafka/config/server.properties 
    
  8. 启动集群

    ## 启动zk
    [hadoop@hadoop102 module]$ myzk.sh start
     =================== 启动 Zookeeper 集群 ===================
    JMX enabled by default
    Using config: /opt/module/zookeeper-3.4.5-cdh5.12.1/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    JMX enabled by default
    Using config: /opt/module/zookeeper-3.4.5-cdh5.12.1/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    JMX enabled by default
    Using config: /opt/module/zookeeper-3.4.5-cdh5.12.1/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    ##依次在 hadoop102、hadoop103、hadoop104 节点上启动 kafka
    [hadoop@hadoop102 module]$ bin/kafka-server-start.sh -daemon config/server.properties
    [hadoop@hadoop103 module]$ bin/kafka-server-start.sh -daemon config/server.properties
    [hadoop@hadoop104 module]$ bin/kafka-server-start.sh -daemon config/server.properties
    ## 关闭
    [hadoop@hadoop102 kafka]$ bin/kafka-server-stop.sh stop
    [hadoop@hadoop103 kafka]$ bin/kafka-server-stop.sh stop
    [hadoop@hadoop104 kafka]$ bin/kafka-server-stop.sh stop
    
  9. 使用脚本群起

    [hadoop@hadoop102 kafka]$ cd /home/hadoop/bin/
    
    [hadoop@hadoop102 bin]$ vi mykafka.sh
    #!/bin/bash
    
    case $1 in
    "start"){
            for i in hadoop102 hadoop103 hadoop104
            do
                    echo "*****$i Start*****"
                    ssh $i "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"
            done
    };;
    
    "stop"){
            for i in hadoop102 hadoop103 hadoop104
            do
                    echo "*****$i Stop*****"
                    ssh $i "/opt/module/kafka/bin/kafka-server-stop.sh"
            done
    };;
    *)
            echo "Input Args Error..."
    ;;
    esac
    ~
    ~
    "mykafka.sh" [New] 22L, 440C written
    [hadoop@hadoop102 bin]$ chmod 777 mykafka.sh 
    
  10. 使用脚本启动

    [hadoop@hadoop102 bin]$ jpsall
    =============== hadoop102 ===============
    2626 QuorumPeerMain
    3356 Jps
    =============== hadoop103 ===============
    4263 QuorumPeerMain
    4671 Jps
    =============== hadoop104 ===============
    4304 QuorumPeerMain
    4710 Jps
    [hadoop@hadoop102 bin]$ mykafka.sh start
    *****hadoop102 Start*****
    *****hadoop103 Start*****
    *****hadoop104 Start*****
    [hadoop@hadoop102 bin]$ jpsall
    =============== hadoop102 ===============
    2626 QuorumPeerMain
    3682 Jps
    3612 Kafka
    =============== hadoop103 ===============
    4263 QuorumPeerMain
    4985 Jps
    4923 Kafka
    =============== hadoop104 ===============
    4304 QuorumPeerMain
    5024 Jps
    4962 Kafka
    [hadoop@hadoop102 bin]$ mykafka.sh stop
    *****hadoop102 Stop*****
    *****hadoop103 Stop*****
    *****hadoop104 Stop*****
    [hadoop@hadoop102 bin]$ jpsall
    =============== hadoop102 ===============
    2626 QuorumPeerMain
    3756 Jps
    =============== hadoop103 ===============
    4263 QuorumPeerMain
    5048 Jps
    =============== hadoop104 ===============
    4304 QuorumPeerMain
    5088 Jps
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值