版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年大数据技术与应用职业能力测试试卷及答案一、单项选择题(每题2分,共20分。每题只有一个正确答案,错选、多选、未选均不得分)1.在Hadoop3.x版本中,下列哪项参数直接决定了NameNode元数据持久化的触发阈值?A.node.checkpoint.txnsB.dfs.block.sizeC.dfs.replicationD.node.handler.count答案:A解析:node.checkpoint.txns表示两次checkpoint之间允许的最大事务数,达到该阈值即触发持久化,与元数据安全直接相关;其余选项分别控制块大小、副本数及RPC线程数,与持久化触发无关。2.Flink1.17中,若使用TableAPI读取Kafka,要求端到端仅一次语义,必须开启的Kafka参数是:A.enable.idempotence=falseB.isolation.level=read_uncommittedC.enable.idempotence=trueD.auto.offset.reset=latest答案:C解析:enable.idempotence=true保证KafkaProducer幂等,是Flink实现端到端仅一次的前提;read_uncommitted会读到未提交数据,破坏一致性。3.某电商公司使用Spark3.4对500GB用户行为日志做去重,最合理的去重算子是:A.distinct()B.dropDuplicates(Seq("user_id","sku_id"))C.groupByKey().count()D.reduceByKey(_+_)答案:B解析:dropDuplicates可指定列去重,避免全表shuffle;distinct()需全量比较,性能差;groupByKey会产生大量shuffle;reduceByKey用于聚合而非去重。4.在Hive3.1中,创建分区表时为避免小文件过多,应优先使用的表属性是:A.TRANSACTIONAL=trueB.auto.purge=trueC.hive.exec.dynamic.partition.mode=nonstrictD.hive.merge.mapfiles=true答案:D解析:hive.merge.mapfiles=true在作业结束时合并小文件;nonstrict仅允许动态分区,不解决小文件;auto.purge控制删除数据是否进入回收站;TRANSACTIONAL用于ACID表。5.某企业使用DeltaLake2.3,要求时间旅行查询2024060110:00:00的快照,正确语法是:A.SELECTFROMeventsTIMESTAMPASOF'2024060110:00:00'B.SELECTFROMeventsVERSIONASOF20240601100000C.SELECTFROMevents@20240601100000D.SELECTFROMeventsFORSYSTEM_TIMEASOF'2024060110:00:00'答案:A解析:DeltaLake支持TIMESTAMPASOF语法,精确到秒;VERSIONASOF需传入整数版本号;@语法为Hive风格,Delta不支持;SYSTEM_TIME为SQLServer语法。6.使用Hudi0.14进行流式写入时,为将迟到数据自动合并到最新分区,应选择的表类型是:A.COPY_ON_WRITEB.MERGE_ON_READC.HOLLOWD.ARCHIVE答案:B解析:MERGE_ON_READ支持行级更新,迟到数据通过deltafile合并;COPY_ON_WRITE需重写整个文件,延迟高;HOLLOW与ARCHIVE非Hudi表类型。7.某Spark任务因数据倾斜导致长尾Task,以下调优手段最有效的是:A.提高spark.default.parallelismB.增加spark.sql.shuffle.partitions至8000C.对倾斜key添加随机前缀,两阶段聚合D.将spark.serializer改为JavaSerializer答案:C解析:随机前缀+两阶段聚合直接打散热点key;单纯增加分区数无法解决倾斜;serializer仅影响序列化性能。8.在Presto0.28查询Iceberg表时,若要利用分区裁剪,WHERE条件必须包含:A.分区列的等值或范围过滤B.任意列的LIKE过滤C.分区列的CAST表达式D.分区列的UDF包装答案:A解析:Iceberg通过分区值元数据裁剪文件,需显式过滤分区列;CAST或UDF会阻断裁剪。9.某Kafka集群版本3.5,topic有6分区,Producer端acks=all,min.insync.replicas=2,当2个broker宕机时,该topic可用性为:A.全部分区可读写B.部分分区可读,不可写C.全部分区不可读写D.部分分区可写,不可读答案:B解析:剩余broker数=1<min.insync.replicas,ISR为空,Producer收到NOT_ENOUGH_REPLICAS,写入失败;但Consumer仍可拉取历史数据。10.使用ClickHouse23.5做实时漏斗分析,最佳表引擎是:A.MergeTreeB.SummingMergeTreeC.AggregatingMergeTreeD.MaterializedView答案:C解析:AggregatingMergeTree支持预聚合状态(如uniqCombinedState),配合物化视图实现高效漏斗;MergeTree需全量扫描;Summing仅支持数值求和。二、多项选择题(每题3分,共15分。每题至少有两个正确答案,多选、少选、错选均不得分)11.关于Spark3.4AdaptiveQueryExecution(AQE),以下说法正确的是:A.运行时可动态合并相邻小分区B.可自动选择BroadcastJoinC.需将spark.sql.adaptive.enabled设为trueD.可在任务提交前生成最终物理计划答案:A、B、C解析:AQE在运行时收集统计信息,动态合并分区、切换Join策略;D错误,AQE特性即“运行时”优化,非提交前。12.在Flink1.17中,以下哪些机制共同保障ExactlyOnce?A.Checkpoint屏障B.两阶段提交SinkC.Kafka事务ProducerD.Eventtime水位线答案:A、B、C解析:屏障对齐+分布式快照实现内部一致性;两阶段提交+Kafka事务保证外部系统仅一次;水位线用于时间语义,与一致性无关。13.使用HDFSFederation架构的优势包括:A.单NameNode内存瓶颈缓解B.支持跨NameNode的副本自动平衡C.客户端需手动指定NameSpaceD.DataNode可同时向多个NameBlockPool汇报答案:A、D解析:Federation通过多NameNode分摊元数据;DataNode共享存储,向多池汇报;副本平衡仍在单池内完成;客户端通过ViewFS透明访问,无需手动指定。14.关于数据湖Iceberg的隐藏分区(HiddenPartitioning),正确的是:A.用户无需显式写出分区列B.分区值由Iceberg自动计算并写入元数据C.支持时间列按小时分区D.修改分区策略需重写全部数据答案:A、B、C解析:隐藏分区通过配置转换函数(如hour(ts))自动生成分区值;修改策略仅需元数据操作,无需重写数据。15.在构建实时数仓时,以下哪些技术组合可实现Lambda架构的“速度层”?A.Flink+Kafka+RedisB.SparkStructuredStreaming+DeltaLakeC.Flume+HDFS+HiveD.Storm+Cassandra答案:A、B、D解析:速度层需低延迟;Flume+Hive为批线,延迟高,不适合作速度层。三、判断题(每题1分,共10分。正确打“√”,错误打“×”)16.Spark3.x的WholestageCodegen技术可将多个物理算子编译为单段Java字节码,从而显著减少虚函数调用。答案:√解析:Wholestage生成手写风格代码,减少Row对象及虚函数开销,提升CPU效率。17.HBase2.5中,若使用AsyncBufferMutator批量写入,设置writeBufferSize=0表示禁用缓冲区。答案:×解析:writeBufferSize=0表示立即刷写,但缓冲区仍存在,非禁用。18.Kafka的LeaderEpoch机制可解决因Leader切换导致的高水位截断不一致问题。答案:√解析:LeaderEpoch通过单调递增的epoch+offset对,保证副本重启后正确截断。19.ClickHouse的ReplacingMergeTree引擎可保证查询时自动返回最新版本,无需FINAL关键字。答案:×解析:ReplacingMergeTree后台合并才去重,查询需显式加FINAL或依赖聚合函数argMax。20.DeltaLake的OPTIMIZE命令在运行时会对表加EXCLUSIVE锁,阻塞并发写入。答案:√解析:OPTIMIZE重写文件,需排他锁;可通过ZOrdering减少重写范围,但锁仍存在。21.Flink的Savepoint与Checkpoint底层格式完全一致,可直接互换使用。答案:×解析:Savepoint含更多元数据(如算子ID),且不支持增量;格式不兼容。22.Hive3.0引入的LLAP(LowLatencyAnalyticalProcessing)通过守护进程缓存列数据,提升交互式查询性能。答案:√解析:LLAP在YARN容器外长期存活,缓存+索引+向量化,降低延迟。23.Presto的CostbasedOptimizer(CBO)需手动运行ANALYZE收集统计信息,否则无法使用。答案:√解析:PrestoCBO依赖表/列统计,缺失时回退规则优化。24.在SparkStructuredStreaming中,Watermark延迟时间必须大于或等于Trigger间隔,否则可能丢数据。答案:×解析:Watermark与Trigger无强制大小关系;延迟小于Trigger会导致窗口提前关闭,但非必然丢数据。25.Hudi的Clustering操作可将小文件合并并排序,同时更新对应列统计索引。答案:√解析:Clustering重写文件布局,同步更新col_stats索引,加速查询。四、填空题(每空2分,共20分)26.在Spark3.4中,通过设置spark.sql.adaptive.coalescePartitions.minPartitionNum=____,可控制AQE合并后的最小分区数,避免过度合并导致并行度不足。答案:1解析:设为1表示允许合并到单个分区,但通常结合集群核数设为200~400。27.Flink1.17的Checkpoint超时参数____默认值为10分钟,若作业状态过大需调大。答案:checkpoint.timeout解析:超时未完成会触发失败策略,影响可用性。28.Kafka3.5的__tocol.version__参数用于控制Broker间通信协议版本,滚动升级时应先升级代码再提升该版本。答案:tocol.version解析:保证新旧Broker兼容,避免协议不匹配。29.HDFS的____命令可显示块与DataNode的映射关系,常用于排查块缺失。答案:hdfsfsckblockslocations解析:fsck输出块ID、主机列表,定位损坏。30.ClickHouse的____引擎支持主键稀疏索引,按mark_number定位granule,实现跳表扫描。答案:MergeTree解析:MergeTree家族共享稀疏索引机制。31.DeltaLake的____文件记录事务日志,采用JSON格式,按序递增。答案:_delta_log解析:_delta_log目录下.json文件构成时间旅行基础。32.Iceberg的____元数据表可查看所有数据文件的路径、分区值及记录数。答案:files解析:SELECTFROMcatalog.db.table.files提供文件级洞察。33.Presto的____函数可将JSON字符串转为MAP(VARCHAR,JSON),用于半结构化分析。答案:json_parse解析:json_parse返回JSON类型,可进一步CAST成MAP。34.Spark3.4的____特性可在Driver端捕获SQLUI的Plan图,生成SVG文件离线查看。答案:spark.sql.planChangeLog.level=WARN解析:结合spark.sql.planChangeLog.buffersize输出图。35.Hudi的____视图类型提供读优化查询,仅暴露列式基文件,延迟最低。答案:ReadOptimized解析:对比Snapshot视图,跳过log文件,牺牲实时性。五、简答题(每题10分,共30分)36.某互联网公司使用Flink1.17消费Kafka,进行10分钟滚动窗口UV计算,结果写入Redis。上线后发现窗口结束时UV值偶现跳变,请分析可能原因并给出排查步骤与解决方案。答案与解析:原因:(1)Kafka分区消费延迟不均:某并发Subtask消费滞后,导致窗口触发时部分数据未到达;(2)Watermark生成策略过于激进,使用ProcessingTime语义而非EventTime,迟到数据被丢弃;(3)Redis写入未做幂等,同一窗口多次触发(如allowedLateness>0)导致累加;(4)Checkpoint与窗口触发竞争,作业失败后从Checkpoint恢复,窗口状态重复计算。排查步骤:1.查看FlinkWebUI的Kafkalag曲线,确认是否存在长尾Subtask;2.检查Watermark生成代码,是否使用BoundedOutOfOrderness且最大延迟<实际迟到时间;3.打印窗口触发日志,对比Redis写入Key的TTL与窗口endtime,确认是否重复写入;4.开启FlinkCheckpoint历史,观察失败恢复点与窗口触发时间是否重叠。解决方案:a.调大Watermark延迟至业务可容忍的最大乱序时间;b.使用EventTime+allowedLateness(1min)+sideOutput,将超迟数据旁路输出,避免跳变;c.Redis写入采用SETNXEX命令,窗口ID作为Key,确保幂等;d.启用ExactlyOnceSink,如Redisson+Redis事务或Flink两阶段提交;e.对Kafka分区做keyBy重组,避免数据倾斜导致的滞后。37.描述如何使用Spark3.4+DeltaLake2.3构建近实时数仓的MERGEINTOpipeline,要求支持CDC变更、分区自动合并、历史版本回滚,并给出核心代码片段与调优参数。答案与解析:架构:MySQL→Debezium→Kafka→SparkStructuredStreaming→DeltaLake→BI核心代码:```scalavaldeltaTable=DeltaTable.forPath(spark,"/data/ods_user")streamDF.writeStream.format("delta").outputMode("append").option("checkpointLocation","/check/ods_user").trigger(Trigger.ProcessingTime("2minutes")).foreachBatch{(batch:DataFrame,batchId:Long)=>deltaTable.as("t").merge(batch.as("s"),"t.id=s.idANDt.ts<s.ts").whenMatched("s.op='DELETE'").delete().whenMatched().updateAll().whenNotMatched().insertAll().execute()}.start()```调优参数:spark.sql.files.maxRecordsPerFile=10000000//控制单文件大小约128MBspark.databricks.delta.merge.repartitionBeforeWrite.enabled=true//避免小文件spark.databricks.delta.optimizeWrite.enabled=truespark.databricks.delta.autoCompact.enabled=truespark.sql.shuffle.partitions=800//按核数2~3历史回滚:```sqlRESTORETABLEdelta.`/data/ods_user`VERSIONASOF892```38.某金融公司使用ClickHouse23.5做风控明细查询,表结构为(Replicated)MergeTree,按event_time分区,主键(user_id,event_time)。现发现查询某用户最近30天记录耗时5秒,请给出全链路优化方案,目标<500ms。答案与解析:瓶颈分析:1.分区过多:按天分区导致30个分区,并行扫描开销大;2.主键排序键不合理:event_time放末尾,无法利用跳数索引;3.未使用采样或投影;4.磁盘为HDD,随机读高;5.查询语句未加limit,返回数千万行。优化步骤:(1)改分区策略:改用toYYYYMM(event_time)月分区,减少分区数至1;(2)调整排序键:(user_id,toStartOfHour(event_time),event_time),确保user_id在前,事件时间有序;(3)添加跳数索引:```sqlALTERTABLErisk.eventsADDINDEXidx_userTYPEbloom_filterGRANULARITY3```(4)启用prewhere自动下推:setoptimize_move_to_prewhere=1;(5)建物化视图做预聚合:```sqlCREATEMATERIALIZEDVIEWrisk.events_mvENGINE=SummingMergeTreePARTITIONBYtoYYYYMM(event_time)ORDERBY(user_id,toStartOfDay(event_time))ASSELECTuser_id,toStartOfDay(event_time)asday,count()ascnt,sum(amount)assum_amtFROMrisk.eventsGROUPBYuser_id,day```(6)硬件升级:SSDNVMe,提高随机读至1GB/s;(7)查询改写:```sqlSELECTFROMrisk.eventsWHEREuser_id=123ANDevent_time>=now()INTERVAL30DAYORDERBYevent_timeDESCLIMIT1000SETTINGSmax_threads=8,max_memory_usage=10000000000```经测试,QPS由5s降至380ms,满足SLA。六、综合应用题(共25分)39.某市政府搭建城市大脑项目,需整合交通、气象、舆情三类数据,日均增量5TB,峰值QPS8万,要求秒级预警、分钟级分析、永久保存原始数据。请设计端到端大数据架构,涵盖采集、存储、计算、治理、可视化、安全、容灾七个维度,给出技术选型、部署拓扑、关键参数、成本估算,并论证为何淘汰Lambda架构。答案与解析:1)采集层:•交通:MQTT网关+FlinkCDC接入信号机日志;•气象:RESTful爬虫+KafkaConnect;•舆情:Flume监听微博API→Kafka。统一Topic命名:{source}.{biz}.{ds},保留3天,压缩LZ4。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年公共安全监控系统运行与管理规范
- 2026年台州温岭市箬横镇中心卫生院招聘编制外工作人员2人考试参考试题及答案解析
- 2026四川自贡医元健康管理有限责任公司招聘甜品师1人考试参考试题及答案解析
- 茂县2026年公开选调卫生事业单位工作人员40人考试参考题库及答案解析
- 2026上海政法学院招聘27人备考考试试题及答案解析
- 2026年甘肃省天水市甘谷县中医医院招聘编外工作人员23人考试备考题库及答案解析
- 2026云南红河州蒙自市金盾保安服务有限责任公司招聘5人备考考试试题及答案解析
- 2026年西安博爱学校招聘笔试模拟试题及答案解析
- 2026年安庆市某电力外包工作人员招聘1人(三)考试参考试题及答案解析
- 2026江苏南京大学招聘XZ2026-019医学院技术管理1人备考题库及答案详解参考
- 静脉给药的安全管理
- 2024-2025学年度高一英语下学期期中试卷(北师大版含答案)
- 银行从业者观《榜样》心得体会
- 农村年底活动方案
- 2024届山东省威海市高三二模数学试题(解析版)
- 设备管理奖罚管理制度
- LINE6效果器HD300中文说明书
- 2025年航运行业安全生产费用提取和使用计划
- 纳米纤维凝胶隔热材料的应用研究进展
- 蟹苗买卖合同协议
- 2025年社区养老服务补贴政策及申领方法
评论
0/150
提交评论