Docker 实战(四) 搭建 kafka集群

Kafka搭建

  1. kafka是一个分布式的数据库,所以需要zookeeper作为集群的头部
  2. kafka使用广泛,在大数据处理与分析中作用很大,接下来是根据dockerHub上已有的kafka镜像进行搭建的

资料来源

  1. 使用 wurstmeister/zookeeper 和 wurstmeister/kafka 作为本次的镜像使用
  2. 简要版本搭建
  3. dockerHub官方网站

准备前提

  1. 安装好docker
  2. 设置好docker镜像源,加快下载速度
  3. 安装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

  1. kafka 是一个分布式数据库,原型上也是基于master 和slave(主从关系)
  2. kafka 的master是 一个或多个zookeeper 镜像,形成集群

单机版

  1. 拉取 zookeeper && kafka 镜像
    	docker pull wurstmeister/zookeeper
    	docker pull wurstmeister/kafka
    
  2. 启动zookeeper
    	docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
    
  3. 启动 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"
  1. 使用命令
    • docker-compose up -d

猜你喜欢

转载自blog.csdn.net/weixin_42290927/article/details/104377438
今日推荐