背景
空闲使用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
实操调研
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
version: '3'
services:
maxwell:
...
environment:
...
- MAXWELL_PRODUCER=kafka
- KAFKA_BROKERS=broker1:9092,broker2:9092,broker3:9092
- MAXWELL_OPTIONS=--kafka_topic=topic_db
...
配置文件挂载并没用,对应的参数 可以放在 MAXWELL_OPTIONS 后面
数据正常传输