目录

Linux本地安装kafkajava环境配置Zookeeper的安装配置Kafka的安装与配置生产与消费

Docker安装kafkaZookeeper安装Kafka安装

Linux本地安装kafka

java环境配置

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

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

2、配置环境变量:

vim /etc/profile 1

export JAVA_HOME=/usr/java/jdk1.8.0_261-amd647879

export PATH=$PATH:$JAVA_HOME/bin

# 生效

source /etc/profile

# 验证

java -version

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/lagou/zookeeper/data

4、编辑/etc/profile:

设置环境变量ZOO_LOG_DIR,指定Zookeeper保存日志的位置;ZOOKEEPER_PREFIX指向Zookeeper的解压目录;将Zookeeper的bin目录添加到PATH中:

export Z00KEEPER_PREFIX=/opt/zookeeper-3.4.14

export PATH=$PATH:$Z00KEEPER_PREFIx/bin

export Z00_L0G_DIR=/var/lagou/zookeeper/log

5、使配置生效:

source /etc/profile

6、验证:

zkServer.sh status

Kafka的安装与配置

1、上传kafka_2.12-1.0.2.tgz到服务器并解压:

tar -zxf kafka_2.12-1.0.2.tgz -C /opt

2、配置环境变量并生效:

vim /etc/profile

export KAFKA_HOME=/opt/kafka_2.12-1.0.2

export PATH=$PATH:$KAFKA_HOME/bin

3、配置/opt/kafka_2.12-1.0.2/config中的server.properties文件:

Kafka连接Zookeeper的地址,此处使用本地启动的Zookeeper实例,连接地址是localhost:2181,后面的 myKafka 是Kafka在Zookeeper中的根节点路径:

4、启动Zookeeper:

zkServer.sh start

5、确认Zookeeper的状态:

6、启动Kafka:

进入Kafka安装的根目录,执行如下命令:

启动成功,可以看到控制台输出的最后一行的started状态:

INF0 [KafkaServer id=0] started(kafka.server.KafkaServer)

7、查看Zookeeper的节点:

8、此时Kafka是前台模式启动,要停止,使用Ctrl+C。

如果要后台启动,使用命令:

kafka-server-start.sh -daemon config/server.properties

查看Kafka的后台进程:

ps aux | grep kafka

停止后台运行的Kafka:

kafka-server-stop.sh

生产与消费

1、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

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

# 开启生产者

kafka-console-producer.sh --topic topic_1 --broker-list localhost:9092

3、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

Docker安装kafka

Zookeeper安装

1、拉取zookeeper 镜像

docker pull zookeeper

2、运行zookeeper 服务

docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name zookeeper -p 2181:2181 -v /mydata/zookeeper/data:/data -v /mydata/zookeeper/conf:/conf -v /mydata/zookeeper/logs:/datalog zookeeper

参数:

--log-driver json-file:指定日志驱动程序为json-file。json-file是一个日志驱动程序,它将日志记录为JSON格式的文件。--log-opt max-size=100m:设置每个日志文件的最大大小为100MB。当单个日志文件达到这个大小时,Docker会自动开始写入新的日志文件。--log-opt max-file=2:设置最多保留2个日志文件。当达到这个限制时,旧的日志文件会被自动删除,以保留最新的2个日志文件。--name zookeeper:容器名字 -p 2181:2181:映射端口 -v /mydata/zookeeper/data:/data:挂载Zookeeper的数据目录,存储其运行时数据,包括事务日志和快照-v /mydata/zookeeper/conf:/conf:挂载Zookeeper配置文件-v /mydata/zookeeper/logs:/datalog:挂载Zookeeper的日志文件

日志相关的参数只是测试使用,实际根据需求调整。

本机修改文件路径后:

docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name zookeeper -p 2181:2181 -v /Users/fltech/docker/zookeeper/data:/data -v /Users/fltech/docker/zookeeper/conf:/conf -v /Users/fltech/docker/zookeeper/logs:/datalog zookeeper

3、验证是否启动成功

进入zookeeper容器

docker exec -it 容器id /bin/bash

找到配置文件位置

cat /conf/zoo.cfg

查看zookeeper状态

zkServer.sh status

显示如下:

Using config: /conf/zoo.cfg

Client port found: 2181. Client address: localhost. Client SSL: false.

Mode: standalone

说明Zookeeper启动成功,运行模式是单机版。

Kafka安装

1、拉取kafka 镜像

docker pull kafka

2、运行kafka

docker run -d --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.1.21:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.21:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime -v /mydata/kafka/conf:/opt/kafka/conf -v /mydata/kafka/data:/tmp/kafka-logs -v /mydata/kafka/logs:/logs wurstmeister/kafka

kafka运行时,指定需要的环境变量

-e KAFKA_BROKER_ID=0:配置BROKER_ID,默认第一台是0,单机模式下只能是0-e KAFKA_ZOOKEEPER_CONNECT=192.168.1.21:2181/kafka:配置zookeeper的地址及管理kafka的路径,注意IP使用公网地址-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.21:909 :把kafka的地址端口注册给zookeeper-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092: 配置kafka的监听端口-v /etc/localtime:/etc/localtime: 容器时间同步虚拟机的时间

挂载文件根据需要:

-v /mydata/kafka/conf:/opt/kafka/conf:挂载配置文件

-v /mydata/kafka/data:/tmp/kafka-logs:挂载数据目录,存储其运行时数据,包括日志文件和元数据

-v /mydata/kafka/logs:/logs:挂载日志

本机修改文件路径后:

docker run -d --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.1.21:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.21:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime -v /Users/fltech/docker/kafka/conf:/opt/kafka/conf -v /Users/fltech/docker/kafka/data:/tmp/kafka-logs -v /Users/fltech/docker/kafka/logs:/logs wurstmeister/kafka

验证是否启动成功

进入容器:

docker exec -it kafka1 bash

到保存脚本的目录:

cd /opt/kafka_2.13-2.7.1/bin

创建一个topic:

/opt/kafka_2.13-2.7.1/bin > kafka-topics.sh --create --zookeeper 192.168.1.21:2181/kafka --replication-factor 1 --partitions 1 --topic topicDemo

Created topic topicDemo.

能够成功创建,说明安装成功。

相关阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: