1 DataSophon介绍

1.1 DataSophon愿景

DataSophon致力于快速实现部署、管理、监控以及自动化运维大数据云原生平台,帮助您快速构建起稳定、高效、可弹性伸缩的大数据云原生平台。

1.2 DataSophon是什么

《三体》,这部获世界科幻文学最高奖项雨果奖的作品以惊艳的"硬科幻"风被大家所熟知,其作者刘慈欣更是被誉为"单枪匹马将中国科幻提高到世界级水平
作为三体中非常重要的角色,智子(Sophon)是将九维的质子进行二维展开,通过电路蚀刻改造成超级计算机后,再转回到微观的十一维来监控人类的一举一动,并利用量子纠缠实现瞬时通信报告给4光年之外的三体文明。说白了智子是三体文明部署在地球的AI实时远程监控和管理平台。

DataSophon也是个类似的管理平台,只不过与智子不同的是,智子的目的是锁死人类的基础科学阻碍人类技术爆炸,而DataSophon是致力于自动化监控、运维、管理大数据基础组件和节点的,帮助您快速构建起稳定,高效的大数据集群服务

1.3 DataSophon主要特性

① 快速部署,可快速完成300个节点的大数据集群部署
② 兼容复杂环境,极少的依赖使其很容易适配各种复杂环境
③ 监控指标全面丰富,基于生产实践展示用户最关心的监控指标
④ 灵活便捷的告警服务,可实现用户自定义告警组和告警指标
⑤ 可扩展性强,用户可通过配置的方式集成或升级大数据组件

1.4 整体架构

在这里插入图片描述

1.5 集成组件

各集成组件均进行过兼容性测试,并稳定运行于300+个节点规模的大数据集群,日处理数据量约4000亿条。在海量数据下,各大数据组件调优成本低,平台默认展示用户关心和需要调优的配置。

序号名称版本描述
1HDFS3.3.3分布式大数据存储
2YARN3.3.3分布式资源调度与管理平台
3ZooKeeper3.5.10分布式协调系统
4FLINK1.15.2实时计算引擎
5DolphoinScheduler3.1.1分布式易扩展的可视化工作流任务调度平台
6StreamPark1.2.3流处理极速开发框架,流批一体&湖仓一体的云原生平台
7Spark3.1.3分布式计算系统
8Hive3.1.0离线数据仓库
9Kafka2.4.1高吞吐量分布式发布订阅消息系统
10Trino367分布式Sql交互式查询引擎
11Doris1.1.5新一代极速全场景MPP数据库
12Hbase2.4.16分布式列式存储数据库
13Ranger2.1.0权限控制框架
14ElasticSearch7.16.2高性能搜索引擎
15Prometheus2.17.2高性能监控指标采集与告警系统
16Grafana9.1.6监控分析与数据可视化套件
17AlertManager0.23.0告警通知管理系统

2 环境准备

2.0 DataSophon安装包

链接:https://pan.baidu.com/s/1QWTMadCGLiAL-XqeS6AygQ 
提取码:2gd2 

选择需要安装的DataSophon版本,并选择对应的datasophon-manager版本。本文以最新的DataSophon-1.1.1版本为例。

2.1 网络要求

要求各机器各组件正常运行提供如下的网络端口配置:

组件默认端口说明
DDHApplicationServer8081、2551、85868081为http server端口,2551为rpc通信端口,8586为jmx端口
WorkerApplicationServer2552、9100、8585 2552rpc通信端口,8585为jmx端口,9100为主机数据采集器端口
nginx8888提供 UI 端通信端口

注:
① DDHApplicationServer为API接口层即web后端,主要负责处理前端UI层的请求。该服务统一提供RESTful api向外部提供请求服务。
② WorkerApplicationServer负责执行DDHApplicationServer发送的指令,包括服务安装、启动、停止、重启等指令。

2.2 配置hosts

大数据集群所有机器需配置主机host。

配置主机名: hostnamectl set-hostname 主机名

配置/etc/hosts文件

2.3 关闭防火墙

2.4 集群免密

部署机器中,DataSophon节点以及大数据服务主节点与从节点之间需免密登录。

配置免密

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

集群之间完成免密

ssh-copy-id -i ~/.ssh/id_rsa.pub root@主机

2.5 环境要求

Jdk环境需安装。建议mysql版本为5.7.X,并关闭ssl。

2.6 创建目录

mkdir -p /opt/datasophon/DDP/packages

将下载的部署包上传到/opt/datasophon/DDP/packages目录下,作为项目部署包仓库地址。
注:需要将默认安装包建立在这个目录下,否则会报找不到目录错,如下:
在这里插入图片描述

3 部署

3.1 部署mysql

注意需关闭mysql ssl功能。在部署过程中,部分组件会执行sql生成库表,不同环境的mysql在配置上存在差异,可根据sql执行情况,变更mysql配置。

3.1.1 关闭ssl

#使用如下命令查看ssl是否关闭,如果have_ssl的值为YES,说明SSL已经开启
SHOW VARIABLES LIKE '%ssl%';

在这里插入图片描述
修改配置文件my.cnf,在MySQL的配置文件my.cnf中加入以下内容:

#disable_ssl
skip_ssl

这个配置的作用是告诉MySQL不要使用SSL协议。在修改配置文件之前,最好备份一下,以免出错后无法恢复。

重启mysql服务
修改了my.cnf文件之后,需要重启MySQL才能使修改生效。可以使用以下命令重启MySQL:

service mysqld restart

再次查看,可以发现此时have_ssl值为DISABLED
在这里插入图片描述

3.1.2 执行初始化脚本

执行如下数据库脚本:

CREATE DATABASE IF NOT EXISTS datasophon DEFAULT CHARACTER SET utf8;
grant all privileges on *.* to datasophon@"%" identified by 'datasophon' with grant option;
GRANT ALL PRIVILEGES ON *.* TO 'datasophon'@'%';
FLUSH PRIVILEGES;

执行datasophon-manager安装目录sql目录下datasophon.sql,创建数据表。

source datasophon.sql

3.2 解压

在安装目录下解压datasophon-manager-{version}.tar.gz,解压后可以看到如下安装目录:

tar -zxvf datasophon-manager-1.1.1.tar.gz

在这里插入图片描述

bin:启动脚本git

conf :配置文件

lib :项目依赖的jar包

logs:项目日志存放目录

jmx:jmx插件

3.3 安装并配置nginx

注:1.1.1之前的版本需要执行该步操作,需要配置nginx。1.1.1及以后版本可以跳过该步骤

3.3.1 安装依赖包

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

3.3.2 下载并解压

#创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx
#下载tar包
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.gz

3.3.3 安装nginx

#进入nginx目录
cd /usr/local/nginx/nginx-1.13.7
#执行命令 考虑到后续安装ssl证书 添加两个模块
./configure --with-http_stub_status_module --with-http_ssl_module
#执行make命令
make
#执行make install命令
make install

3.3.4 启动nginx服务

 ​​​​​​​/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

看到如下页面说明nginx安装成功
在这里插入图片描述

3.3.5配置nginx.conf

# 打开配置文件
vim /usr/local/nginx/conf/nginx.conf

注意:这里需要获取前端配置包dist.zip并解压

新增配置

server {
                listen 8888;# 访问端口(自行修改)
                server_name localhost;
                #charset koi8-r;
                #access_log /var/log/nginx/host.access.log main;
                location / {
                        root /usr/local/nginx/dist; # 前端解压的 dist 目录地址(自行修改)
                        index index.html index.html;
                }
                location /ddh {
                        proxy_pass http://doris-1:8081; # 接口地址(自行修改)
                        proxy_set_header Host $host;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header x_real_ipP $remote_addr;
                        proxy_set_header remote_addr $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_http_version 1.1;
                        proxy_connect_timeout 4s;
                        proxy_read_timeout 30s;
                        proxy_send_timeout 12s;
                        proxy_set_header Upgrade $http_upgrade;
                        proxy_set_header Connection "upgrade";
                }
 
                #error_page 404 /404.html;
                # redirect server error pages to the static page /50x.html
                #
                error_page 500 502 503 504 /50x.html;
                location = /50x.html {
                        root /usr/share/nginx/html;
                }
        }

3.3.6 重启nginx

/usr/local/nginx/sbin  -s reload

3.4 修改配置

修改 conf 目录下的application.yml 配置文件中数据库链接配置:

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql:192.168.5.189:3306/datasophon?useUnicode=true&characterEncoding=utf-8
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver

在这里插入图片描述

3.4 启动服务

#启动
sh bin/datasophon-api.sh start api
#停止
sh bin/datasophon-api.sh stop api
#重启
sh bin/datasophon-api.sh restart api

部署成功后,可以进行日志查看,日志统一存放于logs文件夹内:

logs/

├── ddh-api.log

├── ddh-api-error.log

|—— api-{hostname}.out
在这里插入图片描述

3.5 访问页面

访问前端页面地址,接口ip(自行修改) [http://192.168.xx.xx:8081/ddh,默认用户名和密码为admin/admin123
在这里插入图片描述

4 创建集群

登录进入系统页面后在集群管理页面创建集群,DataSophon支持多集群管理和授予用户集群管理员权限
在这里插入图片描述
点击【创建集群】,输入集群名称,集群编码(集群唯一标识),集群框架。
在这里插入图片描述

创建成功后点击【配置集群】:
根据提示,输入主机列表(注意:主机名需与在准备环境中hostnamectl set-hostname 设置的主机名一致),ssh用户名默认为root和ssh端口默认为22。
在这里插入图片描述

配置完成后,点击【下一步】,系统开始链接主机并进行主机环境校验。
在这里插入图片描述

主机环境校验成功后点击【下一步】,主机agent分发步骤将自动分发datasophon-worker组件,并启动WorkerApplicationServer。
在这里插入图片描述

主机管理Agent分发完成后,点击【下一步】,开始部署服务。
初始化配置集群先选择部署AlertManager,Grafana和Prometheus三个组件。
在这里插入图片描述

点击【下一步】,分配AlertManager,Grafana和Prometheus服务的master服务角色部署节点,此三个组件需部署在同一台机器上。
在这里插入图片描述

点击【下一步】,分配AlertManager,Grafana和Prometheus服务的worker与client服务角色部署节点,没有worker和client服务角色的可以跳过之间点击【下一步】。

在这里插入图片描述

修改各服务配置。系统已给出默认配置,大部分情况下无需修改。
在这里插入图片描述

点击【下一步】开始服务安装,可实时查看服务安装进度。
在这里插入图片描述

点击【完成】,在集群管理页面点击【进入】,即可进入集群服务组件管理页面。

在这里插入图片描述

5 添加服务

5.1 安装ZK

选择添加服务,选择zk
在这里插入图片描述
分配ZooKeeper master服务角色部署节点,zk需部3台或5台。
在这里插入图片描述
Zk没有worker与client服务角色,直接点击【下一步】跳过。

根据实际情况修改Zk服务配置。
在这里插入图片描述

点击【下一步】,进行zk服务安装
在这里插入图片描述
安装成功后即可查看Zookeeper服务总览页面。
在这里插入图片描述

5.2 安装HDFS

部署HDFS,其中JournalNode需部署三台,NameNode部署两台,ZKFC和NameNode部署在相同机器上。如下图
在这里插入图片描述
点击【下一步】,选择DataNode部署节点。
在这里插入图片描述
根据实际情况修改配置,例如修改DataNode数据存储目录。
在这里插入图片描述
点击【下一步】,开始安装Hdfs。
在这里插入图片描述
安装成功后,即可查看HDFS服务总览页面。
在这里插入图片描述

5.3 添加Yarn服务

部署YARN,其中ResourceManager需部署两台作高可用。如下图:
在这里插入图片描述
点击【下一步】,选择NodeManager部署节点。
在这里插入图片描述

根据实际情况修改配置。
在这里插入图片描述
等待安装完成
在这里插入图片描述
安装成功后,即可查看YARN服务总览页面
在这里插入图片描述

5.4 添加hive服务

5.4.1 准备工作

1)在数据库中创建Hive数据库。

CREATE DATABASE IF NOT EXISTS hive DEFAULT CHARACTER SET utf8;
grant all privileges on *.* to hive@"%" identified by 'hive' with grant option;
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
FLUSH PRIVILEGES;

在这里插入图片描述

5.4.2 安装hive

选择需要安装hiveserver2和metastore角色的节点
在这里插入图片描述
选择需要安装hiveclient角色的节点
在这里插入图片描述
根据实际情况修改配置
在这里插入图片描述
等待安装完成,安装成功后即可查看YARN服务总览页面
在这里插入图片描述

5.5 安装dolphinscheduler服务

5.5.1 准备工作

1)初始化DolphinScheduler数据库。

CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'localhost' IDENTIFIED BY 'dolphinscheduler';
flush privileges;

在这里插入图片描述
2)执行/opt/datasophon/DDP/packages目录下dolphinscheduler_mysql.sql创建dolphinscheduler数据库表

5.5.2 安装dolphinscheduler

添加dolphinscheduler服务
在这里插入图片描述
分配api-server/alert-server/master-server/worker-server角色
在这里插入图片描述
根据实际情况,修改DolphinScheduler配置。
在这里插入图片描述
开始安装DolphinScheduler,安装成功后可以看到DolphinScheduler总览页面
在这里插入图片描述
可以通过WebUi打开DolphinScheduler页面.
在这里插入图片描述
在这里插入图片描述

5.6 添加trino

点击【添加服务】,选择Trino。
在这里插入图片描述
选择TrinoCoordinator。
在这里插入图片描述
选择TrinoWorker。注意:TrinoCoordinator和TrinoWorker不要部署在同一台机器上。
在这里插入图片描述
注意"Trino最大堆内存","每个查询在单个节点可使用最大内存"这两个配置,其中"每个查询在单个节点可使用最大内存"不可超过"Trino最大堆内存"的80%,“总共可使用最大内存"为"每个查询在单个节点可使用最大内存”* TrinoWorker数.
在这里插入图片描述
点击【下一步】,开始安装Trino。等待安装完成,可以看到Trino总览页面
在这里插入图片描述
选择trino的webui,可以访问trino的连接
在这里插入图片描述
在这里插入图片描述

5.7 添加doris服务

点击【添加服务】,选择Doris。
在这里插入图片描述
分配FE服务角色部署节点。
在这里插入图片描述
分配BE服务角色部署节点。
在这里插入图片描述
根据需要修改Doris配置,其中FE优先网段和BE优先网段需要配置,如配置成172.31.86.0/24
在这里插入图片描述
点击【下一步】,开始安装Doris。
在这里插入图片描述

5.8 安装kafka

在这里插入图片描述
选择安装kafka服务broker角色的节点
在这里插入图片描述
根据实际情况调整Kafka参数。
在这里插入图片描述
Kafka安装成功后,即可在Kakfa服务总览页查看Kafka详情。
在这里插入图片描述

5.9 安装ranger

创建ranger数据库

CREATE DATABASE IF NOT EXISTS ranger DEFAULT CHARACTER SET utf8;
grant all privileges on *.* to ranger@"%" identified by 'ranger' with grant option;
GRANT ALL PRIVILEGES ON *.* TO 'ranger'@'%';
FLUSH PRIVILEGES;

在这里插入图片描述
点击【添加服务】,选择Ranger。
选择RangerAdmin部署节点。
在这里插入图片描述
输入数据库root用户密码,数据库地址,Ranger数据用户密码等配置信息。
在这里插入图片描述

安装成功后,即可在Kakfa服务总览页查看Ranger详情。
在这里插入图片描述

5.10 安装StreamPark

初始化StreamPark数据库。

CREATE DATABASE streampark DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON streampark.* TO 'streampark'@'%' IDENTIFIED BY 'streampark';
GRANT ALL PRIVILEGES ON streampark.* TO 'streampark'@'localhost' IDENTIFIED BY 'streampark';
flush privileges;

在这里插入图片描述
执行/opt/datasophon/DDP/packages目录下streampark.sql创建streampark数据库表。

use streampark;
source /opt/datasophon/DDP/packages/streampark.sql

分配streampark角色
在这里插入图片描述
根据实际情况修改配置。
在这里插入图片描述
安装成功后可查看StreamPark总览页面,可通过WebUi跳转到StreamPark用户页面。

还有其他组件,如spark/flink/hbase/elasticsearch等,这里就不再一一例举安装了,感兴趣的小伙伴可以自己上手试一试。

6 多集群部署

DataSophon支持部署和管理集群,在管理页面点击创建新的集群,输入集群id等信息
在这里插入图片描述

部署其他集群的节点同样需要上述2.1-2.5的环境准备。

6.1 扫描节点和分发安装包

输入需要安装集群的节点ip
在这里插入图片描述
在这里插入图片描述

分发worker安装包
在这里插入图片描述

6.2 选择需要安装的服务

在这里插入图片描述

6.3 分配角色

在这里插入图片描述
在这里插入图片描述

6.4 确认服务配置参数

在这里插入图片描述

6.5 安装服务

在这里插入图片描述

6.6 进入集群2

安装成功之后,进入集群2查看总览页面
在这里插入图片描述

在这里插入图片描述

6.7 集群2中添加服务

在集群2中添加zk/kafka/doris服务
zk页面总览
在这里插入图片描述
kafka页面总览
在这里插入图片描述
doris页面总览
在这里插入图片描述

6.8 集群间切换

可以选择不同的集群id,查看对应不同集群的节点信息、组件安装信息、告警信息等
在这里插入图片描述
不同集群安装的服务和节点均可不一致:

集群1主机管理
在这里插入图片描述
集群2主机管理
在这里插入图片描述

Logo

大数据从业者之家,一起探索大数据的无限可能!

更多推荐