2025年大数据试题+参考答案_第1页
2025年大数据试题+参考答案_第2页
2025年大数据试题+参考答案_第3页
2025年大数据试题+参考答案_第4页
2025年大数据试题+参考答案_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2025年大数据试题+参考答案一、单项选择题(每题2分,共20分)1.关于Hadoop3.x版本的HDFS,以下描述错误的是:A.默认块大小为128MBB.支持纠删码(ErasureCoding)降低存储成本C.NameNode内存中存储的元数据包含文件块位置信息D.引入HDFSFederation实现元数据横向扩展2.某Spark作业执行时,出现“Stage3failed4times,mostrecentfailure:Losttask3.3instage3.0”,最可能的原因是:A.驱动程序(Driver)内存不足B.任务(Task)所在Executor节点网络中断C.SparkSQL的Shuffle分区数设置过小D.RDD的持久化级别选择错误3.数据湖(DataLake)与传统数据仓库(DataWarehouse)的核心差异在于:A.存储介质(磁盘/内存)B.数据结构(结构化/非结构化)C.分析场景(OLTP/OLAP)D.数据新鲜度(实时/批量)4.实时计算框架Flink中,水印(Watermark)的主要作用是:A.解决乱序事件时间(EventTime)的延迟问题B.限制状态存储的大小以避免内存溢出C.协调不同并行度任务的数据分发D.优化Checkpoint的执行效率5.某电商平台用户行为日志数据量为每天500GB(文本格式,无压缩),需存储至HDFS并支持快速查询,最合理的存储方案是:A.原始文本格式,单文件128MBB.Parquet格式,按日期分区,单文件256MBC.ORC格式,按用户ID分桶,单文件64MBD.CSV格式,按小时分区,单文件512MB6.数据倾斜(DataSkew)在SparkShuffle阶段的典型表现是:A.部分Executor内存使用率远高于其他节点B.所有Task的执行时间均匀分布C.Checkpoint耗时显著增加D.RDD的分区数自动调整7.关于Kafka的消费者组(ConsumerGroup),以下说法正确的是:A.一个消费者组内的消费者数量必须等于主题的分区数B.消费者组通过ZooKeeper管理偏移量(Offset)C.同一分区的数据只能被消费者组中的一个消费者消费D.消费者组的Rebalance操作不会影响数据消费的顺序性8.某企业需构建实时数据大屏,要求延迟低于1秒,支持高并发写入,最适合的技术栈是:A.Flink+Redis+GrafanaB.SparkStreaming+HBase+KibanaC.Storm+HDFS+TableauD.MapReduce+MySQL+PowerBI9.数据治理中的主数据管理(MasterDataManagement,MDM)主要解决的问题是:A.数据存储的冗余问题B.跨系统关键业务实体(如客户、产品)的一致性问题C.实时数据与历史数据的融合问题D.数据隐私的合规性问题10.在隐私计算(Privacy-PreservingComputation)中,联邦学习(FederatedLearning)的核心特点是:A.数据不出域,通过模型参数交换实现联合训练B.对原始数据进行加密后集中存储C.使用同态加密技术直接计算密文数据D.通过可信执行环境(TEE)隔离计算过程二、填空题(每题2分,共20分)1.HBase中,RegionServer的默认端口号是________。2.SparkRDD的转换操作(Transformation)中,________用于将多个RDD按元素位置合并为元组。3.数据仓库的分层架构中,ODS层通常存储________数据(填写数据特征)。4.Kafka的主题(Topic)中,消息的最小存储单元是________。5.Flink的状态后端(StateBackend)中,________模式将状态存储在TaskManager的内存中,仅元数据存储在Checkpoint中。6.数据湖仓一体(LakeHouse)的核心技术是________,用于支持事务性操作和ACID特性。7.分布式计算框架中,________机制通过记录任务执行过程中的中间状态,实现故障恢复。8.数据挖掘中的关联规则分析常用________算法(填写经典算法名称)。9.实时数仓的Lambda架构包含________和________两条处理路径。10.大数据平台的资源管理组件中,________用于容器化资源调度(如Kubernetes)与大数据框架的集成。三、简答题(每题8分,共40分)1.简述HadoopYARN的核心组件及其功能。2.对比SparkRDD与DataFrame的区别,并说明DataFrame的优势。3.实时计算中,如何处理“迟到数据”(LateData)?请列举至少3种方法。4.数据倾斜的常见检测方法有哪些?针对Shuffle阶段的数据倾斜,给出2种优化策略。5.说明数据湖(DataLake)与数据仓库(DataWarehouse)在数据建模上的差异。四、应用题(每题10分,共30分)1.某零售企业有一张Hive表“user_behavior”,包含字段:user_id(用户ID,字符串)、behavior_type(行为类型,枚举值:点击、收藏、加购、购买)、event_time(事件时间,时间戳)、item_id(商品ID,字符串),数据量为每天1亿条。请设计合理的分区与分桶策略,并说明理由。2.某电商大促期间,Spark作业执行时间显著变长,日志显示“Shufflereadtime占比75%”。请分析可能原因,并提出3种优化方案。3.需用Flink实现“每5分钟统计过去1小时内各商品的点击次数”的实时需求,事件时间为event_time。请写出关键代码框架(伪代码),并说明水印(Watermark)和窗口(Window)的设置逻辑。五、论述题(每题15分,共30分)1.结合智慧城市的业务场景(如交通管理、公共安全),设计大数据应用架构,并说明各组件的作用及数据流转路径。2.数据治理是企业数字化转型的关键支撑。请论述数据治理的核心要素(至少5个),并说明如何通过技术手段实现数据质量的提升。参考答案一、单项选择题1.C(NameNode元数据存储文件目录结构和块映射,块位置信息由DataNode汇报后动态维护,不在内存中持久存储)2.B(Task失败多因Executor节点故障或网络问题,驱动程序内存不足会导致Driver崩溃而非单个Task重复失败)3.B(数据湖支持结构化、半结构化、非结构化数据,数据仓库以结构化为主)4.A(水印用于标记事件时间进度,触发窗口计算并处理延迟数据)5.B(Parquet列式存储压缩率高,按日期分区便于时间范围查询,256MB单文件平衡HDFS块大小和IO效率)6.A(数据倾斜导致部分Task处理大量数据,对应Executor内存压力大)7.C(Kafka通过消费者组实现分区与消费者的一对一绑定,确保分区内数据顺序消费)8.A(Flink低延迟,Redis支持高并发实时查询,Grafana可视化符合需求)9.B(MDM统一管理跨系统的主数据,如客户、产品的唯一标识和属性)10.A(联邦学习通过本地训练模型、上传参数的方式实现“数据不动模型动”)二、填空题1.160202.zip(仅当RDD长度相同时可用)3.原始(或“未加工”“原始明细”)4.分区(Partition)5.内存(MemoryStateBackend)6.事务日志(如DeltaLake的_transaction_log)7.Checkpoint(检查点)8.Apriori(或FP-Growth)9.实时处理(SpeedLayer)、批量处理(BatchLayer)10.YuniKorn(或KubernetesNative调度器)三、简答题1.YARN核心组件包括:-ResourceManager(RM):全局资源管理,调度应用程序(Application)的Master(如SparkDriver)。-NodeManager(NM):节点级资源监控,管理Container(资源容器)的生命周期。-ApplicationMaster(AM):每个应用程序的管理者,向RM申请资源并与NM协调Task执行。-Container:资源分配的基本单位,封装CPU、内存等资源,运行具体任务。2.区别:-RDD是不可变的分布式数据集,无结构信息;DataFrame是带Schema的RDD,支持列操作。-RDD通过算子操作数据,DataFrame支持SQL和DataFrameAPI,优化器(Catalyst)可执行逻辑计划优化。优势:-性能更优:Catalyst优化器通过类型检查、执行计划剪枝等减少计算量。-开发更便捷:支持SQL语法,降低学习成本。-内存占用更少:列式存储(如Off-Heap内存)减少内存消耗。3.处理迟到数据的方法:-延迟窗口关闭时间:设置窗口的允许延迟(AllowedLateness),如允许延迟10分钟,窗口在水印超过结束时间+10分钟后关闭。-侧输出流(SideOutput):将迟到数据输出到侧流,后续通过批量处理补充计算。-重新处理历史数据:结合Lambda架构,用批量层修正实时层的结果。-调整水印提供策略:如使用“水印=当前最大事件时间-固定延迟”,预留迟到数据的缓冲时间。4.检测方法:-观察Task执行时间:部分Task耗时远高于平均(如90%Task耗时10s,个别耗时5min)。-查看Shuffle指标:SparkUI中ShuffleWrite/Read的记录数、字节数分布不均(如某分区数据量是其他分区的10倍)。-日志分析:Task日志出现“GC频繁”“内存溢出”等异常。优化策略:-加盐分桶:对倾斜键(如user_id)添加随机前缀,分散到多个子任务处理,再聚合去前缀。-过滤倾斜值:对少量高频值单独处理(如将高频user_id的行为数据用广播变量join,避免Shuffle)。-调整Shuffle分区数:增加分区数(如从200调至400),分散数据分布。5.数据建模差异:-数据湖:采用“读时模式”(Schema-on-Read),存储原始数据,建模在查询时进行,支持灵活的半结构化/非结构化数据。-数据仓库:采用“写时模式”(Schema-on-Write),入库前需定义严格的Schema(如星型模型、雪花模型),以结构化数据为主。-建模目标:数据湖侧重数据的原始性和多样性,支持探索性分析;数据仓库侧重业务逻辑的清晰表达,支持确定性的OLAP查询。-工具与技术:数据湖常用DeltaLake、Iceberg等支持事务的存储格式;数据仓库常用维度建模(DimensionalModeling)工具(如DatabricksSQL、Redshift)。四、应用题1.分区与分桶策略:-分区:按event_time的日期(yyyyMMdd)和小时(HH)做两级分区(如partitionedby(dtstring,hrstring))。理由:用户行为数据具有强时间属性,按时间分区可快速过滤查询范围(如查询“2025-06-1510:00-12:00”的数据),减少扫描量。-分桶:按user_id分桶,桶数设为100(如clusteredby(user_id)into100buckets)。理由:user_id是常用的分组(GROUPBY)和连接(JOIN)字段,分桶后相同user_id的数据存储在同一桶中,JOIN时可避免全表Shuffle,提升性能。同时,100桶平衡了并行度和文件数量(单桶文件数不宜过多)。2.可能原因:-Shuffle分区数不合理(如分区数过少,导致单个分区数据量过大)。-数据倾斜:部分Key对应的记录数远多于其他Key,导致个别Task处理大量数据。-Shuffle内存不足:Executor的shuffle.memoryFraction参数过小,导致Shuffle数据溢写磁盘,增加IO耗时。优化方案:-调整Shuffle分区数:通过spark.sql.shuffle.partitions(默认200)增加分区数(如调至400),分散数据分布。-解决数据倾斜:对倾斜Key添加随机前缀,先分组聚合再去前缀(如将user_id转换为user_id_1、user_id_2等),减少单个Task的处理量。-优化Shuffle内存:增大spark.executor.memory(如从8G调至16G)或调整spark.memory.fraction(提升Shuffle内存占比),减少磁盘溢写。-使用SortShuffle替代HashShuffle(若版本支持):SortShuffle通过排序合并数据,减少文件数量,提升读取效率。3.关键代码框架及逻辑:```javaDataStream<Event>eventStream=env.addSource(kafkaSource);//定义水印:允许最大10秒延迟,每200ms提供水印WatermarkStrategy<Event>watermarkStrategy=WatermarkStrategy.<Event>forBoundedOutOfOrderness(Duration.ofSeconds(10)).withTimestampAssigner((event,timestamp)->event.getEventTime());DataStream<Event>withWatermark=eventStream.assignTimestampsAndWatermarks(watermarkStrategy);//按商品分组,滑动窗口(每5分钟统计过去1小时)WindowedStream<Event,String,TimeWindow>windowStream=withWatermark.keyBy(Event::getItemId).window(SlidingEventTimeWindows.of(Time.hours(1),Time.minutes(5))).allowedLateness(Time.minutes(2));//允许2分钟迟到数据//统计点击次数DataStream<ItemClickCount>result=windowStream.process(newProcessWindowFunction<Event,ItemClickCount,String,TimeWindow>(){@Overridepublicvoidprocess(StringitemId,Contextcontext,Iterable<Event>events,Collector<ItemClickCount>out){longcount=Iterators.size(events.iterator());out.collect(newItemClickCount(itemId,count,context.window().getStart(),context.window().getEnd()));}});result.addSink(redisSink);```关键逻辑说明:-水印策略:使用BoundedOutOfOrderness策略,允许事件时间最大延迟10秒,避免窗口过早关闭。-窗口类型:滑动窗口(SlidingWindow),窗口大小1小时,滑动步长5分钟,实现每5分钟输出最近1小时的统计。-允许迟到:通过allowedLateness设置允许2分钟的迟到数据,这些数据会更新之前的窗口结果(需窗口未完全关闭)。-处理函数:使用ProcessWindowFunction访问窗口的起始和结束时间,输出包含时间范围的统计结果。五、论述题1.智慧城市大数据应用架构设计(以交通管理为例):架构层级:数据采集层→数据存储层→计算处理层→分析应用层→可视化层。-数据采集层:通过路侧传感器(摄像头、雷达)、车载OBU、手机信令等采集交通流量、车速、事件(如事故)等数据,格式包括视频流、JSON日志、GPS坐标。使用Kafka作为消息队列,实现高并发数据的缓冲与分发(吞吐量支持10万条/秒)。-数据存储层:-实时数据:存储至HBase(支持毫秒级随机读写)或ClickHouse(支持实时聚合查询),用于实时路况计算。-历史数据:存储至数据湖(如DeltaLake),按时间分区,保留原始视频、日志等非结构化数据,支持长期分析。-主数据:存储至关系型数据库(如PostgreSQL),管理道路、路口、车辆等主数据(如路口ID、车道数)。-计算处理层:-实时计算:使用Flink处理Kafka数据流,实现“实时拥堵检测”(如5分钟内某路段平均车速<20km/h标记为拥堵)、“事故预警”(摄像头AI识别事故图像后触发告警)。-批量计算:使用Spark处理历史数据,训练交通流量预测模型(如LSTM模型预测早高峰各路段流量)。-智能分析:集成AI平台(如TensorFlow),对视频数据进行目标检测(如识别违停车辆、行人闯红灯)。-分析应用层:开发交通调度系统,基于实时拥堵数据动态调整信号灯配时(如绿波带优化);事故响应系统根据位置信息调度最近的救援车辆

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论