您现在的位置是:首页 > 程序园 > 后端系列后端系列

docker安装kafka,kafka入门命令介绍和使用

冷猫2020-05-22【后端系列】人已围观

简介介绍docker安装kafak,kafka安装后docker启动kafka,kafkar入门命令操作及结果展示,命令中参数含义介绍

docker安装kafka1

 

docker安装kafka的前提是本机已经安装了docker,本片文章命令实在linux操作系统中完成的!


1 linux安装docker


1.1 先卸载系统旧版本的docker

 
sudo yum remove  docker  docker-client  docker-client-latest  docker-common docker-common  docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine 

不知道为啥,反斜杠在编辑其中打不出来,所以将命令写在了一行,不过效果都是一样的,可以直接复制粘贴使用


1.2 安装依赖

 
sudo yum install -y yum-utils device-mapper-persistent-data lvm2


1.3 设置阿里云资源

 
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


1.4 安装docker-ce

 
sudo yum install docker-ce


如果报错如下

 
--> Processing Conflict: 1:docker-ce-cli-18.09.6-3.el7.x86_64 conflicts docker
--> Processing Conflict: 1:docker-ce-cli-18.09.6-3.el7.x86_64 conflicts docker-io
--> Processing Conflict: 3:docker-ce-18.09.6-3.el7.x86_64 conflicts docker
--> Processing Conflict: 3:docker-ce-18.09.6-3.el7.x86_64 conflicts docker-io
--> Finished Dependency Resolution
Error: docker-ce conflicts with 2:docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64
Error: docker-ce-cli conflicts with 2:docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest


则删除之前安装过的docker


查看安装过的docker
yum list installed | grep docker
docker.x86_64                       2:1.14.1-74.git6e3bb8e.el7.centos
docker-client.x86_64                    2:1.14.1-74.git6e3bb8e.el7.centos
docker-common.x86_64                    2:1.14.1-74.git6e3bb8e.el7.centos


卸载之前安装过的docker
 
sudo yum remove -y docker-ce.x86_64 docker-client.x86_64 docker-common.x86_64

删除容器镜像
 
sudo rm -rf /var/lib/docker

重新执行
 
sudo yum install docker-ce


1.5 启动docker

 
# 开机自启
sudo systemctl enable docker
# 启动docker服务 
sudo systemctl start docker



2 docker安装kafka(测试使用单机安装)


2.1 查看kafka镜像

 
docker search kafka

docker.io   docker.io/wurstmeister/kafka                     Multi-Broker Apache Kafka Image            
docker.io   docker.io/spotify/kafka                               A simple docker image with both Kafka and ... 
docker.io   docker.io/sheepkiller/kafka-manager         kafka-manager                                  
docker.io   docker.io/bitnami/kafka                             Apache Kafka is a distributed streaming pl... 
docker.io   docker.io/ches/kafka                                  Apache Kafka. Tagged versions. JMX. Cluste...  
docker.io   docker.io/hlebalbau/kafka-manager           CMAK (previous known as Kafka Manager) As ...   
docker.io   docker.io/kafkamanager/kafka-manager    Docker image for Kafka manager          
docker.io   docker.io/landoop/kafka-topics-ui             UI for viewing Kafka Topics config and dat...  

 


2.2 获取kafka镜像

 
docker pull docker.io/wurstmeister/kafka


2.3 获取zookeeper镜像(查看镜像列表的命令可查看kafka镜像列表的命令一样)

 
##建议使用同一个作者跟新的kafka和zookeeper镜像
docker pull  docker.io/wurstmeister/zookeeper


2.4  启动zookeeper镜像生成容器

 
docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime  docker.io/wurstmeister/zookeeper


2.5 启动kafka镜像生成容器

 
docker run -d --name kafka -p 9092:9092  -e KAFKA_BROKER_ID=0  -e KAFKA_ZOOKEEPER_CONNECT=192.168.160.129:2181/kafka 
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.160.129:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka
 
  1. -e KAFKA_BROKER_ID=0  在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
  2. -e KAFKA_ZOOKEEPER_CONNECT=192.168.155.56:2181/kafka 配置zookeeper管理kafka的路径192.168.155.56:2181/kafka
  3. -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.155.56:9092  把kafka的地址端口注册给zookeeper
  4. -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口
  5. -v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间



2.6 验证kafka时候安装成功并可用

 
#查看kafka中的topic
kafka-topics.sh --bootstrap-server 192.168.160.129:9092 --list
__consumer_offsets
test
test_topic
topic001
#kafka安装成功并可用


3 kafka的简单命令操作

 
##查看kafka中所有的topic
kafka-topics.sh --bootstrap-server 192.168.160.129:9092 --list
__consumer_offsets
test
test_topic
topic001

##查看kafka中指定的topic信息
kafka-topics.sh --bootstrap-server 192.168.160.129:9092 --describe --topic t_test
Topic: test_topic    PartitionCount: 1    ReplicationFactor: 1    Configs: segment.bytes=1073741824
Topic: test_topic    Partition: 0    Leader: 0    Replicas: 0    Isr: 0

##创建topic
kafka-topics.sh --bootstrap-server 192.168.160.129:9092 --create --topic  t_test --partitions 1 --replication-factor 1
--partitions 由于是单机,所以分区数为1
--replication-factor 同样由于单机,副本数为1

##kafka控制台生产
kafka-console-producer.sh --bootstrap-server 192.168.11.141:9092 --topic t_test
>this is a test message from producer 

#kafka控制台消费
kafka-console-consumer.sh --bootstrap-server 192.168.11.141:9092 --topic t_test --from-beginning
this is a test message from producer

##查看topic某分区偏移量最大(小)值
kafka-run-class.sh kafka.tools.GetOffsetShell --topic hive-mdatabase-hostsltable  --time -1 --broker-list 192.168.160.129:9092 --partitions 0
注: time为-1时表示最大值,time为-2时表示最小值

##增加topic分区数
为topic t_test增加5个分区
kafka-topics.sh --bootstrap-server 192.168.160.129:9092  --alter --topic t_test --partitions 5

关于kafka简单的命令先介绍这么多,作者也是刚刚学习kafka,有不对的地方请指出,望共勉!

Tags:kafka命令   kafka topic   docker安装kafka  

很赞哦! ()

文章评论

    共有条评论来说两句吧...

    用户名:

    验证码:

本站推荐

站点信息

  • 建站时间:2020.05.20
  • 文章统计31篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信公众号:扫描二维码,关注我们