c语言sscanf函数的用法是什么
304
2022-11-25
DBus数据总线(一):DBus all one 部署
DBus数据总线(一):DBus all one 部署
标签(空格分隔): DBus系列数据
[toc]
一:DBus概述
1.1: 产生背景
采集工具的局限性 当前有很多数据采集工具,他们或多或少都存在一些局限性:
上面这些采集工具还以一个共性问题是缺乏统一的数据源端管控,所以也就无法找到统一的数据入口, 那后续处理元数据或者血缘分析会异常困难。
数据同步方法局限性 同时过去通常的同步数据的方法有很多种,比如: 各个数据使用方在业务低峰期各种抽取所需数据(缺点是存在重复抽取而且数据不一致) 由统一的数仓平台通过sqoop到各个系统中抽取数据(缺点是sqoop抽取方法时效性差,一般都是 T+1的时效性) 基于trigger或时间戳的方式获得增量的变更(缺点是对业务方侵入性大,带来性能损失等) 这些方案都不能算完美,要想同时解决数据一致性和实时性,比较合理的方法应该是基于日志的解决方 案,同时能够提供消息订阅的方式给下游系统使用。在这个背景下DBus就诞生了。
二:DBus 数据总线
2.1 DBus 数据总线的介绍
专注于数据的收集及实时数据流计算,通过简单灵活的配置,以无侵入的方式对源端数据进行采集,采用高可用的流式计算框架,对公司各个IT系统在业务流程中产生的数据进行汇聚,经过转换处理后成为统一JSON的数据格式(UMS),提供给不同数据使用方订阅和消费,充当数仓平台、大数据分析平台、实时报表和实时营销等业务的数据源。支持多租户管理,提供租户级资源、数据隔离机制。
2.2 DBus系统架构和工作原理
DBUS主要分为两个部分:貼源数据采集和多租户数据分发。两个部分之间以Kafka为媒介进行衔接。无多租户资源、数据隔离需求的用户,可以直接消费源端数据采集这一级输出到kafka的数据,无需再配置多租户数据分发。
2.3 DBUS源端数据采集
DBUS源端数据采集大体来说分为两部分: 读取RDBMS增量日志的方式来 实时获取增量数据日志,并支持全量拉取; 基于logtash,flume,filebeat等抓取工具来实时获得数据,以可视化的方式对数据进行结构化输出; 以下为具体实现原理
主要模块如下: 日志抓取模块:从RDBMS的备库中读取增量日志,并实时同步到kafka中; 增量转换模块:将增量数据实时转换为UMS数据,处理schema变更,脱敏等; 全量抽取程序:将全量数据从RDBMS备库拉取并转换为UMS数据; 日志算子处理模块:将来自不同抓取端的日志数据按照算子规则进行结构化处理; 心跳监控模块:对于RDMS类源,定时向源端发送心跳数据,并在末端进行监控,发送预警通知;对于日志类,直接在末端监控预警。 web管理模块:管理所有相关模块。
2.4多租户数据分发
对于不同租户对不同源端数据有不同访问权限、脱敏需求的情形,需要引入Router分发模块,将源端貼源数据,根据配置好的权限、用户有权获取的源端表、不同脱敏规则等,分发到分配给租户的Topic。这一级的引入,在DBUS管理系统中,涉及到用户管理、Sink管理、资源分配、脱敏配置等。不同项目消费分配给他的topic。
2.5 主要功能
无侵入方式接入多种数据源: 业务系统无需任何修改,以无侵入性读取数据库系统的日志获得增量数据实时变化。目前RDBMS支持mysql,oracle数据源(Oracle数据源请参考Oracle相关协议), 日志方面支持基于logstash,flume和filebeat的多种数据日志抽取方案。 海量数据实时传输: 使用基于Storm的流式计算框架,秒级延时,整体无单点保证高可用性。 多租户支持: 提供用户管理、资源分配、Topology管理、租户表管理等丰富的功能,可根据需求,为不同租户分配不同的源端表数据访问权限,应用不同的脱敏规则,从而实现多租户资源隔离、差异化数据安全。 详细参考: https://bridata.github.io/DBus/index.html 文档参考: 部署
3.1 Dbus部署
DBus安装部署分为以下两种方式(注意:两种方式不可以混用): All In One体验版 该版本安装在单机上,自动部署安装dbus所依赖的相关组件,仅用于体验dbus基本功能, 不可以用于生产。 该版本支持mysql数据源接入体验。 集群部署 用于生产环境或测试环境部署。 可部署在单机上或集群上。 包含对Oracle、mysql,logstash、filebeat、flume等数据源的支持。
3.2 dbus all in one 部署
3.2.1 软件准备系统:
系统: CentOS7.9x64 hostname Dbus-ns1 下载软件: https://github.com/BriData/DBus/releases 说明all in one是一个单机版本dbus环境,是给用户快速体验dbus的功能,只是一个简单体验版,不能 用于其它环境或者用途,具体包括如下: 基础组件: zookeeper 3.4.6 kafka 0.10.0.0 storm 1.0.1 granfana 4.2.0 logstash 5.6.1 influxdb mysql --------------------------- dbus相关包: dbus-keeper 0.5.0 dbus-stream-main 0.5.0 dbus-keeper 0.5.0 dbus-stream-main 0.5.0 dbus-router 0.5.0 dbus-heartbeat 0.5.0 dbus-log-processor 0.5.0 -------------------------- mysql数据源所需软件: canal
3.2.3 安装MySQL
Canal 对 MySQL的需求版本5.7 以上: ----------------------- 安装MySQL5.7 yum yum -y localinstall https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 安装MySQL: yum -y install mysql-community-server systemctl enable mysqld systemctl start mysqld systemctl status mysqld grep 'temporary password' /var/log/mysqld.log
set global validate_password_policy=0; set global validate_password_mixed_case_count=0; set global validate_password_number_count=3; set global validate_password_special_char_count=0; set global validate_password_length=3; ALTER USER 'root'@'localhost' IDENTIFIED BY 'root%123'; exit
sudo vi /etc/my.cnf [mysqld] # dbus相关配置开始 log-bin=mysql-bin binlog-format=ROW server_id=1 # dbus相关配置结束 然后重启MySQL: sudo systemctl restart mysqld
3.2.4:配置influxdb
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.1.0.x86_64.rpm sudo yum -y localinstall influxdb-1.1.0.x86_64.rpm sudo systemctl start influxdb sudo systemctl status influxdb sudo systemctl enable influxdb
初始化 influx #执行初始化脚本 create database dbus_stat_db use dbus_stat_db CREATE USER "dbus" WITH PASSWORD 'dbus!@#123' ALTER RETENTION POLICY autogen ON dbus_stat_db DURATION 15d exit
3.2.5 配置 allinone dbus
# 如果没有app目录,要先创建app目录 mkdir -p /app/ mv dbus-allinone.tar.gz /app/ tar -zxvf dbus-allinone.tar.gz
导入MySQL数据 执行以下命令进行数据库初始化,会创建dbmgr库以及用户、canal用户、dbus库以及用户、testschema库以及用户: MySQL: mysql -uroot -proot%123 source /app/dbus-allinone/sql/init.sql;
3.2.6 启动DBus
cd /app/dbus-allinone/ ./start.sh
3.2.7 生成启动报告
进入目录/app/dbus-allinone/allinone-auto-check-0.5.0,执行自动检测脚本auto-check.sh, ./auto-check.sh
会在目录/app/dbus-allinone/allinone-auto-check-0.5.0/reports下生产对应时间的检查报告,如下所示:
3.2.8 导入数据测试
验证MySQL数据是否能增量采集很简单,先打开grafana监控,然后在MySQL里插入数据,看监控是否显示DBus已经采集到。 验证机配置hosts 文件 我们在Windows上远程登录Grafana, 修改C:\Windows\System32\drivers\etc\hosts文件设置相应的域名信息如下: 替换成部署allinone包的服务器ip地址 192.168.100.11 dbus-n1
登录grafana 登录grafana url地址: http://dbus-n1:3000/login 默认 用户 admin/admin
mysql插入数据验证
#登录测试用户
mysql -utestschema -p #testschema账户密码:j0 验证日志数据采集
dbus-heartbeat心跳模块儿产生日志位置在:/app/dbus-allinone/dbus-heartbeat-
0.5.0/logs/heartbeat/heartbeat.log,利用logstash抽取该日志文件,把非结构化的数据,提取成结构化的数据
我们可以看他他定期会产生日志:
cd /app/dbus-allinone/dbus-heartbeat-0.5.0/logs/heartbeat/ tail -f heartbeat.log 3.2.8 打开web http://dbus-n1:6090/login
admin/12345678 用户体验版本:
体验租户功能,请使用用户:user@dbus.com 密码:12345678租户界面如下:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~