zoukankan      html  css  js  c++  java
  • 4.DBus学习-1

    1、什么是DBus
    DBus(数据总线)项目为了统一数据采集需求而生, 专注于数据的收集及实时数据流计算,通过简单
    灵活的配置,以无侵入的方式对源端数据进行采集,采用高可用的流式计算框架,对公司各个IT系统在
    业务流程中产生的数据进行汇聚,经过转换处理后成为统一JSON的数据格式(UMS),提供给不同数
    据使用方订阅和消费,充当数仓平台、大数据分析平台、实时报表和实时营销等业务的数据源。支持多
    租户管理,提供租户级资源、数据隔离机制 。


    2、DBus 的主要应用场景
    数仓平台和数据分析平台
    实时营销决策
    实时报表展示
    异构数据实时同步
    其他实时性要求高的系统

    3.DBus all in one的部署


    DBus安装部署分为以下两种方式(注意:两种方式不可以混用):


    All In One体验版
    该版本安装在单机上,自动部署安装dbus所依赖的相关组件,仅用于体验dbus基本功能
    不可以用于生产。
    该版本支持mysql数据源接入体验。


    集群部署
    用于生产环境或测试环境部署。
    可部署在单机上或集群上。
    该版本包含对Oraclemysqllogstashfilebeatflume等数据源的支持。

    由于电脑配置有限,这里采用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-n1dbus-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
    cannalMySQL有要求,推荐安装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

     http://dbus-n1:3000/login

     

     

     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

     

  • 相关阅读:
    代理信息[Python] 实现网络爬虫
    线程希望IOS开发(67)之简单的线程方法
    生产环境紧急修改表存储引擎:MyISAM 为 InnoDB步骤
    Mysql优化SQL语句的一般步骤
    window 2003 实现多用户远程登录
    XSS的知识普及和预防办法
    免积分下载CSDN软件和新浪资料
    mysql开启慢查询方法
    在线JS/CSS/HTML压缩
    我们项目中需要准备的技术
  • 原文地址:https://www.cnblogs.com/braveym/p/13278484.html
Copyright © 2011-2022 走看看