目录
5.启动kafka
Docker安装
1.安装Docker
可参考: Docker 教程 | 菜鸟教程
2.搜索docker镜像
到中Docker Hub查找Kafka和ZooKeeper的镜像,此处使用wurstmeister/kafka和wurstmeister/zookeeper。
3.安装Zookeeper
为什么要安装zookeeper,因为kafka使用zookeeper保存集群的元数据信息和消费者信息。
拉镜像
命令:
docker pull wurstmeister/zookeeper
说明:
wurstmeister/zookeeper是常用的zookeeper镜像
启动zookeeper容器
命令:
docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper
说明:
-d:后台方式运行
--name:为容器命名
-p:端口映射,格式为:主机端口:容器端口
-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间
最后接的是镜像名
连接起来理解:通过wurstmeister/zookeeper镜像构建一个名为zookeeper的容器,以后台方式运行,并映射的端口为2181
4. 安装kafka
拉镜像
命令:
docker pull wurstmeister/kafka
说明:wurstmeister/kafka为常用的kafka镜像
5.启动kafka
启动kafka容器
命令:
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.99.100:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.99.100:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime -t wurstmeister/kafka
docker run -d --restart=always --name kafka
-p 21661:9092
-e KAFKA_BROKER_ID=0
-e KAFKA_ZOOKEEPER_CONNECT=192.168.99.100:2181
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.99.100:9092
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
-v /etc/localtime:/etc/localtime
-t wurstmeister/kafka说明:
-p 9092:9092 kafka的 9092 端口映射为 宿主机9092端口
-e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka用BROKER_ID来区分自己 , 如需配置kafka集群可 修改此id 和 上述 9092端口号映射即可部署集群
-e KAFKA_ZOOKEEPER_CONNECT=192.168.99.100:2181 配置zookeeper连接地址
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.99.100:9092把kafka的地址注册给zookeeper,如果是远程访问要改成外网IP,否则可能出现无法连接
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口
-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间
进入kafka容器
命令
docker exec -it kafka bash
目录
内部包含两个目录
1. /opt/kafka/bin
2./opt/kafka_2.13-2.8.1/bin
我们使用
/opt/kafka_2.13-2.8.1/bin
Linux安装
1.kafka下载
2.安装JDK
kafka 是Scala 语言开发,运行在 jvm 上
# 解压文件
tar -zxf jdk1.8.0_201.tar
# 配置环境变量
vim /etc/profile
# 在 profile 文件最后加上
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar
# 使配置生效
source /etc/profile
# 最后输入 java 命令测试
3.安装zookeeper
(kafka 依赖 zookeeper)
# 解压文件
tar ‐zxvf apache‐zookeeper‐3.5.8‐bin.tar.gz
# 复制一份配置文件, 方便修改
cp conf/zoo_sample.cfg conf/zoo.cfg
# 启动
bin/zkServer.sh start
# 连接控制台
bin/zkCli.sh
# 查看zk的根目录相关节点
ls /
4.安装kafka
# 解压 kafka
tar ‐xzf kafka_2.11‐2.4.1.tgz
# 修改配置文件
vim config/server.config
# broker.id属性在kafka集群中必须要是唯一
broker.id=0
# kafka部署的机器ip和提供服务的端口号,切勿设0.0.0.0可能报错
listeners=PLAINTEXT://192.xxx.xx.xx:9092
# kafka的消息存储文件
log.dir=/usr/local/data/kafka‐logs
# kafka 连接 zookeeper 的地址
zookeeper.connect=192.xxx.xx.xx:2181
5.启动kafka
./kafka-server-start.sh -daemon ../config/server.properties
zookeeper上查看kafka的节点
以docker为例
1.进入zookeeper容器
docker exec -it zookeeper bash
2.运行客户端
3.查看kafka节点
ids 为 0 则表示kafka broker id= 0的已经在zookeeper上