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

     

  • 相关阅读:
    结合中断上下文切换和进程上下文切换分析Linux内核的一般执行过程
    深入理解系统调用
    基于mykernel2.0编写一个操作系统内核
    如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?
    如何评测软件工程知识技能水平?
    深入理解TCP协议及其源代码
    Socket与系统调用深度分析
    创新产品的需求分析:未来的图书会是什么样子?
    构建调试Linux内核网络代码的环境MenuOS系统
    解决npm ERR! code ELIFECYCLE npm ERR! errno 1问题
  • 原文地址:https://www.cnblogs.com/braveym/p/13278484.html
Copyright © 2011-2022 走看看