canal搭建-简单使用,flume配合kafka使用

canal搭建-简单使用,flume配合kafka使用

开启mysql binlog

默认没有开启

开启binlog之后mysql的性能会手动影响

1、修改mysql配置文件/etc/my.cnf

# 如果配置文件不存在,复制一个过来
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

vim /etc/my.cnf 

# 在配置文件中增加二配置
# 需要将配置放在[mysqld]后面
# 打开binlog
log-bin=mysql-bin
# 选择ROW(行)模式
binlog-format=ROW
# 配置MySQL replaction需要定义,不要和canal的slaveId重复
server_id=1

2、重启mysql

service mysqld restart

# 查看mysql binlog文件
cd /var/lib/mysql
mysql-bin.000001

# 改了配置文件之后,重启MySQL,使用命令查看是否打开binlog模式:
mysql -uroot -p123456
show variables like 'log_bin';

搭建Canal

2、上传解压,上传到soft目录

# 创建解压目录
mkdir canal
# 解压到指定目录
tar -xvf canal.deployer-1.1.4.tar.gz -C canal

3、修改配置文件conf/example/instance.properties

vim conf/example/instance.properties

# mysql 地址
canal.instance.master.address=master:3306
# mysql用户名
canal.instance.dbUsername=root
# mysql密码
canal.instance.dbPassword=123456
# 数据写入kafka 的topic名称, 所有的数据写入同一个topic
canal.mq.topic=example
# 为每一个表自动创建一个topic
# 监控bigdata数据库,不同的表发送到表名的topic上, topic命令方式bigdata.student
canal.mq.dynamicTopic=bigdata\\..*

4、修改配置文件conf/canal.properties

vim conf/canal.properties

# zk地址 
canal.zkServers = master:2181,node1:2181,node2:2181
# 数据保存到kafka
canal.serverMode = kafka
# kafka集群地址
canal.mq.servers = master:9092,node1:9092,node2:9092

5、启动canal

cd /usr/local/soft/canal/bin/
# 启动canal
./startup.sh

# 查看启动日志
cd /usr/local/soft/canal/logs
cat canal/*
cat example/*

5、测试

在test数据库创建一个订单表,并且执行几个简单的DML:

-- 登录mysql
mysql -uroot -p123456

-- 切换数据库
use `bigdata`;

-- 创建表
CREATE TABLE `order`
(
    id          BIGINT UNIQUE PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
    order_id    VARCHAR(64)   COMMENT '订单ID',
    amount      DECIMAL(10, 2) COMMENT '订单金额',
    create_time DATETIME       COMMENT '创建时间',
    UNIQUE uniq_order_id (`order_id`)
) COMMENT '订单表';

-- 插入数据

INSERT INTO `order`(order_id, amount) VALUES ('10087', 999);
UPDATE `order` SET amount = 99 WHERE order_id = '10087';
DELETE  FROM `order` WHERE order_id = '10087';

6、可以利用Kafka的kafka-console-consumer消费数据

# 查看是否自动创建topic
kafka-topics.sh --list  --zookeeper  master:2181,node1:2181,node2:2181
# 消费数据
kafka-console-consumer.sh --bootstrap-server master:9092,node1:9092,node2:9092 --from-beginning --topic bigdata17.order

可以在idea中格式化json格式的数据 -- Ctrl+Alt+L

Flume监控文件打到kafka中

  1. 编写 . conf 配置文件

    agent.sources=s1
    agent.channels=c1
    agent.sinks=k1
    
    agent.sources.s1.type=exec
    
    #监听文件地址
    agent.sources.s1.command=tail -F  /usr/flume/log.log
    
    
    agent.channels.c1.type=memory
    agent.channels.c1.capacity=10000
    agent.channels.c1.transactionCapacity=100
    
    #设置Kafka接收器
    agent.sinks.k1.type=org.apache.flume.sink.kafka.KafkaSink
    #设置Kafka的broker地址和端口号
    agent.sinks.k1.brokerList=master:9092,node1:9092,node2:9092
    
    #设置Kafka的Topic   如果topic不存在会自动创建一个topic,默认分区为1 副本为1
    agent.sinks.k1.topic=flume
    
    #设置序列化方式
    agent.sinks.k1.serializer.class=kafka.serializer.StringEncoder
    
    #将三个主件串联起来
    agent.sources.s1.channels=c1
    agent.sinks.k1.channel=c1
    
    #mkdir /tmp/flume
    #echo 'java' >> /usr/flume/log.log
    #flume-ng agent -n agent -f ./FlumeToKafka.properties -Dflume.root.logger=DEBUG,console
    #kafka-console-consumer.sh --zookeeper  master:2181,node1:2181,node2:2181  --from-beginning --topic flume
  2. 查看flume是否启动成功!

  1. 向log.log文件中echo数据,查看结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
上层应用业务对实时数据的需求,主要包含两部分内容:1、 整体数据的实时分析。2、 AB实验效果的实时监控。这几部分数据需求,都需要进行的下钻分析支持,我们希望能够建立统一的实时OLAP数据仓库,并提供一套安全、可靠的、灵活的实时数据服务。目前每日新增的曝光日志达到几亿条记录,再细拆到AB实验更细维度时,数据量则多达上百亿记录,多维数据组合下的聚合查询要求秒级响应时间,这样的数据量也给团队带来了不小的挑战。OLAP层的技术选型,需要满足以下几点:1:数据延迟在分钟级,查询响应时间在秒级2:标准SQL交互引擎,降低使用成本3:支持join操作,方便维度增加属性信息4:流量数据可以近似去重,但订单行要精准去重5:高吞吐,每分钟数据量在千W级记录,每天数百亿条新增记录6:前端业务较多,查询并发度不能太低通过对比开源的几款实时OLAP引擎,可以发现Doris和ClickHouse能够满足上面的需求,但是ClickHouse的并发度太低是个潜在的风险,而且ClickHouse的数据导入没有事务支持,无法实现exactly once语义,对标准SQL的支持也是有限的。所以针对以上需求Doris完全能解决我们的问题,DorisDB是一个性能非常高的分布式、面向交互式查询的分布式数据库,非常的强大,随着互联网发展,数据量会越来越大,实时查询需求也会要求越来越高,DorisDB人才需求也会越来越大,越早掌握DorisDB,以后就会有更大的机遇。本课程基于真实热门的互联网电商业务场景为案例讲解,具体分析指标包含:AB版本分析,下砖分析,营销分析,订单分析,终端分析等,能承载海量数据的实时分析,数据分析涵盖全端(PC、移动、小程序)应用。整个课程,会带大家实践一个完整系统,大家可以根据自己的公司业务修改,既可以用到项目中去,价值是非常高的。本课程包含的技术:开发工具为:IDEA、WebStormFlink1.9.0DorisDBHadoop2.7.5Hbase2.2.6Kafka2.1.0Hive2.2.0HDFS、MapReduceFlume、ZookeeperBinlog、CanalMySQLSpringBoot2.0.8.RELEASESpringCloud Finchley.SR2Vue.js、Nodejs、Highcharts、ElementUILinux Shell编程等课程亮点:1.与企业接轨、真实工业界产品2.DorisDB高性能分布式数据库3.大数据热门技术Flink4.支持ABtest版本实时监控分析5.支持下砖分析6.数据分析涵盖全端(PC、移动、小程序)应用7.主流微服务后端系统8.天级别与小时级别多时间方位分析9.数据库实时同步解决方案10.涵盖主流前端技术VUE+jQuery+Ajax+NodeJS+ElementUI11.集成SpringCloud实现统一整合方案12.互联网大数据企业热门技术栈13.支持海量数据的实时分析14.支持全端实时数据分析15.全程代码实操,提供全部代码和资料16.提供答疑和提供企业技术方案咨询企业一线架构师讲授,代码在老师的指导下企业可以复用,提供企业解决方案。  版权归作者所有,盗版将进行法律维权。 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值