zoukankan      html  css  js  c++  java
  • 5.DBus-02学习

    1、编译DBus源代码
    DBus本身是一个前后端分离的maven多模块项目,前端基于React,后端基于SpringCloud全家桶 。
    到 https://github.com/BriData/DBus 拉取源码

     我本地已经安装好了

    通过git工具拉取代码到本地

    git clone https://github.com/BriData/DBus.git

    通过idea打开项目

    先编译后端代码

    dbus-commons/pom.xml 中,需要在占位符处引入 mysqloracle相关包

    <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.35</version>
            </dependency>
    
            <dependency>
                <groupId>com.oracle</groupId>
                <artifactId>ojdbc14</artifactId>
                <version>10.2.0.2.0</version>
            </dependency>

    修改依赖组件的版本号

     

     

    修改

    dbus-main是总体工程,其中encoder-basedbus-commons等一些模块是公共模块,会被其他引用。
    所以,推荐直接在dbus-main工程上使用mvn clean package命令进行编译。

    编译完成后,DBus/deployer/target目录下的deployer-0.6.1.zip就是最终的部署文件

    前端代码编译

    使用淘宝NPM镜像

    npm install -g cnpm --registry=https://registry.npm.taobao.org

    前端编译

    修改源码:

    # (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

    进入DBusdbus-keeperkeeper-web下,在执行如下命令 

     cnpm install

    编译

    cnpm run build

     编译成功后,在keeper-web生成了build目录,整个目录都是我们需要的前端文件

    2、基础软件安装部署

    在各个节点安装ZIP

     sudo yum -y install zip

    在安装软件之前,我们登录Ambari把用不到的服务先关掉,以节约
    来。如下图所示,先保留ZookeeperAmbari Metrics服务即可:

     直接使用HDP3.1自带的Zookeeper,版本3.4.6正好合适,之前就安装好了这里保持不动,处于启动状态即可。

    安装Kafka
    生产上我们起码要部署三个节点的Kafka集群,这里我们就在node02上部署一个单点,

    所有的部署方法、操作等跟部署集群没有差别。

     后续步骤就一路下一步。

    上传安装包到node02节点

     

     解压安装包

    unzip kafka-manager-2.0.0.0.zip
    
    ln -s kafka-manager-2.0.0.0 kafka-manager

    创建软链接

    配置环境变量:

    sudo vim /etc/profile

    末尾添加:

    export KAFKA_MANAGER_HOME=/home/hadoop/app/kafka-manager
    export PATH=$KAFKA_MANAGER_HOME/bin:$PATH

    使环境变量生效

    source /etc/profile

    配置kafka-manager

    修改如下配置项:

    kafka-manager.zkhosts="node01:2181"
    basicAuthentication.enabled=true
    basicAuthentication.password="admin"

    启动kafka-manager:

    cd /home/hadoop/app/kafka-manager
    #前台启动
    kafka-manager -Dhttp.port=9999

    #也可以后台启动 nohup $KAFKA_MANAGER_HOME/kafka-manager -Dhttp.port=9999 > kafka-managernohup.log 2>&1 &

    访问 http://node02:9999/  前提是配置好hosts文件

    用户名 admin

    密码admin

    接下来添加一个kafka集群到kafka-manager

     

    其余选项根具体是修改,不需要修改的保持默认即可,直接点击保存即可,至此kafka-manager就安装
    好了,一个Kafka-manager可以管理多个集群。

    保存后:

     此时,Kafka-manager是获取不到Kafka Broker的相关信息的,cluster视图如下:

     

    开启kafka的JMX

    保存的时候,记得输入描述信息,这是个好习惯:

     改完一定要重启kafka Broker才能生效:

     我们可以看到Ambari考虑得比较全面,在生产环境肯定不能随意整体重启,肯定是滚动重启的。

    安装Storm

     基于步骤基本就是下一步。

    安装InfluxDB


    我们将infludb安装到node03

     wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.6.x86_64.rpm

    安装

    sudo yum -y localinstall influxdb-1.7.6.x86_64.rpm

    启动

    sudo systemctl start influxdb  #启动influxdb
    sudo systemctl status influxdb #查看状态
    sudo systemctl enable influxdb #开启开机启动

    初始化配置

    登录influxdb

    执行如下命令:

    #执行初始化脚本
    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

    安装Grafana
    Ambari使用的GrafanaDBus依赖的版本不一样,需要单独安装以便于导入Dashboard

    我们安装在node02上:

     wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.2.0-1.x86_64.rpm

    sudo yum -y localinstall grafana-4.2.0-1.x86_64.rpm


    配置文件:

    sudo vim /etc/grafana/grafana.ini

    我们保持默认,启动即可:

    sudo systemctl start grafana-server
    sudo systemctl status grafana-server
    sudo systemctl enable grafana-server.service   #设置开机启动

     

    登录Grafana:

    访问
    http://node02:3000/login

     

    默认的用户名密码是admin/admin,登录即可。

    生成GrafanaToken
    Dbus使用Grafana展示数据线监控信息。需要提供Grafana Token进行监控模板的初始化。

    点击打开API Keys管理页面:


     添加Key

    在跳出来的页面拷贝Key并并保存好:

    eyJrIjoiZTQ3Zk9lUnR3Q3N4OThvQlA2bTZoWWlOMlJtN0dMQm4iLCJuIjoiZ3JhZmFfYWRtaW4iLCJpZCI6MX0=
    
    
    curl -H "Authorization: Bearer eyJrIjoiZTQ3Zk9lUnR3Q3N4OThvQlA2bTZoWWlOMlJtN0dMQm4iLCJuIjoiZ3JhZmFfYWRtaW4iLCJpZCI6MX0=" http://node02:3000/api/dashboards/home

     

    创建MySQL dbusmgr

    DBusWeb管理模块就是一个web程序,它需要用到Mysql数据库,我们复用Ambari所用的node01
    上安装的MySQL即可,但是需要创建库、用户和表。

    在node01上登录MySQL(密码是root)

    mysql -u root -p

    执行如下命令:

    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;
    create database dbusmgr DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
    create user 'dbusmgr'@'%' identified by 'dbusmgr';
    flush privileges;
    grant all privileges on dbusmgr.* to 'dbusmgr'@'%' identified by 'dbusmgr';
    flush privileges;
    exit

    安装Nginx

    我们在node03上安装Nginx

    安装依赖环境,安装命令:

    sudo yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

    添加Nginx官方Yum源:

    由于yum源中没有我们想要的nginx,那么我们就需要创建一个“/etc/yum.repos.d/nginx.repo”的文件,其实就是新增一个yum源。

    sudo vim /etc/yum.repos.d/nginx.repo

    然后将下面的内容复制进去:

    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=0
    enabled=1

    然后保存“/etc/yum.repos.d/nginx.repo”文件后,我们就使用yum命令查询一下我们的nginx的yum源配置好了没有。

    sudo  yum list |grep nginx

    然后要安装我们的nginx就直接执行:

    sudo yum -y install nginx

    也可以查看一下是否安装完成:

     rpm -q nginx

    启动Nginx:

    sudo systemctl start nginx
    sudo systemctl status nginx
    sudo systemctl enable nginx #设置开机启动

    访问Nginx:

    http://node03/

  • 相关阅读:
    CSS旧版flex及兼容
    深入理解CSS弹性盒模型flex
    CSS文本方向
    文本溢出text-overflow和文本阴影text-shadow
    深入理解CSS中的空白符和换行
    CSS中常见的6种文本样式
    理解CSS相对定位和固定定位
    CSS绝对定位的应用
    深入理解CSS绝对定位absolute
    深入理解CSS中的margin负值
  • 原文地址:https://www.cnblogs.com/braveym/p/14734779.html
Copyright © 2011-2022 走看看