本文档只记录
poyee-data-warehouse开发需要了解的集群总体架构与技术栈,用于回答"我的 SQL 跑在什么上面、从哪里取数、用哪个账号"这类问题。 不记录运维细节(内核调优、组件配置优化、部署步骤、踩坑复盘等)。这些内容由平台/运维团队在公共知识库大数据空间中维护。
自底向上分为数据采集层、数据计算层、数据应用层,LDAP + Ranger 贯穿全栈做用户鉴权与审计日志。
┌──────────────────────────────────────────────────────────┐
│ 数据应用层 │
│ 指标体系 │ 用户画像 │ 业务模型层 │ BI 可视化 │ 业务数据 │
└──────────────────────────────────────────────────────────┘
▲
┌──────────────────────────────────────────────────────────┐
│ 数据计算层 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 任务调度层:离线 DolphinScheduler │ 实时 StreamPark │ │
│ ├──────────────────────────────────────────────────────┤ │
│ │ 数据分析层:Impala 即席查询 │ Flink 实时计算 │ │
│ │ MapReduce 离线 │ Spark 离线 │ │
│ ├──────────────────────────────────────────────────────┤ │
│ │ 资源管理层:YARN / ZooKeeper │ │
│ └──────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────┘
▲
┌──────────────────────────────────────────────────────────┐
│ 数据采集层 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 数据存储层:HBase KV │ ClickHouse 列存 │ HDFS │ Kafka │ │
│ ├──────────────────────────────────────────────────────┤ │
│ │ 数据传输层:DataX 数据同步 │ Flume 日志收集 │ │
│ ├──────────────────────────────────────────────────────┤ │
│ │ 数据源层:PG 业务库 │ ES 埋点库 │ 爬虫库 │ 其他数据 │ │
│ └──────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────┘
侧面:LDAP + Ranger(用户鉴权、审计日志)贯穿全栈
DolphinScheduler / Impala / MapReduce / Spark / YARN / HDFS / Kafka / DataX / Flume / PG / ES 为一二期任务的必要组件,其余为规划/扩展项。
| 类别 | 组件 | 版本 |
|---|---|---|
| 大数据基座 | Cloudera CDH | 6.3.2 |
| 分布式文件系统 | HDFS | 3.0.0 |
| 资源调度 | YARN | 3.0.0 |
| 数据仓库 | Hive | 2.1.1 |
| 计算引擎 | Spark | 2.4.0 |
| 即席查询 | Impala | 3.2.0 |
| 协调服务 | ZooKeeper | 3.4.5 |
| 即席入口 | Hue | 4.2.0 |
| 权限管理 | Apache Ranger | 2.1.0(源码二开集成) |
| 任务调度 | DolphinScheduler | 3.4.1 |
| 数据集成 | DataX | 阿里开源版v202309 |
与开发强相关的约束:
| 节点 | 角色 | 开发需知 |
|---|---|---|
m1 ~ m3 |
Master(控制/网关/元数据) | HiveServer2 / ResourceManager / DolphinScheduler Master 都在这三台 |
n1 ~ n4 |
Worker(存算一体) | DataNode + NodeManager + Impala Daemon;任务实际执行节点 |
详细角色分配、硬件配置由大数据负责人及运维人员维护。开发只需要知道任务最终跑在 n1-n4 上,Driver 前期集中在 m2。
Spark 作业正常跑通依赖两个环境变量指到集群配置目录。默认值定义在 conf/env.sh,由 dw_base/__init__.py 通过 bootstrap_env 注入(shell 侧若已 export 则以外部值为准):
| 环境变量 | 默认值 | 作用 |
|---|---|---|
HADOOP_CONF_DIR |
/etc/hadoop/conf |
spark-submit 启动 YARN 校验;NameNode HA / RM HA 解析 |
SPARK_CONF_DIR |
/etc/spark/conf |
加载 spark-env.sh + hive-site.xml,否则 enableHiveSupport 静默回落 in-memory metastore,看不到 HMS 真实库表 |
后续若出现其他运行期外配(连接串、容量参数、密钥路径等),统一在此节登记约定来源与默认行为。
由运维分发到所有节点,不入 git。
| jar | 用途 | 落点 | 版本 |
|---|---|---|---|
elasticsearch-hadoop-7.17.25.jar |
Spark 读 ES | /opt/cloudera/parcels/CDH/lib/spark/jars/ |
7.17.25 |