
1) 【一句话结论】采用“数据采集-存储-计算-应用”四层分布式架构,以Hadoop生态(HDFS、Spark)和流处理(Flink)为核心,结合云平台弹性资源,通过冗余部署与自动化运维实现高可用与弹性伸缩。
2) 【原理/概念讲解】
老师先解释大数据平台全流程:数据采集(从多源获取数据)、存储(持久化存储)、处理(计算分析)、应用(数据服务)。用“管道-水库-工厂-商店”类比:数据采集层是“数据管道”,负责把分散的“水(数据)”导入系统;存储层是“数据水库”,存储大量数据;计算层是“数据处理工厂”,加工数据;应用层是“数据商店”,提供数据服务。分层设计让各层职责明确,便于扩展和维护。
3) 【对比与适用场景】
| 技术选型 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 存储层<br>HDFS | Hadoop分布式文件系统 | 高容错、高吞吐、适合批处理 | 传统大数据批处理、离线分析 | 需自建集群,运维复杂 |
| 云存储(如阿里云OSS) | 云服务商对象存储 | 弹性扩展、高可用、多地域 | 混合部署、实时数据存储 | 适合云原生,成本随用量增长 |
| 计算层<br>Spark | 分布式计算框架 | 通用性强、内存计算、支持批/流/交互式 | 批处理、机器学习、交互式分析 | 需内存资源,故障恢复需重算 |
| Flink | 流处理框架 | 低延迟、状态管理、Exactly-Once | 实时流处理、事件驱动 | 需稳定网络,状态存储成本高 |
4) 【示例】
假设湖北大数据集团需采集电商交易数据(实时+离线),设计如下:
伪代码(数据采集部分):
# Kafka生产者(采集电商交易数据)
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers='kafka:9092')
for record in transaction_logs:
producer.send('ecommerce-topic', value=record.encode('utf-8'))
producer.close()
5) 【面试口播版答案】
各位面试官好,针对湖北大数据集团的企业级大数据平台设计,我会从分层架构、核心组件和技术选型、弹性伸缩与容灾三方面展开。首先,平台采用“数据采集-存储-计算-应用”四层架构,各层职责明确:数据采集层负责多源数据接入(如Kafka、Flume),存储层采用HDFS+云存储混合方案,计算层以Spark(批处理)和Flink(流处理)为核心,应用层提供数据服务(如API、报表)。技术选型上,采集用Kafka保证实时性,存储用HDFS保证高吞吐,计算用Spark/Flink满足批流一体需求,云平台(如阿里云EMR)提供弹性资源。弹性伸缩方面,通过云平台的自动伸缩组(Auto Scaling)实现计算资源按需扩展,存储层采用对象存储的弹性扩容,容灾能力通过多地域部署(如HDFS多副本、云存储跨区域复制)和主备集群(如计算层主备节点)保障,确保故障时业务不中断。这样设计既能满足当前业务需求,又能支持未来业务增长。
6) 【追问清单】
7) 【常见坑/雷区】