51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

在为某大型制造企业提供大数据平台建设服务时,你如何设计一个支持PB级数据存储、满足实时分析需求且具备高可扩展性的大数据平台架构?请从存储层、计算层、服务层三个维度阐述技术选型及核心组件设计。

湖北大数据集团解决方案岗难度:中等

答案

1) 【一句话结论】:采用分层架构,存储层用HDFS(高可用NameNode HA)+ Ceph(多MDS节点),计算层用Flink(实时流,检查点保证exactly-once)+ Spark(批处理,资源隔离),服务层用Kafka(数据管道)+ ZooKeeper(协调)+ Nginx(API负载均衡),确保PB级存储、实时分析和高可扩展性。

2) 【原理/概念讲解】:存储层:HDFS是分布式文件系统,通过数据分片实现高容错,NameNode HA(双NameNode+ZooKeeper) 确保高可用,避免单点故障;Ceph是对象存储,元数据与数据分离,多MDS节点实现元数据高可用,适合冷数据归档。计算层:Flink是流处理框架,支持低延迟(亚秒级)、exactly-once语义,通过快照检查点保证状态一致性;Spark是通用计算框架,支持批处理、交互式分析,通过资源隔离(优先级队列) 确保实时任务优先。服务层:Kafka作为消息队列,解耦数据源和消费端,ZooKeeper管理集群状态,Nginx做负载均衡和健康检查,确保API高可用。

3) 【对比与适用场景】:
存储层对比:

技术选型定义特性使用场景注意点
HDFSHadoop分布式文件系统高容错、高吞吐,顺序读写优化热数据存储(实时处理数据、备份)随机读取延迟较高,不适合实时查询
Ceph分布式对象存储自治、可扩展,元数据与数据分离冷数据归档(历史数据、归档日志)初始配置复杂,元数据服务器压力

计算层对比:

技术选型定义特性使用场景注意点
Flink流处理框架低延迟(亚秒级)、exactly-once、状态管理实时流处理(实时监控、风控)部署复杂,需要资源管理器
Spark通用计算框架交互式、批处理、机器学习批处理、交互式分析、机器学习适用于有状态计算,延迟比Flink高

4) 【示例】:数据流示例:

  • 数据源(传感器、日志系统)将数据写入Kafka(生产者)。
  • HDFS通过Kafka连接器消费Kafka数据,写入HDFS(热数据,如实时处理的数据)。
  • Ceph通过HDFS的冷数据迁移工具,将30天未访问的日志数据迁移到Ceph(冷数据,降低存储成本)。
  • Flink消费Kafka数据,执行实时计算(如实时统计、异常检测),结果写入HBase(分布式数据库,读写分离,分片为多个RegionServer,支持实时查询)。
  • Spark消费HDFS数据,执行批处理(如报表生成、数据挖掘),结果写入ClickHouse(列式数据库,查询效率高)。
  • 服务层:Nginx负载均衡API服务,调用HBase的查询接口获取实时数据,Grafana监控集群状态(如HDFS存储使用率、Flink作业状态)。

5) 【面试口播版答案】:面试官您好,针对PB级存储和实时分析需求,我设计的架构分为存储、计算、服务三层。存储层采用HDFS(高可用NameNode HA)+ Ceph(多MDS节点),HDFS存储热数据(如实时处理的数据),Ceph归档冷数据(如30天以上的日志),通过冷热分离降低存储成本。计算层用Flink处理实时流(如实时监控),Spark处理批处理(如报表生成),两者通过YARN/K8s统一调度,Flink任务优先级高。服务层以Kafka做数据管道,ZooKeeper做协调,API服务部署多实例,通过Nginx负载均衡,确保高可用。数据流程是:数据源写入Kafka,HDFS消费写入HDFS,Flink实时计算写入HBase(读写分离,分片),Spark离线分析写入ClickHouse,最终通过API对外提供实时查询。

6) 【追问清单】:

  • 问:冷热数据分离的具体触发条件?
    回答:根据数据访问频率,设置阈值(如30天未访问),超过阈值的冷数据迁移到Ceph,减少HDFS存储压力。
  • 问:Flink和Spark的调度策略如何保证实时任务优先?
    回答:通过YARN/K8s的资源调度,为Flink实时任务设置高优先级队列,Spark批处理任务按需调度,避免资源冲突。
  • 问:服务层如何保证API的高可用?
    回答:API服务部署多实例,通过Nginx做负载均衡,并配置健康检查,故障实例自动切换,确保服务不中断。
  • 问:Flink的检查点机制如何保证exactly-once语义?
    回答:使用快照检查点,定期保存状态快照,故障恢复时从最近检查点恢复,确保数据不丢失或重复计算。
  • 问:存储层的元数据管理如何避免单点故障?
    回答:HDFS的NameNode HA采用双NameNode+ZooKeeper,Ceph的MDS多节点部署,确保元数据服务高可用。

7) 【常见坑/雷区】:

  • 忽略HDFS的NameNode HA,导致PB级存储高可用性不足。
  • Ceph的MDS仅单节点部署,引发元数据服务单点故障。
  • 计算层资源调度无优先级,实时任务延迟,影响实时分析需求。
  • 服务层API未做负载均衡,单点故障导致服务不可用。
  • 冷热分离无明确触发条件,导致存储成本过高。
  • 分布式数据库(如HBase)未做读写分离或分片,影响实时查询性能。
  • Flink检查点机制不明确,导致实时计算出现数据丢失或重复计算。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1