ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 1. 启动Kafka集群 若Maxwell发送数据的目的地为Kafka集群,则需要先确保Kafka集群为启动状态。 # 2. Maxwell启停 ## 1. 启动Maxwell ``` /opt/module/maxwell/bin/maxwell --config /opt/module/maxwell/config.properties --daemon ``` ## 2. 停止Maxwell ``` ps -ef | grep maxwell | grep -v grep | grep maxwell | awk '{print $2}' | xargs kill -9 ``` ## 3. Maxwell启停脚本 1)创建并编辑Maxwell启停脚本 ``` cd /home/atguigu/bin vim mxw.sh ``` 2)脚本内容如下 ``` #!/bin/bash MAXWELL_HOME=/opt/module/maxwell status_maxwell(){ result=`ps -ef | grep com.zendesk.maxwell.Maxwell | grep -v grep | wc -l` return $result } start_maxwell(){ status_maxwell if [[ $? -lt 1 ]]; then echo "启动Maxwell" $MAXWELL_HOME/bin/maxwell --config $MAXWELL_HOME/config.properties --daemon else echo "Maxwell正在运行" fi } stop_maxwell(){ status_maxwell if [[ $? -gt 0 ]]; then echo "停止Maxwell" ps -ef | grep com.zendesk.maxwell.Maxwell | grep -v grep | awk '{print $2}' | xargs kill -9 else echo "Maxwell未在运行" fi } case $1 in start ) start_maxwell ;; stop ) stop_maxwell ;; restart ) stop_maxwell start_maxwell ;; esac ``` 3) 添加执行权限 ``` chmod +x mxw.sh ``` # 3. 增量数据同步 ## 1. 启动Kafka消费者 ``` bin/kafka-console-consumer.sh --bootstrap-server node1:9092 --topic maxwell ``` ## 2. 模拟生成数据 java -jar gmall2020-mock-db-2021-01-22.jar ## 3. 观察Kafka消费者 # 4. 历史数据全量同步 ## 1. Maxwell-bootstrap Maxwell提供了bootstrap功能来进行历史数据的全量同步,命令如下: ``` #只执行一次,必须maxwell后台运行 /opt/module/maxwell/bin/maxwell-bootstrap --database gmall --table user_info --config /opt/module/maxwell/config.properties ``` 2 boostrap数据格式 采用bootstrap方式同步的输出数据格式如下: ``` { "database": "fooDB", "table": "barTable", "type": "bootstrap-start", "ts": 1450557744, "data": {} } { "database": "fooDB", "table": "barTable", "type": "bootstrap-insert", "ts": 1450557744, "data": { "txt": "hello" } } { "database": "fooDB", "table": "barTable", "type": "bootstrap-insert", "ts": 1450557744, "data": { "txt": "bootstrap!" } } { "database": "fooDB", "table": "barTable", "type": "bootstrap-complete", "ts": 1450557744, "data": {} } ``` **注意事项:** 1)第一条type为bootstrap-start和最后一条type为bootstrap-complete的数据,是bootstrap开始和结束的标志,不包含数据,中间的type为bootstrap-insert的数据才包含数据。 2)一次bootstrap输出的所有记录的ts都相同,为bootstrap开始的时间。