IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Docker安装kafka&zookeeper -> 正文阅读

[大数据]Docker安装kafka&zookeeper

1、下载镜像

#下载zookeeper
docker pull wurstmeister/zookeeper

#下载kafka
docker pull wurstmeister/kafka

#下载kafka-manager,这个可以不用要
docker pull sheepkiller/kafka-manager

2、启动镜像

2.1、启动zookeeper

docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper

2.2、启动kafka

docker run -d --name kafka \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.1.100:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.100:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka 

这里面主要设置了4个参数

KAFKA_BROKER_ID=0
KAFKA_ZOOKEEPER_CONNECT=192.168.1.100:2181
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.100:9092
KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092

中间两个参数的192.168.1.100改为宿主机器的IP地址或域名,如果不这么设置,可能会导致在别的机器上访问不到kafka。

格式化后,等同上方:

docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.1.100:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.100:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka 

注意:这里的IP和下方的IP换成自己的IP即可。

启动成功如图所示:

?3、测试Kafka

进入docker的kafka容器

#进入容器
docker exec -it ${容器ID} /bin/bash

# 进入
cd /opt/kafka_2.12-2.3.0/

执行下面命令:

#1、查看当前服务器中的所有topic
bin/kafka-topics.sh --zookeeper 192.168.1.100:2181 --list

#2、创建topic
bin/kafka-topics.sh --create --zookeeper 192.168.1.100:2181 --replication-factor 1 --partitions 1 --topic mykafka
选项说明:
--topic 定义topic名
--replication-factor  定义副本数
--partitions  定义分区数

#3、删除topic
bin/kafka-topics.sh --zookeeper 192.168.1.100:2181 --delete --topic mykafka
需要server.properties中设置delete.topic.enable=true否则只是标记删除。

#4、创建生产者,发送消息
bin/kafka-console-producer.sh --broker-list 192.168.1.100:9092 --topic mykafka
>hello world
>6666666

#5、创建消费者,消费消息(三种方式)
bin/kafka-console-consumer.sh --zookeeper 192.168.1.100:2181 --topic mykafka

bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.100:9092 --topic mykafka

bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.100:9092 --from-beginning --topic mykafka
# --from-beginning:会把主题中以往所有的数据都读取出来。

#6、查看某个Topic的详情
bin/kafka-topics.sh --zookeeper 192.168.1.100:2181 --describe --topic mykafka

#7、修改分区数
bin/kafka-topics.sh --zookeeper 192.168.1.100:2181 --alter --topic first --partitions 3

?4、查看topic的状态

在kafka容器中的opt/kafka_2.12-2.3.0/目录下输入

bin/kafka-topics.sh --describe --zookeeper 192.168.1.100:2181 --topic ${你的topic的names}

输出结果:

Topic:mykafka  PartitionCount:2    ReplicationFactor:2 Configs:
    Topic: mykafka Partition: 0    Leader: 0   Replicas: 0,1   Isr: 0,1
    Topic: mykafka Partition: 1    Leader: 0   Replicas: 1,0   Isr: 0,11

显示每个分区的Leader机器为broker0,在broker0和1上具有备份,Isr代表存活的备份机器中存活的。

当停掉kafka1后.

docker stop mykafka

再查看topic状态,输出结果:

Topic:mykafka  PartitionCount:2    ReplicationFactor:2 Configs:
    Topic: mykafka Partition: 0    Leader: 0   Replicas: 0,1   Isr: 0
    Topic: mykafka Partition: 1    Leader: 0   Replicas: 1,0   Isr: 0

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-26 12:10:28  更:2021-08-26 12:12:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:57:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码