centos7用docker安装kafka
参考之前的文章安装zookeeper集群 https://www.cnblogs.com/xiaohanlin/p/10124674.html
如果是测试环境也可以简单安装单节点的zookeeper 具体如下
docker pull docker.io/wurstmeister/zookeeper
启动zookeeper容器
docker pull docker.io/wurstmeister/zookeeper
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
2. 启动kafka容器
docker pull docker.io/wurstmeister/kafka:2.12-2.1.0
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.0.168:2181,192.168.0.169:2181,192.168.0.170:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.170:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka:2.12-2.1.0
这里面主要设置了4个参数
KAFKA_BROKER_ID=0
KAFKA_ZOOKEEPER_CONNECT=192.168.0.168:2181,192.168.0.169:2181,192.168.0.170:2181
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.170:9092
KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
KAFKA_ZOOKEEPER_CONNECT 配置的是zookeeper的地址,可以单节点配置,也可以配置zookeeper集群多节点,用逗号隔开
中间两个参数的192.168.0.170改为宿主机器的IP地址,如果不这么设置,可能会导致在别的机器上访问不到kafka。
3. 测试kafka
进入kafka容器的命令行
docker exec -ti kafka /bin/bash
进入kafka所在目录
cd opt/kafka_2.12-2.1.0/
后面不再赘述,可参考前一篇文章https://blog.csdn.net/lblblblblzdx/article/details/80548157
4. 集群搭建
使用docker命令可快速在同一台机器,或者不同的机器搭建多个kafka,只需要改变brokerId和端口,集群的kafka的KAFKA_ZOOKEEPER_CONNECT需要配置为同一个zookeeper集群或者单节点
docker run -d --name kafka1 -p 9093:9093 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=192.168.0.168:2181,192.168.0.169:2181,192.168.0.170:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.169:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -t wurstmeister/kafka:2.12-2.1.0
docker run -d --name kafka2 -p 9094:9094 -e KAFKA_BROKER_ID=2 -e KAFKA_ZOOKEEPER_CONNECT=192.168.0.168:2181,192.168.0.169:2181,192.168.0.170:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.168:9094 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 -t wurstmeister/kafka:2.12-2.1.0
5. 创建Replication为3,Partition为3的topic
在kafka容器中的opt/kafka_2.12-2.1.0/目录下输入
bin/kafka-topics.sh --create --zookeeper 192.168.0.170:2181 --replication-factor 3 --partitions 3 --topic nova2_plantree_topic
6. 查看topic的状态
在kafka容器中的opt/kafka_2.12-2.1.0/目录下输入
bin/kafka-topics.sh --describe --zookeeper 192.168.0.170:2181 --topic nova2_plantree_topic
输出结果:
bash-4.4# ./kafka-topics.sh --describe --zookeeper 192.168.0.170:2181 --topic nova2_plantree_topic
Topic:nova2_plantree_topic PartitionCount:3 ReplicationFactor:3 Configs:
Topic: nova2_plantree_topic Partition: 0 Leader: 2 Replicas: 2,1,0 Isr: 2,1,0
Topic: nova2_plantree_topic Partition: 1 Leader: 0 Replicas: 0,2,1 Isr: 0,2,1
Topic: nova2_plantree_topic Partition: 2 Leader: 1 Replicas: 1,0,2 Isr: 1,0,2
显示每个分区的Leader机器为broker0,broker1,broker2,在broker0和1和2上具有备份,Isr代表存活的备份机器中存活的。
当停掉kafka1后,
docker stop kafka1
再查看topic状态,输出结果:
bash-4.4# ./kafka-topics.sh --describe --zookeeper 192.168.0.170:2181 --topic nova2_plantree_topic
Topic:nova2_plantree_topic PartitionCount:3 ReplicationFactor:3 Configs:
Topic: nova2_plantree_topic Partition: 0 Leader: 2 Replicas: 2,0,1 Isr: 2,0
Topic: nova2_plantree_topic Partition: 1 Leader: 0 Replicas: 0,1,2 Isr: 0,2
Topic: nova2_plantree_topic Partition: 2 Leader: 2 Replicas: 1,2,0 Isr: 2,0
查看kafka的broker数量
docker exec -it zookeeper bash
[zk: localhost:2181(CONNECTED) 5] ls /brokers/ids
[2, 1, 0]
查看topic的数量
[zk: localhost:2181(CONNECTED) 6] ls /brokers/topics
[nova2_plantree_topic]
bash-4.4# ./kafka-topics.sh --zookeeper 192.168.0.170:2181 --list
nova2_plantree_topic
查看consumer组
bash-4.4# ./kafka-consumer-groups.sh --bootstrap-server 192.168.0.170:9092 --list
plantree_group
bash-4.4# ./kafka-consumer-groups.sh --bootstrap-server 192.168.0.170:9092,192.168.0.169:9093 --group plantree_group --describe
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
nova2_plantree_topic 0 7 7 0 consumer-1-330c0937-44db-4ec0-92da-352baf83043b /192.168.0.169 consumer-1
nova2_plantree_topic 1 5 5 0 consumer-1-330c0937-44db-4ec0-92da-352baf83043b /192.168.0.169 consumer-1
nova2_plantree_topic 2 5 5 0 consumer-1-71628b6f-10d1-4a0a-bc2b-0d9f17f6008f /192.168.0.168 consumer-1
模拟生产者
bin/kafka-console-producer.sh --broker-list 192.168.0.170:9092 --topic nova2nodepush
模拟消费者
bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.170:9092 --topic nova2nodepush --from-beginning
centos7用docker安装kafka的更多相关文章
- docker安装kafka快速入门
docker安装kafka快速入门 1.安装zookeeper docker search zookeeperdocker pull zookeeperdocker run -d -v /home/s ...
- CentOS7利用docker安装MySQL5.7
CentOS7利用docker安装MySQL5.7 前提条件 centos7 且内核版本高于3.10, 可通过以下命令查看内核版本 uname -r 利用yum 安装docker 安装一些必要的系统工 ...
- Centos7通过Docker安装Sentry(哨兵)
Docker介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制, ...
- [Docker]CentOS7下Docker安装教程
想要倒腾Kubernetes的话,第一步就是要会安装Docker,这篇文章讲一讲过程 安装步骤 检查内核版本,必须是3.10以上 uname -r 安装Docker yum -y install do ...
- Centos7使用Docker安装Gogs搭建git服务器
gihub地址:https://github.com/gogs/gogs gogs官网:https://gogs.io/ gihub官方docker安装gogs方法:https://github.co ...
- centos7上docker安装和使用教程
Docker 是一个创建和管理 Linux 容器的开源工具.容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止.Docker 帮助系统管理员和程序员在容器中开发应用程序,并且可以扩展到成千上 ...
- Centos7系统Docker安装
目录 前期说明 安装步骤 1.官网中文安装参考手册 2.确定你是CentOS7及以上版本 3.yum安装gcc相关 4.卸载旧版本 5.安装需要的软件包 6.设置stable镜像仓库 7.更新yum软 ...
- Kafka:docker安装Kafka消息队列
安装之前先看下图 Kafka基础架构及术语 Kafka基本组成 Kafka cluster: Kafka消息队列(存储消息的队列组件) Zookeeper: 注册中心(kafka集群依赖zookee ...
- Vmware虚拟机中CentOS7与Docker安装图文教程
1.安装VMware 下载一个软件安装: 2.新建一个虚拟机 等待自动安装完成 配置系统语言: 配置系统时间: 配置系统键盘: 语言支持: 默认自动使用安装源: 配置软件环境,需要及时添加的软件,这里 ...
随机推荐
- 深度剖析collections模块
namedtuple OrderedDict deque tuple defaultdict Counter ChainMap
- Struts2 result type(结果类型)
转自:http://www.cnblogs.com/liaojie970/p/7151103.html 在struts2框架中,当action处理完之后,就应该向用户返回结果信息,该任务被分为两部分: ...
- 201671010140. 2016-2017-2 《Java程序设计》java学习第六章
java学习第六章 本周对与java中的接口,lambda表达式与内部类进行了学习,以下是我在学习中的一些体会: 1.接口: <1>.接口中的所有常量必须是public sta ...
- ubuntu搭建定时任务管理器
一.安装golang 1.apt-get安装golang $ sudo apt-get update $ sudo apt-get install -y golang 2.创建Go语言的工作文件夹,并 ...
- 配置Linux的SSH双重认证
背景:双因子认证(简称:2FA,以下简称2FA),在这里其为SSH的第二重认证.2FA指的是密码以及实物(信用卡.SMS手机.令牌或指纹等生物标志)两种条件对用户进行认证的方法.通过两种不同的认证程序 ...
- java基础之匿名内部类
内部类: 概述: 类里边还有一个类, 里边那个类叫内部类, 外边那个类叫外部类. 分类: 成员内部类: 定义在成员位置的内部类. 局部内部类: 定义在局部位置的内部类. 格式: new 类名或者接口名 ...
- MySQL - pt-query-digest的下载与使用
对于脚本文件,是可以执行的,我们不用安装.所以,但是这个脚本文件没有执行的权限,所以,我们首先赋予这个脚本文件的可执行的权限. 再次查看文件的信息后. 已经有了执行的权限了. 运行脚本的时候,可要注意 ...
- Django ——Timezone 处理
Django ——Timezone 处理 https://blog.csdn.net/qq_37049781/article/details/79347278 2018年02月22日 14:50:24 ...
- jqgrid 编辑表格(包含下拉框)
.1在jqgrid 按钮 <asp:JQGridColumn TextAlign=" DataField="act" Visible="True" ...
- Part10-C语言环境初始化-栈初始化lesson1
1.概念解析 ARM系统使用的是满栈! ARM采用降栈!!! 栈帧 每一个进程会有一个栈,该进程中的每一个函数会分割栈的一部分,那么每一个函数使用的那部分栈就叫做栈帧.那么所有栈帧组成了整个栈. 子函 ...