docker-compose 使用maxwell实时获取数据

背景

	空闲使用docker搭建大数据集群,并实现离线、实时数仓。走到了maxwell这边发现点问题,记录下。

参考资料

	网上几乎都是用docker run 
docker run -it --rm zendesk/maxwell bin/maxwell --user=bessky_pss --password=20092009 --host=192.168.99.xxx --replication_host=192.168.99.xxx --replication_user=canal --replication_password=canal --filter='exclude:*.*,include:bessky_pss.t_canal' --exclude_columns=desc --producer=stdout

Docker安装Maxwell

实操调研

version: '3'
services:
  maxwell:
    restart: always
    image: zendesk/maxwell
    container_name: maxwell
    privileged: true
    restart: always
    environment:
      - MYSQL_USERNAME=maxwell
      - MYSQL_PASSWORD=maxwell
      - MYSQL_HOST=mysql
      - MAXWELL_PRODUCER=stdout
networks:
  default:
    external: true
    name: bigdata

备注:mysql 服务另起了,所有的服务都是用的bigdata网络。
结论:控制台能正常实时出数,服务正常。

MAXWELL_PRODUCER = kafka
参考

version: '3'
services:
  maxwell:
    ...
    environment:
      ...
      - MAXWELL_PRODUCER=kafka
      - KAFKA_BOOTSTRAP_SERVERS=broker1:9092,broker2:9092,broker3:9092
      - KAFKA_TOPIC=xxx
	发现怎么都链接不上kafka(网络没问题),使用docker run 链接kafka 正常。
	进入容器看下 docker exec -it /bin/bash
docker inspect maxwell

# 进入容器
cat bin/maxwell-docker

docker-compose 使用maxwell实时获取数据_第1张图片
docker-compose 使用maxwell实时获取数据_第2张图片
看到入参后调整docker-compose

version: '3'
services:
  maxwell:
	...
    environment:
		...
      - MAXWELL_PRODUCER=kafka
      - KAFKA_BROKERS=broker1:9092,broker2:9092,broker3:9092
      - MAXWELL_OPTIONS=--kafka_topic=topic_db
...

配置文件挂载并没用,对应的参数 可以放在 MAXWELL_OPTIONS 后面
数据正常传输

你可能感兴趣的:(docker,kafka,大数据)