• Kafka 基本使用


    1、安装部署

    1.1、集群规划

    hadoop103
    hadoop104
    hadoop105
    zk
    zk
    zk
    kafka
    kafka
    kafka

     1.2、安装&配置

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

    解压安装包,重命名安装路径

    [hui@hadoop103 software]$ tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/module/
    [hui@hadoop103 module]$ mv kafka_2.12-3.0.0 kafka

    kafka 基础配置 粗体部分是需要特别注意的地方

    [hui@hadoop103 config]$ vim server.properties
    #broker的全局唯一编号,不能重复,只能是数字。
    broker.id=0
    #处理网络请求的线程数量
    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运行日志(数据)存放的路径,路径不需要提前创建,kafka自动帮你创建,可以配置多个磁盘路径,路径与路径之间可以用","分隔
    log.dirs=/opt/module/kafka/datas
    #topic在当前broker上的分区个数
    num.partitions=1
    #用来恢复和清理data下数据的线程数量
    num.recovery.threads.per.data.dir=1
    #每个topic创建时的副本数,默认时1个副本
    offsets.topic.replication.factor=1
    #segment文件保留的最长时间,超时将被删除
    log.retention.hours=168
    #每个segment文件的大小,默认最大
    1Glog.segment.bytes=1073741824
    #检查过期数据的时间,默认5分钟检查一次是否数据过期
    log.retention.check.interval.ms=300000
    #配置连接Zookeeper集群地址(在zk根目录下创建/kafka,方便管理)
    zookeeper.connect=hadoop103:2181,hadoop104:2181,hadoop105:2181/kafka

     分发安装文件

    [hui@hadoop103 module]$ sxync.sh kafka/

    注意分发完后记得修改104 105 上的 broker.id 集群内不能重复

    [hui@hadoop104 ~]$ less /opt/module/kafka/config/server.properties 
    broker.id=1
    [hui@hadoop105 ~]$ less /opt/module/kafka/config/server.properties 
    broker.id=2

     环境变量配置

    [hui@hadoop103 ~]$ vim /etc/profile
    #KAFKA_HOME
    export KAFKA_HOME=/opt/module/kafka
    export PATH=$PATH:$KAFKA_HOME/bin

    分发环境变量& source

    [hui@hadoop103 ~]$ /home/hui/bin/sxync.sh /etc/profile
    [hui@hadoop103 module]$ source /etc/profile
    [hui@hadoop104 module]$ source /etc/profile
    [hui@hadoop105 module]$ source /etc/profile

    1.3、群起脚本

    zookeeper 群起

    #!/bin/sh
    
    case $1 in
    "start"){
    
      for i in hui@hadoop103 hui@hadoop104 hui@hadoop105
      do
      echo ------------------- $i  --------------
             ssh $i 'source /etc/profile && /opt/module/zookeeper-3.4.10/bin/zkServer.sh start'
      done
    };;
    
    "stop"){
    
    for i in hui@hadoop103 hui@hadoop104 hui@hadoop105
            do
        echo ------------------- $i  --------------
            ssh $i 'source /etc/profile && /opt/module/zookeeper-3.4.10/bin/zkServer.sh stop'
            done
    };;
    
    esac

    kafka 群起

    [hui@hadoop103 bin]$ cat kk.sh 
    #!/bin/sh
    case $1 in
    "start")
            for i in hadoop103 hadoop104 hadoop105
            do
            echo "---- start $i kafka ---"
            ssh $i "source /etc/profile && /opt/module/kafka/bin/kafka-server-start.sh  -daemon /opt/module/kafka/config/server.properties "
            done
    ;;
    "stop")
            for i in hadoop103 hadoop104 hadoop105
            do
            echo "---- stop $i kafka ---"
            ssh $i "/opt/module/kafka/bin/kafka-server-stop.sh  "
            done
    ;;
    esac

    注意:停止Kafka集群时,一定要等Kafka所有节点进程全部停止后再停止Zookeeper集群。因为Zookeeper集群当中记录着Kafka集群相关信息,Zookeeper集群一旦先停止,Kafka集群就没有办法再获取停止进程的信息,只能手动杀死Kafka进程了。

    2、Kafka 命令行操作

    kafka 基础架构

     2.1、topic 命令

    查看操作主题命令参数

    [hui@hadoop103 kafka]$ bin/kafka-topics.sh 

     

     应用举例

     查看多有topic 

    [hui@hadoop103 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop103:9092 --list

    创建topic

    [hui@hadoop103 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop103:9092 --create --topic first --partitions 1 --replication-factor 1
    Created topic first 

     选项说明

    1. --topic first 创建 topci 名称是 first
    2. --partitions 设置分区数
    3. --replication-factor 设置副本数

    查看主题详情

    [hui@hadoop103 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop103:9092  --describe --topic first
    Topic: first    TopicId: iKYakcuBTaO4mPK0RIF7TQ PartitionCount: 1       ReplicationFactor: 1    Configs: segment.bytes=1073741824
            Topic: first    Partition: 0    Leader: 2       Replicas: 2     Isr: 2

    修改分区数再次查看详情(分区数只能增加不能减少)

    [hui@hadoop103 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop103:9092 --alter --topic first --partitions 2
    [hui@hadoop103 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop103:9092  --describe --topic first
    Topic: first    TopicId: iKYakcuBTaO4mPK0RIF7TQ PartitionCount: 2       ReplicationFactor: 1    Configs: segment.bytes=1073741824
            Topic: first    Partition: 0    Leader: 2       Replicas: 2     Isr: 2
            Topic: first    Partition: 1    Leader: 0       Replicas: 0     Isr: 0

    删除主题

    [hui@hadoop103 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop103:9092 --delete --topic first
    [hui@hadoop103 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop103:9092 --list

     2.2、produce 命令

    produce 命令

    [hui@hadoop103 kafka]$ bin/kafka-console-producer.sh 

     发送消息测试

    [hui@hadoop103 kafka]$ bin/kafka-console-producer.sh --bootstrap-server hadoop103:9092 --topic first

    2.3、消费者命令

    消费者命令

    [hui@hadoop103 kafka]$ bin/kafka-console-consumer.sh

     测试

    首先启动消费者进程

    [hui@hadoop103 kafka]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop103:9092 --topic first

    发送消息

    [hui@hadoop103 kafka]$ bin/kafka-console-producer.sh --bootstrap-server hadoop103:9092 --topic first
    >hello word
    >hello kk
    >hello wdh01

    消费到的消息

    [hui@hadoop103 kafka]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop103:9092 --topic first
    hello word
    hello kk
    hello wdh01

  • 相关阅读:
    sqlite学习笔记9:C语言中使用sqlite之插入数据
    基于对话框的应用程序,点击button打开一个网页
    数组溢界地址的正确使用: 即 int a[6] 中的 a[-1] 和 a[6] 正确使用
    BeagleBone硬件概览Ethernet端口板载LEDc重置按钮等介绍
    ARP缓存记录种类动态条目和静态条目
    ArduinoYun的电源插座
    Xamarin开发Anroid应用介绍
    学习NGUI前的准备NGUI的相关信息
    Xamarin Android开发实战(上册)大学霸内部资料
    NGUI全面实践教程(大学霸内部资料)
  • 原文地址:https://www.cnblogs.com/wdh01/p/16066001.html
Copyright © 2020-2023  润新知