01-运行环境.md 6.5 KB

集群与平台架构

本文档只记录 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 作业正常跑通依赖两个环境变量指到集群配置目录。默认值定义在 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 真实库表

后续若出现其他运行期外配(连接串、容量参数、密钥路径等),统一在此节登记约定来源与默认行为。

5. 集群层外部 jar

由运维分发到所有节点,不入 git。

jar 用途 落点 版本
elasticsearch-hadoop-7.17.25.jar Spark 读 ES /opt/cloudera/parcels/CDH/lib/spark/jars/ 7.17.25