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 -> 正文阅读

[大数据]docker 部署 kafka

需要先安装好docker和docker-compose

1、新建docker-compose.yml 文件

[root@localhost kafka]# cat docker-compose.yml 
version: '3'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - 2181:2181
    privileged: true
  kafka:
    image: wurstmeister/kafka
    depends_on: [ zookeeper ]
    ports:
      - 9092:9092
    privileged: true
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 192.168.136.145
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
[root@localhost kafka]# 

KAFKA_ADVERTISED_HOST_NAME 是宿主机IP
KAFKA_ADVERTISED_PORT: 9092 默认kafka服务端口9092就行

这两个配置分别对应了kafka的配置文件/opt/kafka/config/server.properties的
advertised.host.name=192.168.136.145
advertised.port=9092

2、启动zookeeper和kafka

在docker-compose.yml 文件同级目录下执行

docker-compose up -d

3、部署过程遇到的问题

2021-09-01T06:52:42.596495000Z Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/c751ce1725f2/json": dial unix /var/run/docker.sock: connect: permission denied
2021-09-01T06:52:42.610503000Z [Configuring] 'port' in '/opt/kafka/config/server.properties'
2021-09-01T06:52:42.618265000Z [Configuring] 'advertised.host.name' in '/opt/kafka/config/server.properties'
2021-09-01T06:52:42.626435000Z Excluding KAFKA_HOME from broker config
2021-09-01T06:52:42.630749000Z [Configuring] 'log.dirs' in '/opt/kafka/config/server.properties'
2021-09-01T06:52:42.634005000Z Excluding KAFKA_VERSION from broker config
2021-09-01T06:52:42.638975000Z [Configuring] 'advertised.port' in '/opt/kafka/config/server.properties'
2021-09-01T06:52:42.648126000Z [Configuring] 'zookeeper.connect' in '/opt/kafka/config/server.properties'
2021-09-01T06:52:42.659601000Z [Configuring] 'broker.id' in '/opt/kafka/config/server.properties'
2021-09-01T06:52:43.636040000Z [2021-09-01 06:52:43,633] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
2021-09-01T06:52:43.958790000Z [2021-09-01 06:52:43,951] ERROR Exiting Kafka due to fatal exception (kafka.Kafka$)
2021-09-01T06:52:43.959053000Z org.apache.kafka.common.config.ConfigException: Invalid value  for configuration advertised.port: Not a number of type INT
2021-09-01T06:52:43.959346000Z 	at org.apache.kafka.common.config.ConfigDef.parseType(ConfigDef.java:727)
2021-09-01T06:52:43.959610000Z 	at org.apache.kafka.common.config.ConfigDef.parseValue(ConfigDef.java:475)
2021-09-01T06:52:43.959852000Z 	at org.apache.kafka.common.config.ConfigDef.parse(ConfigDef.java:468)
2021-09-01T06:52:43.960026000Z 	at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:108)
2021-09-01T06:52:43.960365000Z 	at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:142)
2021-09-01T06:52:43.960651000Z 	at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:1309)
2021-09-01T06:52:43.961019000Z 	at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:1312)
2021-09-01T06:52:43.961330000Z 	at kafka.server.KafkaServerStartable$.fromProps(KafkaServerStartable.scala:34)
2021-09-01T06:52:43.961540000Z 	at kafka.Kafka$.main(Kafka.scala:68)
2021-09-01T06:52:43.961699000Z 	at kafka.Kafka.main(Kafka.scala)
  • Got permission denied while trying to connect to the Docker daemon socket
    因为挂载了 /var/run/docker.sock到容器内,所以启动容器时候需要添加权限。
    docker-compose.yml文件里面加上 privileged: true 参数就行
  • Invalid value for configuration advertised.port: Not a number of type INT
    有些教程的yml文件没有配置 KAFKA_ADVERTISED_PORT,所以kafka启动时候读取配置文件失败了,导致容器无法启动。
    加上 KAFKA_ADVERTISED_PORT: 9092 就可以了

[参考]:
https://tomoyadeng.github.io/blog/2018/06/02/kafka-cluster-in-docker/index.html

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-02 11:26:45  更:2021-09-02 11:28:35 
 
开发: 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 17:20:58-

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