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/

原文地址:https://www.cnblogs.com/braveym/p/14734779.html