【DataSophon】大数据管理平台安装部署及常见错误

一、DataSophon是什么

1.1 DataSophon概述


《三体》,这部获世界科幻文学最高奖项雨果奖的作品以惊艳的"硬科幻"风被大家所熟知,其作者刘慈欣更是被誉为"单枪匹马将中国科幻提高到世界级水平"。

作为三体中非常重要的角色,智子(Sophon)是将九维的质子进行二维展开,通过电路蚀刻改造成超级计算机后,再转回到微观的十一维来监控人类的一举一动,并利用量子纠缠实现瞬时通信报告给4光年之外的三体文明。说白了智子是三体文明部署在地球的AI实时远程监控和管理平台。

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

DataSophon 是一款面向大数据运维人员的开源集群管理平台,它能够替代传统手动部署大数据组件的方式,通过 Web 可视化界面统一管控多台服务器。运维人员只需完成节点代理程序部署,即可在平台上批量完成 Hadoop、Spark、Flink 等大数据组件的一键安装、配置下发、服务启停、运行状态监控与故障告警等工作,极大简化了分布式集群的搭建、扩容及日常运维流程,降低了大数据环境部署的操作门槛,可高效保障多节点大数据集群稳定运行。

主要特性有:

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


1.2 架构设计

1.3 集成组件

各集成组件均进行过兼容性测试,并稳定运行于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.1 关闭防火墙

各主机防火墙需关闭。

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

2.2 配置主机host

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

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

配置/etc/hosts文件

主机名配置建议采用如下方式

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.11.132 ddp1
192.168.11.133 ddp2
192.168.11.131 ddp3

2.3 免密登录配置

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

生成ssh 秘钥: ssh-keygen -m PEM -t rsa ,一路回车。

执行 ssh-copy-id 目标主机。

2.4 环境要求

Jdk环境需安装。

建议mysql版本为5.7.X,并关闭ssl。

修改/etc/security/limits.conf配置文件

末尾样子如下:

  1. 保存退出 vim;
  2. 断开当前 ssh 连接,重新登录服务器(limits 只对新会话生效,不重登查看的值不变);
  3. 验证命令:
# 查看文件打开数
ulimit -n
# 查看最大进程/线程数
ulimit -u

其他两台虚拟机同样操作

编辑 mysql 配置文件/etc/my.cnf,在[mysqld]段添加:

注释掉所有自带 ssl 证书行(如有):

我使用的版本是8.0,需要在[mysqld]里额外添加认证插件配置,防止 DataSophon 连接报密码认证失败:

default_authentication_plugin=mysql_native_password

三、安装部署

3.1 创建目录


在服务器/opt/datasophon目录下创建目录

mkdir -p /opt/datasophon/DDP/packages

将下载的部署包上传到/opt/datasophon/DDP/packages目录下,作为项目部署包仓库地址

解压缩:

cd  /opt/datasophon/DDP/packages/
tar -zxvf datasophon-manager-1.2.1.tar.gz

3.2 部署mysql


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

3.3 执行初始化脚本

执行如下数据库脚本:

先登录MySQL:

mysql -uroot -p123456
1. 先修改全局密码校验规则
SET GLOBAL validate_password.policy = LOW;
SET GLOBAL validate_password.length = 6;
SET GLOBAL validate_password.check_user_name = OFF;

创建简单密码用户(示例密码 123456)

CREATE USER 'datasophon'@'%' IDENTIFIED BY '123456';

授权库权限

GRANT ALL PRIVILEGES ON datasophon.* TO 'datasophon'@'%' WITH GRANT OPTION;

适配加密协议

ALTER USER 'datasophon'@'%' IDENTIFIED WITH mysql_native_password BY '1234';

关闭 SSL 强制

ALTER USER 'datasophon'@'%' REQUIRE NONE;

刷新权限

FLUSH PRIVILEGES;

登录测试

mysql -udatasophon -p123456 -h127.0.0.1

3.4 启动服务

1)先看 MySQL 驱动下载好没(lib 目录)

如果没有:

cd lib
curl -O https://maven.aliyun.com/repository/public/mysql/mysql-connector-java/8.0.33/mysql-connector-java-8.0.33.jar
ls

出现 mysql-connector-java-8.0.33.jar 代表下载成功。

可能会下载失败,下载失败按如下操作:

本地下载驱动包,上传至lib

版本稍微有点不一样,注意大小2.4M

2)切回根目录启动服务

cd ..
sh bin/datasophon-api.sh start api

3)查看实时运行日志

tail -f logs/datasophon-api.log

配套启停命令汇总

# 启动
sh bin/datasophon-api.sh start api
# 停止
sh bin/datasophon-api.sh stop api
# 重启
sh bin/datasophon-api.sh restart api
# 错误日志单独看
tail -f logs/datasophon-api-error.log

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

3.5 各种问题

1)登录不成功

DataSophon 后端采用MD5 加密比对密码,数据库内存储的密码密文与前端输入admin计算出的 MD5 不匹配,所以校验失败。

登录 MySQL 重置管理员账号

# 登录数据库
mysql -udatasophon -p123456 -hhadoop11
use datasophon;

# 删除旧admin用户,避免冲突
DELETE FROM t_ddh_user_info WHERE username='admin';

# 插入明文admin对应的标准MD5密文:21232f297a57a5a743894a0e4a801fc3
INSERT INTO t_ddh_user_info (id,username,password,email,phone,create_time,user_type)
VALUES (1,'admin','21232f297a57a5a743894a0e4a801fc3','admin@163.com','13800000000',NOW(),1);

exit;

再重启服务

# 停止服务
sh bin/datasophon-api.sh stop api
# 启动服务
sh bin/datasophon-api.sh start api
# 实时查看启动日志,等所有组件缓存加载完毕
tail -f logs/api-hadoop11.out

2)网络访问报错:外部浏览器打不开页面

停止 API 服务

sh bin/datasophon-api.sh stop api

MySQL 重置 admin 管理员账号(核心,修复用户不存在 / 密码不匹配)

# 登录数据库
mysql -udatasophon -p123456 -hhadoop11
use datasophon;
# 删除旧失效admin
DELETE FROM t_ddh_user_info WHERE username='admin';
# 清空过期会话缓存
TRUNCATE TABLE t_ddh_session;
# 插入明文admin对应的标准MD5密码账号
INSERT INTO t_ddh_user_info (id,username,password,email,phone,create_time,user_type)
VALUES (1,'admin','21232f297a57a5a743894a0e4a801fc3','admin@163.com','13800000000',NOW(),1);
exit;

确认配置文件无语法错误、数据库地址正确

# 覆盖纯净application-config.yml(无重复datasophon节点)
cat > conf/application-config.yml <<'EOF'
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://hadoop11:3306/datasophon?allowMultiQueries=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false
    username: datasophon
    password: 123456
  main:
    allow-circular-references: true

server:
  port: 8081
  address: 0.0.0.0

datasophon:
  migration:
    enable: true

mybatis-plus:
  global-config:
    db-config:
      id-type: auto
  configuration:
    map-underscore-to-camel-case: true
EOF

放行防火墙 8081 端口,保证 Windows 能连通

firewall-cmd --permanent --add-port=8081/tcp
firewall-cmd --reload
# 临时关闭防火墙快速验证
systemctl stop firewalld

重启 API 服务,等待组件全部加载完成

sh bin/datasophon-api.sh start api
# 实时查看日志,直到打印完所有组件缓存加载日志
tail -f logs/api-hadoop11.out

浏览器修正访问地址(关键:放弃域名 hadoop11,改用 IP)

  • 地址栏输入:http://192.168.91.11:8081/ddh
  • 快捷键 Ctrl + F5 强制清空浏览器缓存
  • 登录框手动输入:用户名admin、密码admin登录成功后 401 页面消失,进入系统。

我出现的错误:

  • YML 多次追加配置出现重复datasophon:节点,服务启动失败;
  • 数据库连接 URL 写localhost,报账号访问拒绝,服务无法读取用户表;
  • 错误使用表名t_ddh_user,实际用户表为t_ddh_user_info
  • 浏览器使用域名hadoop11访问,Cookie 域校验异常,直接拦截返回 401 页面。

3)端口被占用

  • 启动 DataSophon 后日志抛出 BindException: Address already in use: 3000
  • Grafana 组件启动失败,监控页面无法打开;
  • 集群部署 Grafana 实例时端口冲突,组件缓存加载告警;
  • 连带影响:监控图表空白、前端监控接口请求超时。

产生原因

  1. 上一次 Grafana 进程未正常关闭,后台残留进程持续占用 3000;
  2. 重复执行部署 / 重启集群脚本,多实例抢占 3000 端口;
  3. 服务器本地其他 Web 程序(如 Grafana、Node 项目)提前占用 3000;
  4. DataSophon 框架默认 Grafana 固定配置端口 3000,无自动避让机制。
#查询占用 3000 端口的进程 PID
#直接检索grafana相关进程
ps -ef | grep grafana | grep -v grep
#执行后会输出占用进程的 PID 编号。

# 批量杀掉所有grafana残留进程
ps -ef | grep grafana | grep -v grep | awk '{print $2}' | xargs kill -9

# 通用杀端口进程(替换<pid>为查询到的进程号)
kill -9 <pid>

# 验证 3000 端口是否释放
ss -tuln | grep 3000

# 无输出 = 端口释放完成;有输出则重复执行杀进程命令。

还有一种方法:换个端口号

4)其他错误

Spring 上下文容器已经提前关闭,所有 Bean 无法完成依赖注入

触发该错误的 3 个根本原因

  1. 数据库连接失败(之前遇到的Access denied for user 'datasophon'@localhost):Druid 持续拿不到数据库连接池,Spring 容器启动超时直接关闭上下文,MyBatis、Service 全部初始化中断;
  2. YAML 配置语法错误:重复顶层 key、缩进错乱、配置参数非法,导致 MyBatis-Plus 配置绑定失败,容器提前销毁;
  3. 端口 / 进程冲突:8081 服务端口被占用,服务无法正常绑定 Web 容器,Spring 上下文启动失败并关闭;
  4. 连锁反应:容器一旦关闭,所有 Mapper、Service、Actor 集群逻辑全部报这个嵌套异常。
# ========================== 1、清理残留进程,释放8081端口 ==========================
# 批量杀死所有DataSophon后台Java进程,避免端口占用导致容器启动失败
ps -ef | grep DataSophonApplicationServer | grep -v grep | awk '{print $2}' | xargs kill -9
# 验证8081端口是否释放,无输出代表释放成功
ss -tuln | grep 8081

# ========================== 2、修复MySQL数据库账号权限(报错核心诱因) ==========================
# 登录MySQL root用户执行授权SQL
mysql -uroot -p <<EOF
# 给本地localhost访问授权,密码123456
ALTER USER 'datasophon'@'localhost' IDENTIFIED BY '123456';
# 给hadoop11主机远程访问授权
ALTER USER 'datasophon'@'hadoop11' IDENTIFIED BY '123456';
# 刷新权限立即生效
FLUSH PRIVILEGES;
EOF

# 测试数据库连通性,验证账号密码正常
mysql -udatasophon -p123456 -hhadoop11 -e "use datasophon;show tables;"

# ========================== 3、覆盖纯净无语法错误的yml配置文件(解决MyBatis-Plus绑定异常) ==========================
# 重写application-config.yml,无重复顶层key、数据库地址正确、mybatis配置规范
cat > conf/application-config.yml <<'EOF'
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://hadoop11:3306/datasophon?allowMultiQueries=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false
    username: datasophon
    password: 123456
  main:
    allow-circular-references: true

server:
  port: 8081
  address: 0.0.0.0

datasophon:
  migration:
    enable: true

mybatis-plus:
  global-config:
    db-config:
      id-type: auto
  configuration:
    map-underscore-to-camel-case: true
EOF

# ========================== 4、防火墙放行8081端口 ==========================
# 永久开放8081端口外部访问
firewall-cmd --permanent --add-port=8081/tcp
firewall-cmd --reload
# 临时关闭防火墙快速验证连通性
systemctl stop firewalld

# ========================== 5、标准重启API服务,观察日志 ==========================
# 停止旧服务
sh bin/datasophon-api.sh stop api
# 启动API后台服务
sh bin/datasophon-api.sh start api
# 实时跟踪启动日志,查看是否还出现上下文关闭报错
tail -f logs/api-hadoop11.out

# ========================== 兜底方案:数据库重建(如果上面执行完仍报错) ==========================
# mysql -uroot -p <<EOF
# drop database if exists datasophon;
# create database datasophon default character set utf8mb4;
# EOF
# sh bin/datasophon-api.sh stop api
# sh bin/datasophon-api.sh start api

3.6 登录

启动服务

sh bin/datasophon-api.sh start api

网址:http://192.168.91.11:8081/ddh

账号密码:admin

四、创建集群

1.登陆页面后,点击集群管理,创建集群

2.创建成功后点击【配置集群】:
根据提示,输入主机列表(注意:主机名需与在准备环境中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服务角色的可以跳过之间点击【下一步】。

修改各服务配置。系统已给出默认配置,大部分情况下无需修改。

点击【下一步】开始服务安装,可实时查看服务安装进度。

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

五、添加服务

1)添加Flink

点击【添加服务】,选择Flink。

根据实际情况修改Flink服务配置。

安装成功后即可查看Flink服务总览页面。

添加flink任务后,可以看到全集群大盘,全局一键定位 Flink 数据倾斜、集群资源瓶颈

内置成熟监控告警体系,自动采集所有组件 Metrics:

  • 一张大盘看 集群整体内存水位、所有 Flink 任务子任务负载,快速定位数据倾斜
  • 自定义钉钉 / 邮件告警:磁盘使用率、YARN 资源超限、服务宕机提前通知,不用熬夜盯集群
  • 不用从零搭建监控系统,节省大量运维开发时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值