基于JDK8的Kafka安装与配置

Posted Lossdate

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于JDK8的Kafka安装与配置相关的知识,希望对你有一定的参考价值。

kafka: fka_2.12-1.0.2.tgz
jdk: jdk-8u261-linux-x64.rpm
zookeeper: zookeeper-3.4.14.tar.gz

一、Java环境安装

  1. jdk安装
    rpm -ivh jdk-8u261-linux-x64.rpm
    
  2. 配置环境变量
    vim /etc/profile
    
    在最后追加
    export JAVA_HOME=/usr/java/jdk1.8.0_261-amd64
    export PATH=$PATH:$JAVA_HOME/bin
    
    退出后生效配置
    . /etc/profile
    #验证
    java -version
    

二、 Zookeeper的安装配置

  1. 解压到/opt
    tar -zxvf zookeeper-3.4.14.tar.gz -C /opt
    
  2. 编辑/etc/profile
    vi /etc/profile
    
    末尾追加
    #ZOOKEEPER_PREFIX指向Zookeeper的解压目录
    export ZOOKEEPER_PREFIX=/opt/zookeeper-3.4.14
    #将Zookeeper的bin目录添加到PATH中
    export PATH=$PATH:$ZOOKEEPER_PREFIX/bin
    #设置环境变量ZOO_LOG_DIR,指定Zookeeper保存日志的位置 
    export ZOO_LOG_DIR=/var/lossdate/zookeeper/log
    
    生效配置
    . /etc/profile
    
  3. 配置zookeeper的conf
    cd /opt/zookeeper-3.4.14/conf/
    cp zoo_sample.cfg zoo.cfg
    vi zoo.cfg
    
    修改
    dataDir=/var/lossdate/zookeeper/data
    
  4. 启动
    zkServer.sh start
    

三、 Kafka的安装与配置

  1. 解压

    tar -zxf   fka_2.12-1.0.2.tgz -C /opt
    
  2. 配置环境变量

    vi /etc/profile
    

    末尾追加

    export KAFKA_HOME=/opt/kafka_2.12-1.0.2
    export PATH=$PATH:$KAFKA_HOME/bin
    

    生效配置

    . /etc/profile
    
  3. 配置server.properties

    cd /opt/kafka_2.12-1.0.2/config/
    vi server.properties
    

    修改zookeeper.connect和log.dirs

    advertised.listeners=PLAINTEXT://192.168.200.142:9092
    zookeeper.connect=localhost:2181/myKafka
    log.dirs=/var/lossdate/kafka/kafka-logs
    

    创建日志目录

    mkdir -p /var/lossdate/kafka/kafka-logs
    
  4. 启动kafka

    cd /opt/kafka_2.12-1.0.2/bin
    kafka-server-start.sh ../config/server.properties
    #后台启动,使用命令
    kafka-server-start.sh -daemon ../config/server.properties
    
  5. 查看

    zkCli.sh
    ls /
    ls /myKafka
    

    可以看到kafka已经注册到zookeeper上了

  6. 退出

    kafka-server-stop.sh
    
  7. P.S. 内外网隔离配置
    在配置文件里vi /etc/profile

    listener.security.protocol.map=INTERNAL:SSL,EXTERNAL:SSL
    listeners=INTERNAL://192.168.200.141:9000,EXTERNAL://192.168.200.142:9001
    advertised.listeners=EXTERNAL://192.168.200.142:9001
    inter.broker.listener.name=EXTERNAL
    

    listener.security.protocol.map : 监听器名称和安全协议的映射配置, 可以将内外网隔离,即使它们都使用SSL,每个监听器的名称只能在map中出现一次
    listeners : 用于配置broker监听的URI以及监听器名称列表,使用逗号隔开多个URI及监听器名称
    advertised.listeners : 需要将该地址发布到zookeeper供客户端使用,如果客户端使用的地址与listeners配置不同, advertised.listeners的地址必须是listeners中配置的或配置的一部分
    inter.broker.listener.name : 用于配置broker之间通信使用的监听器名称,该名称必须在advertised.listeners列表中

四、Kafka生产与消费

  1. 查看zookeeper状态正常并启动kafka

    zkServer.sh status
    kafka-server-start.sh -daemon /opt/kafka_2.12-1.0.2/config/server.properties
    
  2. kafka-topics.sh 主题管理

    #列出现有的主题 
    kafka-topics.sh --list --zookeeper localhost:2181/myKafka
    #创建主题,该主题包含一个分区,分区为Leader分区,它没有Follower分区副本
    kafka-topics.sh --zookeeper localhost:2181/myKafka --create --topic topic_1 --partitions 1 --replication-factor 1
    #查看分区信息
    kafka-topics.sh --zookeeper localhost:2181/myKafka --list
    #查看指定主题的详细信息
    kafka-topics.sh --zookeeper localhost:2181/myKafka --describe --topic topic_1
    #删除指定主题
    kafka-topics.sh --zookeeper localhost:2181/myKafka --delete --topic topic_1
    
  3. kafka-console-producer.sh 生产消息

    #开启生产者, 就可以输入消息了
    kafka-console-producer.sh --topic topic_1 --broker-list localhost:9092
    
  4. kafka-console-consumer.sh 消费消息

    #开启消费者方式一,按照偏移量消费
    kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic_1
    #开启消费者方式二,从头消费,不按照偏移量消费
    kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic_1 --from-beginning
    

    问题:Will not attempt to authenticate using SASL (unknown error)
    解决:进入zookeeper的conf目录的zoo.cfg追加zookeeper.client.sasl=false

    vim zoo.cfg
    zookeeper.client.sasl=false
    

以上是关于基于JDK8的Kafka安装与配置的主要内容,如果未能解决你的问题,请参考以下文章

搭建基于 HDFS 碎片文件存储服务

kafka的认识安装与配置

Ubuntu 16下单机安装配置zookeeper和kafka

Unbuntu16搭建Kafka环境总结

ELK 日志采集框架:Kafka安装与配置

centos7下安装jdk8