
1) 【一句话结论】采用“数据湖+实时计算”架构,以分布式存储(HDFS/云对象存储)为基础,结合Kafka消息队列、Flink实时计算、Spark批处理,实现PB级存储与低延迟实时处理,数据流转遵循“采集-存储-计算-分析-可视化”流程。
2) 【原理/概念讲解】数据湖(Data Lake)是存储原始数据的集中式存储库,类似“水库”,容纳结构化、半结构化、非结构化数据,支持弹性扩展;数据管道(Data Pipeline)负责数据从源头到存储的传输,确保数据高效流转;实时计算(Real-time Computing)指对数据流进行即时处理,类似“实时水管”,满足低延迟分析需求。例如,数据湖存储PB级日志数据,实时计算组件(如Flink)像实时水管,快速处理数据流,实时生成指标。
3) 【对比与适用场景】
存储组件对比:
| 组件 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| HDFS | 分布式文件系统 | 高吞吐、适合大文件,容错 | 离线存储、批处理 | 磁盘I/O瓶颈,不适合小文件 |
| 云对象存储(如S3) | 弹性存储 | 弹性扩展、高可用、多区域 | 冷数据存储、弹性存储 | 读取延迟较高,适合冷数据 |
| Kafka | 分布式消息队列 | 高吞吐、低延迟、持久化 | 实时数据传输、解耦 | 需管理消息保留策略 |
计算组件对比:
| 组件 | 类型 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| Spark | 批处理 | 速度快(内存计算)、支持SQL、机器学习 | 离线分析、机器学习 | 内存消耗大,容错需检查点 |
| Flink | 实时处理 | 低延迟、状态管理、Exactly-Once | 实时流处理、事件处理 | 需状态后端(如Redis) |
4) 【示例】(数据流转伪代码):
Flume从日志服务器采集数据,写入Kafka主题(log_topic)。Kafka Connect将数据同步到HDFS(或云S3)。Flink消费Kafka流,处理实时数据(如计算实时访问量),结果写入Hive表。Spark读取HDFS数据,进行离线分析(如用户行为分析),结果存入Hive表。5) 【面试口播版答案】(约90秒):
“面试官您好,针对PB级数据存储与实时处理的大数据平台,我设计的是基于数据湖的分布式架构。核心组件包括:数据采集用Flume/Kafka,存储用HDFS/云对象存储(如S3),实时计算用Flink,批处理用Spark,可视化用Tableau。数据流转流程是:数据源(如日志、传感器)通过Flume采集,写入Kafka,然后Kafka将数据同步到HDFS(或S3),实时计算组件Flink消费Kafka流,处理实时数据(如实时统计),结果写入Hive表;同时,Spark消费HDFS数据,进行离线分析(如用户画像),结果也存入Hive。最后,可视化工具连接Hive表,展示实时指标和离线分析结果。这种架构支持PB级存储,因为HDFS和云存储弹性扩展,实时计算Flink保证低延迟处理,满足实时需求。”
6) 【追问清单】
7) 【常见坑/雷区】