2 kafka安装配置

2.1 Java环境为前提

1、上传jdk-8u261-linux-x64.rpm到服务器并安装:

  1. rpm -ivh jdk-8u261-linux-x64.rpm 1

2、配置环境变量:

vim /etc/profile 1
# 生效 source
/etc/profile

# 验证
java -version

2.2 Zookeeper的安装配置

1、上传zookeeper-3.4.14.tar.gz到服务器
2、解压到/opt:

tar -zxf zookeeper-3.4.14.tar.gz -C /opt

cd /opt/zookeeper-3.4.14/conf

# 复制zoo_sample.cfg命名为zoo.cfg
cp zoo_sample.cfg zoo.cfg

# 编辑zoo.cfg文件
vim zoo.cfg

3、修改Zookeeper保存数据的目录,dataDir:

  • dataDir=/var/zookeeper/data

4、编辑/etc/profile:

  • 设置环境变量ZOO_LOG_DIR,指定Zookeeper保存日志的位置;
  • ZOOKEEPER_PREFIX指向Zookeeper的解压目录;
  • 将Zookeeper的bin目录添加到PATH中:
    export ZOOKEEPER_PREFIX=/opt/zookeeper-3.4.14
    export PATH=$PATH:$ZOOKEEPER_PREFIX/bin
    export ZOO_LOG_DIR=/var/zookeeper/log
    
    5、使配置生效:
    source /etc/profile
    
    6、验证:
    image.png

    2.3 Kafka的安装与配置

    1、上传kafka_2.12-1.0.2.tgz到服务器并解压:
    tar -zxf kafka_2.12-1.0.2.tgz -C /opt
    
    2、配置环境变量并生效:
    vim /etc/profile
    
    image.png
    3、配置/opt/kafka_2.12-1.0.2/config中的server.properties文件:
    Kafka连接Zookeeper的地址,此处使用本地启动的Zookeeper实例,连接地址是localhost:2181,后面的 myKafka 是Kafka在Zookeeper中的根节点路径:
    image.png
    配置Kafka存储持久化数据的目录
    log.dir=/var/kafka/kafka-logs
    mkdir -p /var/kafka/kafka-logs
    
    4、启动Zookeeper:
    zkServer.sh start
    
    5、确认Zookeeper的状态:
    image.png
    6、启动Kafka:
    进入Kafka安装的根目录,执行如下命令:
    image.png
    启动成功,可以看到控制台输出的最后一行的started状态:
    image.png
    7、查看Zookeeper的节点:
    image.png
    8、此时Kafka是前台模式启动,要停止,使用Ctrl+C。
    如果要后台启动,使用命令:
    kafka-server-start.sh -daemon config/server.properties
    
    image.png
    查看Kafka的后台进程:
    ps aux | grep kafka
    
    停止后台运行的Kafka:
    image.png

2.4 生产与消费

1、kafka-topics.sh 用于管理主题。

# 列出现有的主题
[root@node1 ~]# kafka-topics.sh --list --zookeeper localhost:2181/myKafka

# 创建主题,该主题包含一个分区,该分区为Leader分区,它没有Follower分区副本。
[root@node1 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka --create 
 --topic topic_1 --partitions 1 --replication-factor 1

# 查看分区信息
[root@node1 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka --list

# 查看指定主题的详细信息
[root@node1 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka -- describe
 --topic topic_1 

# 删除指定主题
[root@node1 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka --delete 
 --topic topic_1

2、kafka-console-producer.sh用于生产消息:

# 开启生产者
[root@node1 ~]# kafka-console-producer.sh --topic topic_1 --broker-list localhost:9020

3、kafka-console-consumer.sh用于消费消息:

# 开启消费者
[root@node1 ~]# kafka-console-consumer.sh --bootstrap-server localhost:9092 
 --topic topic_1

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