Mac Docker容器里基于centos自定义镜像 配置kafka (模拟Linux环境配置kafka)

概要

这周结束了Spark-core,Spark-sql,Spark- stream的学习,发现到后期的案例实践需要用到Kafka和zookeeper,首先在网上搜了一下docker 配置kafka和zookeeper,发现有直接配置镜像的,即kafka,zookeeper单独搞个镜像,跟着步骤配置成功了但是和集群的联系比较拉,特别是我已经把Hadoop和spark集群配置好了,自定义的镜像模拟了Linux环境,干脆直接把Kafka和zookeeper也加进去。
在这里插入图片描述
自定义镜像越来越大了hhhh

整体架构流程

Kafka的安装包我选择的是kafka_2.12_2.4.1 跟着教程的版本,下载好后 传到容器里解压:

docker cp /xxxx/kafka安装包路径 容器名:/xxx/容器内目标路径

tar -zxvf kafka_2.12_2.4.1 -C /xxx/解压目标路径

完成后进入解压目录里的config 修改配置参数

  1. broker_id=0 该参数代表Kafka节点,如果是要配置集群的话,每台服务器上该参数不能一样,代表节点id
  2. zookeeper.connect=服务器ip:2181 这里需要同步服务器ip 如果是localhost的话就是宿主机ip了 需要注意

修改好后 可以制作一个启动/停止脚本 因为启动Kafka需要先启动zookeeper,所以如果一个一个的命令操作需要开多个窗口,比较麻烦:

在解压路径下创建启动脚本 # vim kafka_start.sh, 里边内容为:

#!/bin/sh
#启动zookeeper
/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties &
 
sleep 3 #等3秒后执行
 
#启动kafka
/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties &

创建停止脚本 # vim kafka_stop.sh

#!/bin/sh
#关闭zookeeper
/usr/local/kafka/bin/zookeeper-server-stop.sh /usr/local/kafka/config/zookeeper.properties &
 
sleep 3 #等3秒后执行
 
#关闭kafka
/usr/local/kafka/bin/kafka-server-stop.sh /usr/local/kafka/config/server.properties &

接下来 Kafka 启动!

Kafka启动报错

Error: VM option ‘UseG1GC’ is experimental and must be enabled via -XX:+UnlockExperimentalVMOptions.

Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit.

在这里插入图片描述
可以发现启动zookeeper和Kafka的时候均报错了,说虚拟机无法创建,因为“UseG1GC”参数的问题
经定位,报错原因为启动脚本中有配置参数-XX:+UseG1GC,这个参数并不直接在Kafka-server-start.sh 和 zookeeper-server-start.sh里面,而是在kafka-run-class.sh文件里,
在这里插入图片描述

解决办法:

1进入kafka/bin目录

2找到kafka-run-class.sh文件,vim编辑

3找到KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20

直接删掉 -XX:+UseG1GC。

问题解决!

在这里插入图片描述
重新启动脚本 出现这些日志信息说明zookeeper和Kafka启动正常
在这里插入图片描述
成功!

  • 33
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值