ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Alldata 数据中台部署实战:从单机到三节点集群,10 分钟跑通全链路

Alldata 数据中台部署实战:从单机到三节点集群,10 分钟跑通全链路

Alldata 数据中台部署实战:从单机到三节点集群,10 分钟跑通全链路

【免费下载链接】alldata🔥🔥 AllData可定义数据中台,以数据平台为底座,以数据中台为桥梁,以机器学习平台为工厂,以大模型应用为上游产品,提供全链路数字化解决方案。产品正式演示体验、社群咨询、商务采购:https://docs.qq.com/doc/DVHlkSEtvVXVCdEFo项目地址: https://gitcode.com/GitHub_Trending/al/alldata

Alldata 是一款可定义的数据中台,覆盖数据集成、元数据管理、数据标准、数据质量、数据资产、BI 报表等能力。这篇文章带你按"初始化数据库 → 启动核心服务 → 跑通前端 → 打包上生产"的路径,把它部署起来,并顺手解决编码、私服依赖、菜单权限这三个高频坑。

部署前先看清单:6 个依赖的最低版本

Alldata 是典型的微服务架构,后端 moat/ 目录承载全部服务,前端 moat_ui/ 是 Vue 工程。动手之前,先把下面这张表对着你的环境核对一遍:

依赖最低版本用途
JDK1.8运行所有后端服务,打包时务必切到 1.8
MySQL5.7.0存储元数据、业务配置,推荐 5.7 及以上
Redis3.0缓存
Maven3.0后端构建
Node.js10.15.3前端开发/构建,建议用 nvm 管理版本
RabbitMQ3.0.x消息队列

⚠️MySQL 8 用户注意:脚本是按 5.7 编码习惯写的,用 8.0 导入时很可能遇到乱码或建库失败,优先确认字符集为utf8mb4,或直接使用 5.7。

如果依赖还没装,开发环境建议直接上 Docker 起 MySQL、Redis、RabbitMQ 三个容器,省去版本折腾。

数据库怎么初始化:按顺序导入 5 个脚本

目的:给平台建好全部基础表结构和菜单数据。

先建一个名为studio的数据库,然后到 install/sql/ 目录按文件名顺序执行:

source alldata-install.sql; # 基础表结构 source alldata-v0.6.1.sql; # 版本迭代脚本,依次导入到 v0.6.4 source alldata-v0.6.2.sql; source alldata-v0.6.3.sql; source alldata-v0.6.4.sql;

预期结果:studio库中出现若干张系统、菜单、数据源相关的表。如果你要启用 BI 报表能力,还需按 quickstart/quickstart_bi.md 再导入 BI 相关 SQL,并在"元数据管理"和"BI报表"里分别配置数据源。

单机的第一组服务:谁必须启动,怎么验证

改完数据库后,还差一份配置:编辑 moat/config/src/main/resources/config/ 下的application-common-dev.yml,把 MySQL、Redis、RabbitMQ 的连接信息改成你自己的。

接下来把代码导入 IDEA(首次加载 Maven 依赖较慢,属正常现象),依次启动这 4 个入口类:

  1. DataxEurekaApplication(注册中心)
  2. DataxConfigApplication(配置中心)
  3. DataxGatewayApplication(API 网关)
  4. SystemServiceApplication(系统服务)

说明两点:

  • 本地开发时,config、gateway等各模块的bootstrap.yml中 eureka 地址要改成localhost,否则会找不到注册中心。
  • 其中SystemServiceApplication是关键——不启动它,前端页面根本无法登录。

预期结果:浏览器访问http://localhost:8610/,看到 Eureka 控制台且实例列表里出现已注册的服务,说明基础链路已通。

各业务模块按需追加即可,常见入口对照:

模块入口类
数据集成DataDtsServiceApplication(data-dts)
元数据管理DataxMetadataApplication(data-metadata-service)
数据标准 / 质量DataxStandardApplication/DataxQualityApplication
数据资产 / 市场DataxMasterdataApplication/DataxMarketApplication
BI 报表 / 可视化DataxVisualApplication(data-visual-service)
定时任务 / 邮件 / 文件DataxQuartzApplication/DataxMailApplication/DataxFileApplication

前端怎么跑起来,怎么算启动成功

目的:拿到可登录的界面。

cd moat_ui nvm use v16.20.2 # 按本地版本切换,Node 版本过低会报 babel 相关错误 npm install # 安装依赖 npm run dev # 启动开发服务器

预期结果:浏览器自动弹出登录页,访问http://localhost:8013,用admin/123456登录。能看到系统管理菜单即代表前后端全链路打通。✅

为什么打包会失败:一个没上架的私服依赖

⚠️这是最常见的构建失败点:common模块依赖aspose-words,公共 Maven 仓库里没有,必须手动安装到本地仓库,否则mvn package直接报依赖找不到。

先切到 JDK 1.8 环境,然后执行:

cd moat/common mvn install:install-file -Dfile=aspose-words-20.3.jar \ -DgroupId=com.aspose -DartifactId=aspose-words \ -Dversion=20.3 -Dpackaging=jar

安装成功后刷新依赖,接着在项目根目录执行mvn clean install -DskipTests && mvn clean package -DskipTests,产物是build/alldata-release-0.6.x.tar.gz,上传到服务器解压即可进入部署阶段。

单机还是集群:按规模做选择

All in One(单节点):适合测试验证。按 eureka → config → gateway → 其余业务 Jar 的顺序逐个拉起即可。

三节点集群(16gmaster / 16gslave / 16gdata):适合生产。官方在 install/ 下按节点分好了启动脚本,服务分布如下:

节点服务端口
16gmastersystem-service、data-market-service、service-data-integration、data-metadata-service、data-system-service、service-data-dts、config8000 / 8822 / 8824 / 8820 / 8810 / 9536 / 8611
16gslaveeureka、data-metadata-service-console、service-data-mapping、data-masterdata-service、data-quality-service8610 / 8821 / 8823 / 8828 / 8826
16gdatadata-standard-service、data-visual-service、email-service、file-service、quartz-service、gateway8825 / 8827 / 8812 / 8811 / 8813 / 9538

启动节奏是"先骨架、再血肉":

  1. 在 16gslave 单独启动 eureka(注册中心必须最先就位);
  2. 在 16gmaster 单独启动 config;
  3. 在 16gdata 单独启动 gateway;
  4. 三个节点分别执行sh start16gslave.sh、sh start16gdata.sh、sh start16gmaster.sh拉起各自业务服务。

预期结果:eureka 控制台能看到全部节点的服务注册;用任一节点的 gateway 端口访问前端即可。

页面打开但菜单不见了,怎么排查

⚠️菜单缺失 ≠ 服务没装:数据集成等模块的菜单依赖数据库脚本导入 + 角色授权两步,缺一步菜单就不会显示。

处理流程以"数据集成"为例,其他模块同理:

  1. 进入 系统管理 → 菜单管理,新增【数据集成】目录及其子菜单;
  2. 进入 角色管理,为 admin 账号勾选该目录及菜单的数据权限;
  3. 刷新页面或重新登录,菜单即出现。

📌 其他高频问题速查:

  • 前端npm run dev报 babel/webpack 模块找不到:Node 版本不对,用 nvm 切到 10.15.3 或 16.x 重试。
  • 服务启动后 Eureka 看不到实例:检查bootstrap.yml里 eureka 地址是否指向了正确节点(本地是 localhost)。
  • 元数据导出文档报错:大概率还是aspose-words没装进本地仓库,回上一节补装。

小结

整套部署的骨架可以记成一句话:数据库按序导脚本,application-common-dev.yml改三处连接,四个核心入口类(Eureka、Config、Gateway、System)拉起来,前端 8013 登录验证;上生产则先装 aspose-words、打包出 tar 包,再按 eureka → config → gateway 的顺序铺三节点。模块可以按需增删,按需只启动你需要的服务,就是最轻量的数据中台形态。

【免费下载链接】alldata🔥🔥 AllData可定义数据中台,以数据平台为底座,以数据中台为桥梁,以机器学习平台为工厂,以大模型应用为上游产品,提供全链路数字化解决方案。产品正式演示体验、社群咨询、商务采购:https://docs.qq.com/doc/DVHlkSEtvVXVCdEFo项目地址: https://gitcode.com/GitHub_Trending/al/alldata

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进