2025年大数据面试题及答案.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

2025年大数据面试题及答案

1.请描述HDFS的副本放置策略,并说明其设计初衷。

HDFS默认采用三副本策略,具体放置逻辑为:第一个副本存储在客户端所在节点(若客户端不在集群内则随机选择节点),第二个副本存储在与第一个副本不同的机架的随机节点,第三个副本与第二个副本同机架但不同节点。若副本数超过3,后续副本随机分布在集群中。该策略通过机架感知实现:跨机架副本提升数据可靠性(避免单机架故障导致数据丢失),同机架副本降低跨机架流量(读取时优先访问同机架副本,减少网络开销),平衡了数据冗余与访问效率。实际生产中可通过dfs.replication.interrack.consideration参数调整跨机架策略,例如冷数据可配置两副本以节省存储成本。

2.SparkRDD的宽窄依赖如何区分?对任务调度有何影响?

宽依赖指父RDD的一个分区数据被多个子RDD分区依赖(如groupByKey、reduceByKey),此时需要Shuffle操作;窄依赖指父RDD的一个分区仅被一个子RDD分区依赖(如map、filter)。宽窄依赖的划分直接影响Stage的划分:窄依赖的RDD转换可合并到同一个Stage中进行流水线计算,宽依赖则触发新Stage的创建(需等待前Stage所有任务完成并将数据持久化到磁盘后,下一Stage才能启动)。因此,优化Shuffle操作(减少宽依赖)是提升Spark作业性能的关键,例如使用reduceByKey替代groupByKey(前者在Map端预聚合,减少Shuffle数据量)。

3.对比Flink的事件时间(EventTime)与处理时间(ProcessingTime),并说明水印(Watermark)的作用。

事件时间基于数据本身携带的时间戳(如日志提供时间),能反映业务真实时序,适用于需要准确时间窗口计算的场景(如用户行为分析);处理时间基于数据被系统处理的时间(如Flink算子接收到数据的时间),计算延迟低但受系统负载影响大(可能出现乱序)。水印是事件时间下衡量数据完整性的机制,通过“当前最大事件时间-延迟阈值”提供水印时间戳。当水印超过窗口结束时间时,Flink认为该窗口数据已完整(允许一定延迟),触发计算。例如,设置5秒延迟的水印,允许事件时间晚于水印5秒的数据仍被纳入窗口,避免因网络延迟导致的窗口提前关闭。

4.设计数据仓库时,如何处理缓慢变化维(SCD)?举例说明SCD2的实现方式。

缓慢变化维指维度属性随时间发生非频繁变化(如用户地址修改),常见处理方式包括:

-SCD1:覆盖旧值(仅保留最新状态,丢失历史信息);

-SCD2:新增记录(保留所有历史版本,通过生效/失效时间戳区分);

-SCD3:新增字段(记录最近几次变化,如“原地址”“新地址”)。

SCD2的典型实现:在维度表中增加start_date(生效时间)和end_date(失效时间)字段,初始记录end_date设为9999-12-31。当属性变化时,将原记录的end_date更新为变化前的时间,插入新记录(start_date为变化时间,end_date为9999-12-31)。例如用户2023-01-01的地址是“A”,2024-02-01修改为“B”,则原记录end_date更新为2024-01-31,新增记录start_date为2024-02-01,end_date为9999-12-31。查询时通过时间戳关联维度表,可获取指定时间点的维度状态。

5.写出计算用户7日留存率的SQL语句(假设用户行为表user_action,包含user_id、login_date字段)。

留存率定义为:某日新增用户中,在之后第N日活跃的用户占比。以计算2024-01-01新增用户的7日留存率为例:

```sql

WITHnew_usersAS(

SELECTuser_id

FROMuser_action

WHERElogin_date=2024-01-01

GROUPBYuser_id--去重当日重复登录

),

retention_usersAS(

SELECTn.user_id

FROMnew_usersn

JOINuser_actiona

ONn.user_id=a.user_id

ANDa.login_dateBETWEEN2024-01-01AND2024-01-08--7日内活跃(包括当日)

WHEREa.login_date=2024-01-08--第7日活跃(若要求严格第7日,非7日内)

)

文档评论(0)

欣欣 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档