009.统一数据采集平台DBus-0.6.1安装部署

1. 准备工作

1.1 环境准备

以下软件为DBus-0.6.1依赖的软件:

组件 版本 备注
Zookeeper v3.4.6+ 用于构建整个系统和提供配置通知等,推荐版本:v3.4.8
Kafka v0.10 用于存储相关数据和消息,提供订阅和发布的能力
Storm v1.0.2 用于提供DBus流式计算
Influxdb v1.1.0 用于记录实时监控数据
Grafana v4.2.0 用于展示监控信息
MySQL v5.6.x 创建数据库dbusmgr,创建好账号,后续配置需提供
Nginx v1.9.3 用于存放静态html、js文件及反向代理
Canal v1.1.4 用于实时抽取binlog日志,具体配置可参考canal相关支持说明,支持mysql5.6、5.7
kafka-manager v1.3.3.4 选装,用于便捷地查看、管理Kafka集群,建议安装

我的环境已经安装了Ambari-2.7.4.0+HDP-3.1.4.0大数据平台,已安装的组件的版本如下:

  • Zookeeper:v3.4.6,满足要求
  • Kafka:v2.0.0,不满足要求
  • Strom:v1.2.1,不满足要求
  • Influxdb:未安装
  • Grafana:Ambari有自带的Grafana,但这里选择重新在其他节点安装一个Grafana,专门展示DBus的监控数据
  • MySQL:v5.7.32,满足要求
  • Nginx:未安装
  • Canal:未安装
  • kafka-manager:未安装

关于Ambari-2.7.4.0+HDP-3.1.4.0大数据平台的安装部署参考:基于CentOS7.8安装Ambari2.7+HDP3.1大数据平台

1.2 角色规划

hdp01 hdp02 hdp03 hdp04
MySQL MySQL
Zookeeper Zookeeper Zookeeper Zookeeper
Kafka Kafka-Manager Kafka Kafka Kafka
Storm Storm UI Server/Supervisor/Nimbus Nimbus Nimbus Nimbus
InfluxDB InfluxDB
Grafana Grafana
Nginx Nginx
DBus heartbeat server heartbeat server/web server heartbeat server heartbeat server

1.3 DBus源码编译

由于我的大数据平台的Kafka和Strom版本不满足DBus-0.6.1的要求,所以需要根据自己的组件版本来编译DBus源码

1.2.1 Maven安装部署

[admin@hdp01 apps]$ wget https://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
[admin@hdp01 apps]$ tar -zxvf apache-maven-3.6.3-bin.tar.gz
[admin@hdp01 apps]$ mv apache-maven-3.6.3 maven-3.6.3
[admin@hdp01 apps]$ ln -s maven-3.6.3 maven
[admin@hdp01 apps]$ ll
total 0
lrwxrwxrwx 1 admin admin 11 2020-10-29 21:08 maven -> maven-3.6.3
drwxr-xr-x 6 admin admin 99 2020-10-29 21:07 maven-3.6.3

# 设置环境变量
[admin@hdp01 apps]$ sudo vim /etc/profile
export MAVEN_HOME=/opt/apps/maven
export MAVEN_OPTS="-Xms512m -Xmx1024m"
export PATH=$MAVEN_HOME/bin:$PATH
[admin@hdp01 apps]$ source /etc/profile

# 修改settings.xml配置文件,为列出的保持默认即可
[admin@hdp01 apps]$ vim maven/conf/settings.xml

<localRepository>/data/maven/repo</localRepository>

<mirrors>
  <mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
  </mirror>
</mirrors>

<profiles>
  <profile>
    <id>jdk-1.8</id>
    <activation>
      <activeByDefault>true</activeByDefault>
      <jdk>1.8</jdk>
    </activation>
    <properties>
      <maven.compiler.source>1.8</maven.compiler.source>
      <maven.compiler.target>1.8</maven.compiler.target>
      <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
  </profile>
</profiles>

# 创建指定的仓库目录
[admin@hdp01 apps]$ sudo mkdir -p /data/maven/repo
[admin@hdp01 apps]$ sudo chown -R admin:admin /data/maven

1.2.2 从git上拉取源码

# 安装git
[admin@hdp01 package]$ sudo yum install git -y
# 拉取源码,这里拉取的master是0.6.1版本
[admin@hdp01 package]$ git clone https://github.com/BriData/DBus.git

1.2.3 下载Oracle数据库的驱动包

下载地址:https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html

官网下载是需要登录的,没有的话注册一个账号登录即可,我这里一口气把所有的jar包都下载好了,并且上传到服务器的目录结构如下,算是做了一个备份:

[admin@hdp01 package]$ tree Oracle-JDBC-Driver/
Oracle-JDBC-Driver/
├── 11.2.0.4
│   ├── ojdbc5.jar
│   └── ojdbc6.jar
├── 12.1.0.1
│   ├── ojdbc6.jar
│   └── ojdbc7.jar
├── 12.1.0.2
│   ├── ojdbc6.jar
│   └── ojdbc7.jar
├── 12.2.0.1
│   └── ojdbc8.jar
├── 18.3
│   └── ojdbc8.jar
├── 19.3
│   ├── ojdbc10.jar
│   └── ojdbc8.jar
├── 19.6
│   ├── ojdbc10.jar
│   └── ojdbc8.jar
├── 19.7
│   ├── ojdbc10.jar
│   └── ojdbc8.jar
└── 19.8
    ├── ojdbc10.jar
    └── ojdbc8.jar

# 安装到maven仓库,我们只需要一个12.1.0.2版本ojdbc7jar包即可,我这里还是全部安装了...
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc5 -Dversion=11.2.0.4 -Dpackaging=jar -Dfile=/opt/package/Oracle-JDBC-Driver/11.2.0.4/ojdbc5.jar -DgeneratePom=true

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.4 -Dpackaging=jar -Dfile=/opt/package/Oracle-JDBC-Driver/11.2.0.4/ojdbc6.jar -DgeneratePom=true

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=12.1.0.1 -Dpackaging=jar -Dfile=/opt/package/Oracle-JDBC-Driver/12.1.0.1/ojdbc6.jar -DgeneratePom=true

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0.1 -Dpackaging=jar -Dfile=/opt/package/Oracle-JDBC-Driver/12.1.0.1/ojdbc7.jar -DgeneratePom=true

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=12.1.0.2 -Dpackaging=jar -Dfile=/opt/package/Oracle-JDBC-Driver/12.1.0.2/ojdbc6.jar -DgeneratePom=true

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0.2 -Dpackaging=jar -Dfile=/opt/package/Oracle-JDBC-Driver/12.1.0.2/ojdbc7.jar -DgeneratePom=true

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc8 -Dversion=12.2.0.1 -Dpackaging=jar -Dfile=/opt/package/Oracle-JDBC-Driver/12.2.0.1/ojdbc8.jar -DgeneratePom=true

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc8 -Dversion=18.3 -Dpackaging=jar -Dfile=/opt/package/Oracle-JDBC-Driver/18.3/ojdbc8.jar -DgeneratePom=true

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc8 -Dversion=19.3 -Dpackaging=jar -Dfile=/opt/package/Oracle-JDBC-Driver/19.3/ojdbc8.jar -DgeneratePom=true

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc10 -Dversion=19.3 -Dpackaging=jar -Dfile=/opt/package/Oracle-JDBC-Driver/19.3/ojdbc10.jar -DgeneratePom=true

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc8 -Dversion=19.6 -Dpackaging=jar -Dfile=/opt/package/Oracle-JDBC-Driver/19.6/ojdbc8.jar -DgeneratePom=true

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc10 -Dversion=19.6 -Dpackaging=jar -Dfile=/opt/package/Oracle-JDBC-Driver/19.6/ojdbc10.jar -DgeneratePom=true

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc8 -Dversion=19.7 -Dpackaging=jar -Dfile=/opt/package/Oracle-JDBC-Driver/19.7/ojdbc8.jar -DgeneratePom=true

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc10 -Dversion=19.7 -Dpackaging=jar -Dfile=/opt/package/Oracle-JDBC-Driver/19.7/ojdbc10.jar -DgeneratePom=true

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc8 -Dversion=19.8 -Dpackaging=jar -Dfile=/opt/package/Oracle-JDBC-Driver/19.8/ojdbc8.jar -DgeneratePom=true

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc10 -Dversion=19.8 -Dpackaging=jar -Dfile=/opt/package/Oracle-JDBC-Driver/19.8/ojdbc10.jar -DgeneratePom=true

1.2.4 下载DB2数据库的驱动包

下载地址:https://www.ibm.com/support/pages/node/382667

这时候同样需要登录IBM的账号,没有的话需要注册。

压缩包里面的db2jcc4.jar就是我们需要的jar包,安装到maven仓库中:

mvn install:install-file -DgroupId=com.ibm.db2.jcc -DartifactId=db2jcc4 -Dversion=4.23.42 -Dpackaging=jar -Dfile=/opt/package/db2jcc4.jar -DgeneratePom=true

1.2.5 后端源码编译

  • pom文件修改
# 进入git拉下来的DBus目录下
[admin@hdp01 package]$ cd DBus/

# 1.修改项目根目录下的pom.xml文件,升级storm和kafka的版本
<dependency>
    <groupId>org.apache.storm</groupId>
    <artifactId>storm-core</artifactId>
    <!-- <version>1.0.1</version> -->
    <version>1.2.1</version>
    <scope>${scope.provided}</scope>
    <exclusions>
        <exclusion>
            <groupId>com.codahale.metrics</groupId>
            <artifactId>metrics-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-clients</artifactId>
    <!-- <version>0.10.0.0</version> -->
    <version>2.0.0</version>
</dependency>

# 2.修改dbus-commons/pom.xml文件,填入JDBC驱动和OJDBC驱动的依赖
[admin@hdp01 DBus]$ vim dbus-commons/pom.xml

<!-- 你需要添加 mysql 依赖在这里 mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.49</version>
</dependency>

<!-- 你需要添加 oracle 依赖在这里 ojdbc7 -->
<!-- mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0.2 -Dpackaging=jar -Dfile=ojdbc7-12.1.0.2.jar -DgeneratePom=true -->
<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc7</artifactId>
    <version>12.1.0.2</version>
</dependency>

<!-- 你需要添加 db2 依赖在这里 db2jcc4 -->
<!--  mvn install:install-file -DgroupId=com.ibm.db2.jcc -DartifactId=db2jcc4 -Dversion=4.23.42 -Dpackaging=jar   -Dfile=db2jcc4-4.23.42.jar -DgeneratePom=true-->
<dependency>
    <groupId>com.ibm.db2.jcc</groupId>
    <artifactId>db2jcc4</artifactId>
    <version>4.23.42</version>
</dependency>

# 3.修改dbus-fullpuller/pom.xml
<dependency>
    <groupId>org.apache.storm</groupId>
    <artifactId>storm-kafka</artifactId>
    <!-- <version>1.0.1</version> -->
    <version>1.2.1</version>
</dependency>

# 4.修改dbus-keeper/keeper-base/pom.xml
<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.11</artifactId>
    <!-- <version>0.10.0.1</version> -->
    <version>2.0.0</version>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>log4j-over-slf4j</artifactId>
        </exclusion>
    </exclusions>
</dependency>

# 5.修改dbus-heartbeat/assembly.xml
# 在第20行下面新增一行
<fileMode>0755</fileMode> # 这是第20行
<lineEnding>unix</lineEnding>
  • 源码修改
// 1.文件:dbus-stream/dbus-stream-main/src/main/java/com/creditease/dbus/stream/dispatcher/bout/Db2KafkaProducerBout.java

// import org.apache.storm.shade.com.codahale.metrics.Meter;
import com.codahale.metrics.Meter;
// import org.apache.storm.shade.com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.MetricRegistry;
// import org.apache.storm.shade.com.codahale.metrics.Slf4jReporter;
import com.codahale.metrics.Slf4jReporter;
  • 源码编译
[admin@hdp01 DBus]$ mvn clean package
# 编译完成后,DBus/deployer/target目录下的deployer-0.6.1.zip就是最终的部署文件

1.2.6 前端源码编译

# 1. 安装nodejs
[admin@hdp01 apps]$ wget https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/v14.15.0/node-v14.15.0-linux-x64.tar.gz

# 2.解压,配置环境变量
[admin@hdp01 apps]$ sudo tar -zxvf node-v14.15.0-linux-x64.tar.gz
[admin@hdp01 apps]$ sudo mv node-v14.15.0-linux-x64 nodejs-14.15.0
[admin@hdp01 apps]$ sudo ln -s nodejs-14.15.0 nodejs
[admin@hdp01 apps]$ sudo chown -R admin:admin nodejs*
[admin@hdp01 apps]$ sudo vim /etc/profile
export NODEJS_HOME=/opt/apps/nodejs
export PATH=$NODEJS_HOME/bin:$PATH
[admin@hdp01 apps]$ source /etc/profile
[admin@hdp01 apps]$ node -v
v14.15.0

# 3.使用淘宝npm镜像
[admin@hdp01 apps]$ npm install -g cnpm --registry=https://registry.npm.taobao.org
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
/opt/apps/nodejs-14.15.0/bin/cnpm -> /opt/apps/nodejs-14.15.0/lib/node_modules/cnpm/bin/cnpm
+ cnpm@6.1.1
added 688 packages from 971 contributors in 19.23s

# 4.进入DBus\dbus-keeper\keeper-web目录下
[admin@hdp01 apps]$ cd /opt/src/DBus/dbus-keeper/keeper-web/

# 5.修改源码
# (1) 文件:DBus/dbus-keeper/keeper-web/app/containers/Project/route/index.js,确保目录Project首字母P是大写,源码中有几行是project
// 导入自定义组件
# 注意,确保第一行import的路径为'@/app/containers/App'
import App from '@/app/containers/App'
import TopologyWrapper from '@/app/containers/Project/TopologyWrapper'
import TableWrapper from '@/app/containers/Project/TableWrapper'
import SinkWrapper from '@/app/containers/Project/SinkWrapper'
import UserWrapper from '@/app/containers/Project/UserWrapper'
import ResourceWrapper from '@/app/containers/Project/ResourceWrapper'
import FullpullWrapper from '@/app/containers/Project/FullpullWrapper'
import MonitorWrapper from '@/app/containers/Project/MonitorWrapper'
import UserKeyDownloadWrapper from '@/app/containers/Project/UserKeyDownloadWrapper'
# (2) 文件:DBus/dbus-keeper/keeper-web/app/components/index.js,确保目录common是小写,源码中有几行是Common
// common 公共无状态组件
export Bread from './common/Bread'
export Navigator from './common/Navigator'
export Header from './common/Header'
export Foot from './common/Foot'
export OperatingButton from './common/OperatingButton'
export FileTree from './common/FileTree'
# (3) 将DBus/dbus-keeper/keeper-web/app/containers/Project目录下的几个js文件的名称首字母改成大写
[admin@hdp01 Project]$ mv resourceWrapper.js ResourceWrapper.js
[admin@hdp01 Project]$ mv tableWrapper.js TableWrapper.js
[admin@hdp01 Project]$ mv topologyWrapper.js TopologyWrapper.js

# 6.编译前端代码
# 先下载依赖包
[admin@hdp01 keeper-web]$ cnpm install
...
✔ All packages installed (1602 packages installed from npm registry, 1 packages installed from git, used 31s(network 19s), speed 2.7MB/s, json 1328(3.65MB), tarball 46.35MB)
# 编译源码
[admin@hdp01 keeper-web]$ cnpm run build
# 编译成功后,在keeper-web生成了build目录,整个目录都是我们需要的前端文件

2. 基础软件安装部署

所有基础软件略过的部分,参考:基于CentOS7.8安装Ambari2.7+HDP3.1大数据平台,其中包括操作系统环境的配置(免秘钥登录,时钟同步等)也是安装DBus需要的配置

2.1 安装MySQL

2.2 Zookeeper安装部署

2.3 安装Kafka

需要开启kafka的JMX端口:


然后重启一下需要重启的所有组件,页面会有提示。

2.4 安装Kafka-Manager

参考:Kafka集群管理工具CMAK-3.0.0.5源码编译以及安装部署

2.5 安装Storm

2.6 安装InfluxDB

# 安装
[admin@hdp01 ~]$ wget https://dl.influxdata.com/influxdb/releases/influxdb-1.1.0.x86_64.rpm
[admin@hdp01 ~]$ sudo yum -y localinstall influxdb-1.1.0.x86_64.rpm

# 启动
sudo systemctl start influxdb
sudo systemctl status influxdb
sudo systemctl enable influxdb

# 修改端口
# 我启动失败,查看/var/log/messages日志发现8088端口被占用
# 修改配置文件/etc/influxdb/influxdb.conf
# 注意,添加的bind-address配置在[meta]的上方,其他不用修改
bind-address="0.0.0.0:8008"
[meta]
  # Where the metadata/raft database is stored
  dir = "/var/lib/influxdb/meta"
  ...

# 初始化配置
[admin@hdp01 ~]$ influx
Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
Connected to http://localhost:8086 version 1.1.0
InfluxDB shell version: 1.1.0
> create database dbus_stat_db
> use dbus_stat_db
Using database dbus_stat_db
> CREATE USER "dbus" WITH PASSWORD '123456'
> ALTER RETENTION POLICY autogen ON dbus_stat_db DURATION 15d
> exit
[admin@hdp01 ~]$

2.7 安装Grafana

# 安装
[admin@hdp02 ~]$ wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.2.0-1.x86_64.rpm
[admin@hdp02 ~]$ sudo yum -y localinstall grafana-4.2.0-1.x86_64.rpm

# 配置文件:/etc/grafana/grafana.ini,保持默认即可

# 启动
[admin@hdp02 ~]$ sudo systemctl start grafana-server
[admin@hdp02 ~]$ sudo systemctl status grafana-server
[admin@hdp02 ~]$ sudo systemctl enable grafana-server.service

登录页面进行配置:

接下来是数据库操作:

mysql> set global validate_password_policy=0;
mysql> set global validate_password_mixed_case_count=0;
mysql> set global validate_password_number_count=3;
mysql> set global validate_password_special_char_count=0;
mysql> set global validate_password_length=3;
mysql> create database dbusmgr DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create user 'dbusmgr'@'%' identified by '123456';
mysql> grant all privileges on dbusmgr.* to 'dbusmgr'@'%' identified by '123456';
mysql> flush privileges;
mysql> exit;

2.8 安装Nginx

# 安装
[admin@hdp02 ~]$ sudo yum -y localinstall http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
[admin@hdp03 ~]$ sudo yum install -y nginx

# 启动
[admin@hdp02 ~]$ sudo systemctl start nginx
[admin@hdp02 ~]$ sudo systemctl status nginx
[admin@hdp02 ~]$ sudo systemctl enable nginx

访问WEB-UI

3. DBus-0.6.1安装部署

  • 修改Storm目录权限

    # 所有Storm Nimbus所在的机器,都执行此操作
    sudo chmod o+w /usr/hdp/3.1.4.0-315/storm/
    
  • Nginx配置

    # 1.将编译好的DBus前端代码放到/usr/share/nginx/html目录下
    [admin@hdp02 html]$ pwd
    /usr/share/nginx/html
    [admin@hdp02 html]$ ll
    total 12
    -rw-r--r-- 1 root  root   494 2020-10-29 23:25 50x.html
    drwxr-xr-x 2 admin admin 4096 2020-11-03 22:45 build
    -rw-r--r-- 1 root  root   612 2020-10-29 23:25 index.html
    
    # 2.将后端部署包deployer-0.6.1.zip解压,配置环境变量
    [admin@hdp02 apps]$ unzip deployer-0.6.1.zip
    [admin@hdp02 apps]$ mv deployer-0.6.1 dbus-0.6.1
    [admin@hdp02 apps]$ ln -s dbus-0.6.1 dbus
    [admin@hdp02 apps]$ sudo vim /etc/profile
    export DBUS_HOME=/opt/apps/dbus
    export PATH=$DBUS_HOME/bin:$PATH
    [admin@hdp02 apps]$ source /etc/profile
    
    # 3.将dbus的conf目录下的nginx.conf复制到/etc/nginx目录下
    [admin@hdp02 apps]$ sudo dbus/conf/nginx.conf /etc/nginx/
    # 有一处地方需要修改
    location / {
        # 这里默认是一个相对路径,改为绝对路径
      root /usr/share/nginx/html/build;
      ...
    }
    
    # 4.重启nginx
    [admin@hdp02 apps]$ sudo systemctl restart nginx
    
  • 后端程序配置,根据自己的环境进行修改

    # 1.修改配置文件:dbus/conf/config.properties
    #######################################################################################################
    # 是否使用dbus提供的配置中心,默认开启,目前仅支持spring cloud配置中心
    config.server.enabled=true
    # 如果config.server.enabled=false,请配置以下地址
    #spring.cloud.config.profile=环境名必须修改 release
    #spring.cloud.config.label=分支名必须修改 master
    #spring.cloud.config.uri=必须修改 http://localhost:19090
    # 配置中心端口,端口号不可用则需修改
    config.server.port=19090
    
    #######################################################################################################
    # 是否使用dbus提供的注册中心,默认开启
    register.server.enabled=true
    # 如果register.server.enabled=false,请配置以下地址
    #register.server.url=必须修改 http://localhost:9090/eureka/
    # 注册中心端口,端口号不可用则需修改
    register.server.port=9090
    
    #######################################################################################################
    # 暂不支持使用自己的网关
    # 网关端口,端口号不可用则需修改
    gateway.server.port=5090
    # dbus控制台端口,端口号不可用则需修改
    mgr.server.port=8901
    # dbus数据库服务端口,端口号不可用则需修改
    service.server.port=18901
    # mysql管理库相关配置
    spring.datasource.url=jdbc:mysql://hdp01:3306/dbusmgr?characterEncoding=utf-8
    spring.datasource.username=dbusmgr
    spring.datasource.password=123456
    
    #######################################################################################################
    # dbus集群列表,dbus web所在机器必须能免密访问该列表所有机器
    dbus.cluster.server.list=hdp01,hdp02,hdp03,hdp04
    # dbus集群统一免密用户
    dbus.cluster.server.ssh.user=admin
    # dbus集群统一免密端口号
    dbus.cluster.server.ssh.port=22
    # ZK地址
    zk.str=hdp02:2181,hdp03:2181,hdp04:2181
    # kafka地址
    bootstrap.servers=hdp02:9092,hdp03:9092,hdp04:9092
    bootstrap.servers.version=2.0.0
    # influxdb外网地址(域名)
    influxdb.web.url=http://hdp01:8086
    # influxdb内网地址,不区分内外网influxdb_url_web和influxdb_url_dbus配置一样即可
    influxdb.dbus.url=http://hdp01:8086
    # grafana外网地址(域名)
    grafana.web.url=http://hdp02:3000
    # grafana内网地址,不区分内外网igrafana_url_web和grafana_url_dbus配置一样即可
    grafana.dbus.url=http://hdp02:3000
    # grafana管理员token
    grafana.token=eyJrIjoiZEhic0RuemI2WUc3bGhXdHFTS2JxZ0N3M3BONUdhWloiLCJuIjoiYWRtaW4iLCJpZCI6MX0=
    # storm nimbus leader所在机器,这里只需配置leader机器,仅一台
    storm.nimbus.host=hdp01
    # storm nimbus根目录
    storm.nimbus.home.path=/usr/hdp/3.1.4.0-315/storm
    # storm worker日志根目录,默认storm.nimbus.home.path下的logs目录
    storm.nimbus.log.path=/data/log/storm
    # stormUI url
    storm.rest.url=http://hdp01:8744/
    # storm在zookeeper的根节点
    storm.zookeeper.root=/storm
    # 心跳程序自动部署目标机器,多个机器逗号隔开(半角逗号)
    heartbeat.host=hdp01,hdp02,hdp03,hdp04
    # 心跳程序自动部署根目录
    heartbeat.path=/data/dbus/heartbeat
    
    #######################################################################################################
    # nginx所在机器ip
    nginx.ip=hdp02
    # nginx.config配置的listen端口号
    nginx.port=8080
    
    # 2.在所有规划的dbus heartbeat服务节点创建数据目录
    sudo mkdir -p /data/dbus/heartbeat
    sudo chown -R admin:admin /data/dbus
    
    # 3.启动Dbus-Keeper
    [admin@hdp02 apps]$ chmod u+x dbus/bin/init-all.sh dbus/bin/start.sh dbus/bin/stop.sh
    # 注意,进入bin目录下执行脚本,脚本中使用的相对路径,不然会找不到jar包
    [admin@hdp02 apps]$ dbus/bin
    
    # 这个脚本会先对环境做细致的检查,有任何一项环境问题都会报错
    [admin@hdp02 bin]$ init-all.sh 
    加载config.properties配置文件中...
    nginx地址检测通过
    测试数据库连通性...
    数据库连通性测试通过
    kafka检测通过
    influxdb地址检测通过
    测试ZK连通性...
    ZK连通性测试通过
    验证密钥是否存在...
    ~/.ssh/id_rsa密钥文件存在
    开始初始化dbusmgr相关表...
    初始化dbusmgr相关表成功
    初始化DBusInit节点完成
    解压config-server-0.6.1.jar...
    配置config-server-0.6.1.jar...
    压缩config-server-0.6.1.jar...
    本地配置中心配置初始化...
    本地配置中心配置初始化完成
    解压register-server-0.6.1.jar...
    配置register-server-0.6.1.jar...
    压缩register-server-0.6.1.jar...
    解压gateway-0.6.1.jar...
    配置gateway-0.6.1.jar...
    压缩gateway-0.6.1.jar...
    解压keeper-mgr-0.6.1.jar...
    配置keeper-mgr-0.6.1.jar...
    压缩keeper-mgr-0.6.1.jar...
    解压keeper-service-0.6.1.jar...
    配置keeper-service-0.6.1.jar...
    压缩keeper-service-0.6.1.jar...
    解压dbus-heartbeat-0.6.1...
    配置dbus-heartbeat-0.6.1...
    压缩dbus-heartbeat-0.6.1...
    删除logs目录...
    新建logs目录...
    启动config-server...
    启动config-server中...
    启动config-server成功
    启动register-server...
    启动register-server中...
    启动register-server成功
    启动gateway...
    启动keeper-mgr...
    启动keeper-service...
    dbusweb程序启动中...
    dbusweb程序启动中...
    dbusweb程序启动中...
    启动gateway成功
    启动keeper-mgr成功
    启动keeper-service成功
    启动dbusweb程序成功
    登陆测试中...
    登陆测试中...
    登陆测试中...
    登陆测试成功.
    初始化dbus其他配置...
    {"status":0,"message":"ok"}
    初始化其他配置成功.
    初始化完成,请登录web开启dbus之旅.
    
    # 上面的命令只是进行启动的测试,接下来进行真正的启动
    [admin@hdp02 bin]$ ./start.sh 
    启动config-server...
    启动config-server...
    启动register-server...
    启动register-server...
    启动gateway...
    启动keeper-mgr...
    启动keeper-service...
    
  • 访问WEB-UI

# 检查DBUS安装情况
# 规划的4个节点安装heartbeat server,安装在/data/dbus/heartbeat目录下
# 4个节点都应该安装成功
[admin@hdp01 ~]$ ll /data/dbus/heartbeat/
total 32288
drwxr-xr-x 5 admin admin       90 Nov  5 22:54 dbus-heartbeat-0.6.1
-rw-rw-r-- 1 admin admin 33062689 Nov  5 22:56 dbus-heartbeat-0.6.1.zip

# 启动4个节点的heartbeat服务,4个节点全部执行
[admin@hdp01 heartbeat]$ cd dbus-heartbeat-0.6.1/
[admin@hdp01 dbus-heartbeat-0.6.1]$ nohup sh heartbeat.sh > heartbeat.log 2>&1 &



# 检查表创建情况
mysql> use dbusmgr;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+--------------------------------------------+
| Tables_in_dbusmgr                          |
+--------------------------------------------+
| t_avro_schema                              |
| t_data_schema                              |
| t_data_tables                              |
| t_dbus_datasource                          |
| t_ddl_event                                |
| t_encode_columns                           |
| t_encode_plugins                           |
| t_fullpull_history                         |
| t_meta_version                             |
| t_name_alias_mapping                       |
| t_plain_log_rule_group                     |
| t_plain_log_rule_group_version             |
| t_plain_log_rule_type                      |
| t_plain_log_rules                          |
| t_plain_log_rules_version                  |
| t_project                                  |
| t_project_encode_hint                      |
| t_project_resource                         |
| t_project_sink                             |
| t_project_topo                             |
| t_project_topo_table                       |
| t_project_topo_table_encode_output_columns |
| t_project_topo_table_meta_version          |
| t_project_user                             |
| t_query_rule_group                         |
| t_sink                                     |
| t_sinker_topo                              |
| t_sinker_topo_schema                       |
| t_sinker_topo_table                        |
| t_storm_topology                           |
| t_table_action                             |
| t_table_meta                               |
| t_topology_jar                             |
| t_user                                     |
+--------------------------------------------+
34 rows in set (0.00 sec)

在页面查一下集群状态:

到这里,DBus的安装部署就成功了!在bin目录下执行stop.sh就可以停止DBus服务。

推荐阅读更多精彩内容