1、什么是DBus
DBus(数据总线)项目为了统一数据采集需求而生, 专注于数据的收集及实时数据流计算,通过简单
灵活的配置,以无侵入的方式对源端数据进行采集,采用高可用的流式计算框架,对公司各个IT系统在
业务流程中产生的数据进行汇聚,经过转换处理后成为统一JSON的数据格式(UMS),提供给不同数
据使用方订阅和消费,充当数仓平台、大数据分析平台、实时报表和实时营销等业务的数据源。支持多
租户管理,提供租户级资源、数据隔离机制 。
2、DBus 的主要应用场景
数仓平台和数据分析平台
实时营销决策
实时报表展示
异构数据实时同步
其他实时性要求高的系统
3.DBus all in one的部署
DBus安装部署分为以下两种方式(注意:两种方式不可以混用):
All In One体验版
该版本安装在单机上,自动部署安装dbus所依赖的相关组件,仅用于体验dbus基本功能,
不可以用于生产。
该版本支持mysql数据源接入体验。
集群部署
用于生产环境或测试环境部署。
可部署在单机上或集群上。
该版本包含对Oracle、mysql,logstash、filebeat、flume等数据源的支持。
由于电脑配置有限,这里采用all in one的部署方式作为学习使用
3.1 环境准备
说明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 (需要单独安装, 参考如下步骤3)
mysql (需要单独安装,参考如下步骤2)
dbus相关包:
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 安装dbus-allinone环境的建议配置如下
JDK 1.8.181 或 以上
CPU 2核 或以上
内存 16GB或以上
磁盘 20GB或以上
安装jdk1.8
关闭防火墙
3.3 配置静态ip
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=enp0s3 UUID=f9fe4719-eb91-4b25-b494-ccefebe4352d DEVICE=enp0s3 ONBOOT=yes PEERDNS=yes PEERROUTES=yes IPADDR=192.168.43.24 BCAST=192.168.43.255 GATEWAY=192.168.43.1 NETMASK=255.255.255.0 DNS1=192.168.43.1 DNS2=8.8.8.8
3.4 编辑主机名
sudo vi /etc/hosts
192.168.43.24 dbus-n1
3.5 创建app用户赋予sudo权限
由于dbus启动拓扑采用的ssh调用storm命令,all in one包中默认的调用ssh使用app用户和22端口,
因此要正常体验all in one需要创建app账户和配置ssh免密登录,免密登录配置的从dbus-n1到dbus-n1
的免密登录
切换到root用户
创建app用户并设置密码
adduser app
passwd app
sudo权限
visudo
在打开的文件新增如下内容在保存退出
app ALL=(ALL) NOPASSWD: ALL
3.6配置app用户SSH免密登录
#切换到app用户下 sudo su - app #生成公钥和私钥,执行过程中一路回车即可 ssh-keygen cd .ssh cat id_rsa.pub >> authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
执行一次自己到自己的免密通讯
3.7 安装MySQL
cannal对MySQL有要求,推荐安装5.7。
由于CentOS 的yum源中没有mysql,需要到mysql的官网下载yum repo配置文件。
下载命令:
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
然后进行repo的安装
sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm
执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
安装MySQL:
sudo yum -y install mysql-community-server
设置为开机启动:
sudo systemctl enable mysqld
启动mysql:
sudo systemctl start mysqld
查看mysql状态:
sudo systemctl status mysqld
查看root临时密码
sudo grep 'temporary password' /var/log/mysqld.log
使用临时密码登录
这时会要求输入密码,我们输入上述临时密码然后回车即可,然后按照如下命令把root用户的密码改为root
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'; exit
接下来开启binlog
sudo vi /etc/my.cnf
在/etc/my.cnf配置文件中,只是增加bin-log相关配置,其他不用修改,关注以下汉字注释部分
[mysqld] # dbus相关配置开始 log-bin=mysql-bin binlog-format=ROW server_id=1 # dbus相关配置结束
重启mysql
sudo systemctl restart mysqld
3.8 安装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
influx
执行如下命令
#执行初始化脚本 create database dbus_stat_db use dbus_stat_db CREATE USER "dbus" WITH PASSWORD 'dbus' ALTER RETENTION POLICY autogen ON dbus_stat_db DURATION 15d exit
3.9安装DBus-allinone
将下载的dbus-allinone包上传到服务器 /app目录下,且必须在此目录下
# 如果没有app目录,要先创建app目录 sudo mkdir /app cd /app sudo tar -zxvf dbus-allinone.tar.gz
初始化数据库
以root身份登录mysql客户端
执行以下命令进行数据库初始化,会创建dbmgr库以及用户、canal用户、dbus库以及用户、
testschema库以及用户:
source /app/dbus-allinone/sql/init.sql
执行start.sh一键启动dbus所有服务,启动项比较多
cd /app/dbus-allinone
./start.sh
请耐心等待(大概需要几分钟左右时间),正确的启动日志如下
[app@dbus-n1 dbus-allinone]$ ./start.sh
Start grafana...
Grafana started. pid: 2202
=============================================================================================
Start zookeeper...
zookeeper pid 2245
Zookeeper started.
=============================================================================================
Start kafka...
No kafka server to stop
kafka pid 2479
kafka started.
=============================================================================================
Start Canal ...
canal started.
=============================================================================================
Start logstash...
No logstash to stop
nohup: appending output to ‘nohup.out’
logstash pid -1
logstash started.
=============================================================================================
Start storm nimbus...
No storm nimbus to stop
Storm nimbus pid 2620
Storm nimbus started.
=============================================================================================
Start storm supervisor...
No storm supervisor to stop
Storm supervisor pid 2872
Storm supervisor started.
=============================================================================================
Start storm ui...
No storm ui to stop
Storm ui pid -1
Storm ui started. ui port: 6672
=============================================================================================
Stop storm topology.
Storm topology stoped.
=============================================================================================
Start storm topology...
Storm topology started.
=============================================================================================
Start Dbus Heartbeat...
No Dbus Heartbeat to stop
Dbus Heartbeat pid 4697
Dbus Heartbeat started.
=============================================================================================
Start Dbus keeper...
=========================stop===========================
keeper-proxy process not exist
gateway process not exist
keeper-mgr process not exist
keeper-service process not exist
register-server process not exist
=========================start===========================
register-server started. pid: 4871
keeper-proxy started. pid: 5105
gateway started. pid: 5161
keeper-mgr started. pid: 5206
keeper-service started. pid: 5409
Dbus keeper prot: 6090
Dbus keeper started.
=============================================================================================
生成检查报告
进入目录/app/dbus-allinone/allinone-auto-check-0.5.0,执行自动检测脚本auto-check.sh,稍等待
一会儿
cd /app/dbus-allinone/allinone-auto-check-0.5.0 ./auto-check.sh
验证机配置hosts文件
修改C:WindowsSystem32driversetchosts文件设置相应的
域名信息如下 :
192.168.43.24 dbus-n1
3.10 登录grafana
mysql插入数据验证
#登录测试用户
mysql -utestschema -p #testschema账户密码:j0<C6cqcqr:TestSchema
#执行测试脚本 use testschema; INSERT INTO test_table (NAME, BIRTHDAY) VALUES ('testdataname', '2018-08-10 18:00:00'); INSERT INTO test_table (NAME, BIRTHDAY) VALUES ('testdataname', '2018-08-10 18:00:00'); INSERT INTO test_table (NAME, BIRTHDAY) VALUES ('testdataname', '2018-08-10 18:00:00'); INSERT INTO test_table (NAME, BIRTHDAY) VALUES ('testdataname', '2018-08-10 18:00:00'); INSERT INTO test_table (NAME, BIRTHDAY) VALUES ('testdataname', '2018-08-10 18:00:00');
查看DBus是否实时获取到数据
如果获取不到数据就重启一下dbus
DBus KeeperUI
访问地址 http://dbus-n1:6090/login
体验管理员功能,请使用用户:admin 密码:12345678
管理员界面如下:
体验租户功能,请使用用户:user@dbus.com 密码:12345678