# 集群与平台架构 > 本文档只记录 `poyee-data-warehouse` 开发需要了解的**集群总体架构与技术栈**,用于回答"我的 SQL 跑在什么上面、从哪里取数、用哪个账号"这类问题。 > **不记录运维细节**(内核调优、组件配置优化、部署步骤、踩坑复盘等)。这些内容由平台/运维团队在公共知识库 `大数据空间` 中维护。 ## 1. 大数据平台全景架构 自底向上分为数据采集层、数据计算层、数据应用层,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 为一二期任务的必要组件,其余为规划/扩展项。 ## 2. 技术栈与版本 | 类别 | 组件 | 版本 | |---------|------|---------------| | 大数据基座 | 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 | **与开发强相关的约束:** - Hive 默认计算引擎为 **Spark**(非 MR) - Hive on Spark,建表统一 **ORC** 格式 - Impala 在 CDH 6.3.2 下无法做 Ranger 细粒度授权,只通过hdfs权限做兜底 - API版本约束:Spark 2.4 / Python 3.6 / PySpark 2.4 ## 3. 节点拓扑(开发视角) | 节点 | 角色 | 开发需知 | |------|------|---------| | `m1` ~ `m3` | Master(控制/网关/元数据) | HiveServer2 / ResourceManager / DolphinScheduler Master 都在这三台 | | `n1` ~ `n4` | Worker(存算一体) | DataNode + NodeManager + Impala Daemon;任务实际执行节点 | > 详细角色分配、硬件配置由大数据负责人及运维人员维护。开发只需要知道任务最终跑在 n1-n4 上,Driver 前期集中在 m2。 ## 4. Spark 运行时环境变量 Spark 作业正常跑通依赖两个环境变量指到集群配置目录,`dw_base/__init__.py` 在导入时设默认值,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 真实库表 | 后续若出现其他运行期外配(连接串、容量参数、密钥路径等),统一在此节登记约定来源与默认行为。