• kafka学习笔记(二)——基础入门


    1、集群规划

    从官网下载jar包 http://kafka.apache.org/downloads.html,我选择的是kafka_2.11-0.11.0.0.tgz版本

    规划一下集群环境先~

    hadoop102 hadoop103 hadoop104
    zk zk zk
    kafka kafka kafka

    2、集群部署

    1)解压安装包

    [simon@hadoop102 software]$ tar -zxvf kafka_2.11-0.11.0.0.tgz -C /opt/module/
    

    2)修改解压后的文件名称

    [simon@hadoop102 module]$ mv kafka_2.11-0.11.0.0/ kafka
    

    3)在/opt/module/kafka目录下创建logs文件夹

    • 注意注意注意:虽然它的名字是log,但他并不是存储的日志文件,具体内容以后再写,首要任务是搭建起来环境
    [simon@hadoop102 kafka]$ mkdir logs
    

    4)修改配置文件

    [simon@hadoop102 kafka]$ cd config/
    
    [simon@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运行日志存放的路径,实际上是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)配置环境变量

    [simon@hadoop102 module]$ sudo vi /etc/profile
    
    #KAFKA_HOME
    export KAFKA_HOME=/opt/module/kafka
    export PATH=$PATH:KAFKA_HOME/bin
    
    [simon@hadoop102 module]$ source /etc/profile
    

    6)分发安装包

    [simon@hadoop102 module]$ xsync kafka/
    

    注意:分发之后记得配置其他机器的环境变量

    7)分别在hadoop103和hadoop104上修改配置文件/opt/module/kafka/config/server.properties中的broker.id=1、broker.id=2

    注意:broker.id不得重复

    8)启动集群

    依次在hadoop102、hadoop103、hadoop104节点上启动kafka

    [simon@hadoop102 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
    
    [simon@hadoop103 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
    
    [simon@hadoop104 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
    
    

    9)关闭集群

    [simon@hadoop102 kafka]$ bin/kafka-server-stop.sh stop
    
    [simon@hadoop103 kafka]$ bin/kafka-server-stop.sh stop
    
    [simon@hadoop104 kafka]$ bin/kafka-server-stop.sh stop
    

    10)编写kafka群起脚本
    放在/usr/local/bin目录下

    #!/bin/bash
    case $1 in
    "start"){
            for i in hadoop102 hadoop103 hadoop104
            do
                    echo "========== $i =========="
                    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 hadoop102 hadoop103 hadoop104
            do  
                    echo "========== $i =========="
                    ssh $i 'source /etc/profile&&/opt/module/kafka/bin/kafka-server-stop.sh'
            done  
    };;
    esac
    

    3、Kafka基础命令行操作

    1)查看当前服务器中的所有的topic

    [simon@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --list
    

    2)创建topic

    [simon@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 
    --create --replication-factor 3 --partitions 1 --topic first
    

    选项说明:
    --topic 定义topic名
    --replication-factor 定义副本数
    --partitions 定义分区数

    3)删除topic

    [simon@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 
    --delete --topic first
    

    注意:需要server.properties中设置delete.topic.enable=true否则只是标记删除

    4)发送消息

    [simon@hadoop102 kafka]$ bin/kafka-console-producer.sh 
    --broker-list hadoop102:9092 --topic first
    >hello world
    >simon  simon
    

    5)消费消息

    [simon@hadoop103 kafka]$ bin/kafka-console-consumer.sh 
    --bootstrap-server hadoop102:9092 --from-beginning --topic simon
    

    6)查看某个topic的详情

    [simon@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 
    --describe --topic first
    

    7)修改分区数

    [simon@hadoop102 kafka]$bin/kafka-topics.sh --zookeeper hadoop102:2181 --alter --topic first --partitions 6
    

    截至到现在,整个环境算是准备好了,可以接下来的学习咯~~

  • 相关阅读:
    54.施工方案第二季(最小生成树)
    53.FIB词链
    52.1076 排序
    最短路径:我的理解--SPFA算法
    POJ2187Beauty Contest
    CodeForces 279B Books
    SDUT 2527 斗地主
    HDU1020 Encoding
    POJ 2635 The Embarrassed Cryptographer
    POJ 1942 Paths on a Grid(组合数)
  • 原文地址:https://www.cnblogs.com/simon-1024/p/12008339.html
Copyright © 2020-2023  润新知