Kafka搭建
- kafka是一个分布式的数据库,所以需要zookeeper作为集群的头部
- kafka使用广泛,在大数据处理与分析中作用很大,接下来是根据dockerHub上已有的kafka镜像进行搭建的
资料来源
- 使用 wurstmeister/zookeeper 和 wurstmeister/kafka 作为本次的镜像使用
- 简要版本搭建
- dockerHub官方网站
准备前提
- 安装好docker
- 设置好docker镜像源,加快下载速度
- 安装docker-compose
-
使用pip 安装
-
安装epel
yum -y install epel-release
-
安装pip
yum -y install python-pip
pip install --upgrade pip
-
安装依赖环境
yum install -y gcc* python-devel
-
安装docker-compose 使用国内源
pip install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simple
-
测试是否安装成功
docker-compose version
-
如果显示
-bash: /usr/local/bin/docker-compose: No such file or directory ```
-
执行
ln -s /usr/bin/docker-compose /usr/local/bin/docker-compose
- 将软连接加到/usr/local/bin下
-
-
使用github下载
$ sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose
-
安装过程
简单介绍kafka
- kafka 是一个分布式数据库,原型上也是基于master 和slave(主从关系)
- kafka 的master是 一个或多个zookeeper 镜像,形成集群
单机版
- 拉取 zookeeper && kafka 镜像
docker pull wurstmeister/zookeeper docker pull wurstmeister/kafka
- 启动zookeeper
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
- 启动 kafka
- 注意 10.1.2.2 是本机的ip,不能使用 localhost或者 127.0.0.1
docker run -d --name kafka -p 9092:9092 \ -e KAFKA_BROKER_ID=0 \ -e KAFKA_ZOOKEEPER_CONNECT=10.1.2.2:2181 \ -e KAFKA_ADVERTISED_HOST_NAME=10.1.2.2 \ -e KAFAK_ADVERTISED_PORT=9092 \ wurstmeister/kafka
集群版本 (1 个 zookeeper 2 个 broker)
- docker-compose.yml
version: "3"
services:
kafka_1:
image: wurstmeister/kafka
container_name: kafka_broker_1
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
- KAFKA_ZOOKEEPER_CONNECT=ip:2181
- KAFKA_ADVERTISED_HOST_NAME=ip
- KAFKA_ADVERTISED_PORT=9092
- KAFKA_BROKER_ID=1
kafka_2:
image: wurstmeister/kafka
container_name: kafka_broker_2
depends_on:
- zookeeper
ports:
- "9093:9093"
environment:
- KAFKA_ZOOKEEPER_CONNECT=ip:2181
- KAFKA_ADVERTISED_HOST_NAME=ip
- KAFKA_ADVERTISED_PORT=9093
- KAFKA_BROKER_ID=2
zookeeper:
image: wurstmeister/zookeeper
container_name: zookeeper
ports:
- "2181:2181"
- 使用命令
docker-compose up -d