2025年大数据工程师职业资格考试试题及答案_第1页
2025年大数据工程师职业资格考试试题及答案_第2页
2025年大数据工程师职业资格考试试题及答案_第3页
2025年大数据工程师职业资格考试试题及答案_第4页
2025年大数据工程师职业资格考试试题及答案_第5页
已阅读5页,还剩20页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

2025年大数据工程师职业资格考试试题及答案一、单项选择题(每题1分,共20分。每题只有一个正确答案,请将正确选项字母填入括号内)1.在Hadoop3.x中,默认的块大小为()A.32MB  B.64MB  C.128MB  D.256MB答案:C2.SparkSQL中,将DataFrame注册为临时视图的API是()A.cache()  B.persist()  C.createOrReplaceTempView()  D.registerTempTable()答案:C3.下列关于KafkaPartition的描述,错误的是()A.一个Topic可配置多个PartitionB.同一Partition内消息严格有序C.ConsumerGroup内每个Consumer只能消费一个PartitionD.Partition数量一旦创建不可动态扩容答案:D4.Flink的Checkpoint机制基于()A.Twophasecommit  B.ChandyLamport算法  C.Paxos  D.Raft答案:B5.在Hive中,使用ORC格式存储的最大优势是()A.支持事务Update/Delete  B.支持JSON嵌套  C.支持实时写入  D.支持图计算答案:A6.HBase中,用于实现Region自动分裂的策略类是()A.IncreasingToUpperBoundRegionSplitPolicyB.ConstantSizeRegionSplitPolicyC.DisabledRegionSplitPolicyD.ManualRegionSplitPolicy答案:A7.下列算法中,属于聚类算法的是()A.Apriori  B.DBSCAN  C.C4.5  D.Adaboost答案:B8.在Scala中,下列代码输出为()valrdd=sc.parallelize(List(1,2,3,4))valres=rdd.aggregate(0)(_+_,_+_)A.6  B.10  C.0  D.24答案:B9.数据仓库分层模型中,DWD层的主要职责是()A.原始数据保留  B.轻度汇总  C.明细数据清洗  D.数据应用接口答案:C10.在Pythonpandas中,将DataFramedf的列col按降序排列并取前10行,正确写法是()A.df.sort_values('col',ascending=False).head(10)B.df.orderBy('col',ascending=False).limit(10)C.df.sort('col',False).take(10)D.df.top(10,'col')答案:A11.下列关于数据倾斜的说法,正确的是()A.Map端必然发生倾斜  B.Reduce端倾斜可通过两阶段聚合缓解C.倾斜只发生在Join阶段  D.增加Partition数一定消除倾斜答案:B12.在AWS中,适合存放PB级冷数据的存储服务是()A.EBS  B.S3Standard  C.S3GlacierDeepArchive  D.EFS答案:C13.使用Sqoop将MySQL数据导入Hive时,参数splitby的作用是()A.指定Hive分区字段  B.指定并行切分列  C.指定压缩格式  D.指定行分隔符答案:B14.下列关于数据血缘的描述,错误的是()A.可用于影响分析  B.需要解析SQL语义C.只能支持表级血缘  D.可辅助数据质量追溯答案:C15.在FlinkTableAPI中,窗口函数TUMBLE的窗口长度指定为5分钟,语法为()A.TUMBLE(rowtime,INTERVAL'5'MINUTE)B.TUMBLE(proctime,5)C.TUMBLE_START(rowtime,5m)D.WINDOWTUMBLE(5MINUTES)答案:A16.下列关于ZooKeeper的Znode类型,可用于分布式锁的是()A.Persistent  B.Ephemeral  C.Container  D.TTL答案:B17.在数据质量评估维度中,“数据应在业务发生后5分钟内到达”属于()A.完整性  B.一致性  C.及时性  D.唯一性答案:C18.使用SparkMLlib训练ALS推荐模型时,必须设置的参数是()A.maxDepth  B.rank  C.numTrees  D.stepSize答案:B19.在Elasticsearch中,实现父子文档关联的字段类型是()A.nested  B.object  C.join  D.geo_point答案:C20.下列关于数据湖的说法,正确的是()A.仅支持结构化数据  B.Schemaonwrite是核心特征C.通常与ETL解耦  D.不支持ACID事务答案:C二、多项选择题(每题2分,共20分。每题有两个或两个以上正确答案,多选、少选、错选均不得分)21.下列组件中,属于Hadoop生态的是()A.YARN  B.Presto  C.HDFS  D.Tez  E.Kudu答案:A、C、D22.导致Spark作业OOM的常见原因包括()A.并行度设置过高  B.使用collect()取回大RDDC.序列化框架选择Kryo  D.广播变量过大  E.启用动态资源分配答案:B、D23.下列关于KafkaConsumerRebalance的描述,正确的是()A.触发条件包括Consumer加入或退出B.使用StickyAssignor可减少分区迁移C.Rebalance期间消费暂停D.Partition分配策略由Broker端配置E.可自定义分配策略答案:A、B、C、E24.在Hive中,可用于实现行级更新的机制包括()A.ORC+ACID  B.HDFS追加写  C.Merge语句  D.Insertoverwrite  E.DeltaLake答案:A、C、E25.下列属于Flink时间语义的是()A.ProcessingTime  B.IngestionTime  C.EventTime  D.WindowTime  E.TriggerTime答案:A、B、C26.下列Python代码可正确实现DataFramedf缺失值均值填充的是()A.df.fillna(df.mean())B.df.replace(None,df.mean())C.df.transform(lambdax:x.fillna(x.mean()))D.df.apply(lambdax:x.fillna(x.mean(),axis=0))E.erpolate()答案:A、C27.下列关于数据治理核心域的描述,正确的是()A.元数据管理  B.主数据管理  C.数据标准管理  D.数据生命周期管理  E.网络带宽管理答案:A、B、C、D28.在AWSGlue中,可用于触发ETL作业的事件包括()A.S3Put事件  B.ScheduleCron  D.DynamoDBStream  D.GlueDataCatalog更新  E.KinesisDataFirehose答案:A、B、C、D29.下列关于ClickHouse的描述,正确的是()A.列式存储  B.支持向量引擎  C.不支持事务  D.支持实时Insert  E.支持Geo查询答案:A、C、D、E30.下列属于数据安全脱敏算法的是()A.MD5  B.Tokenization  C.Kanonymity  D.DifferentialPrivacy  E.SHA256答案:B、C、D三、填空题(每空2分,共20分)31.在Spark中,RDD的五大特征分别为________、________、________、________、________。答案:分区列表、依赖关系、计算函数、分区策略、首选位置32.HBase中,RegionServer的默认RPC端口是________。答案:1602033.Kafka的LeaderPartition副本故障时,负责重新选举Leader的控制器组件是________。答案:KafkaController34.在Pythonpandas中,将字符串列转换为日期时间类型的函数是________。答案:to_datetime35.Flink的Checkpoint屏障插入策略采用________模式,确保Exactlyonce。答案:AlignedBarriers36.Hive中,设置动态分区开启的参数为________。答案:hive.exec.dynamic.partition=true37.数据仓库维度建模中,事实表通常包含________键和________度量。答案:外键、可加性38.在Elasticsearch集群中,默认发现机制使用________协议。答案:ZenDiscovery(7.x之前)或SeedHosts(7.x之后)39.使用Sqoop导出Hive表到MySQL时,参数________可指定更新已有数据。答案:updatemodeallowinsert40.在Scala中,惰性求值的关键字是________。答案:lazy四、简答题(每题10分,共30分)41.(开放型)描述一次你参与的离线数仓主题域建模过程,包括需求澄清、维度设计、事实表设计、ETL调度策略及遇到的挑战与优化。答案:1.需求澄清:与业务方确认GMV、订单、用户、商品四大主题,明确分析粒度为订单明细。2.维度设计:采用星型模型,建立日期、用户、商品、地区、促销等维度表;日期维度采用雪花,其余保持扁平。3.事实表设计:订单明细事实表采用事务型,包含订单ID、用户ID、商品ID、地区ID、促销ID、下单时间、支付时间、成交金额、折扣金额;加购事实表采用周期快照,按小时累积。4.ETL调度:使用Airflow,日切02:00启动,先执行ODS层增量抽取(Sqoop+DataX),再执行DWD层清洗(SparkSQL),最后执行DWS层汇总(ClickHouse物化视图)。5.挑战与优化:a.数据倾斜:订单表按user_id分布不均,采用两阶段聚合+加盐key,Reduce端倾斜缓解70%。b.迟到数据:支付回调延迟,采用FlinkCEP识别超时订单,触发侧输出流回写,保证DWS指标最终一致。c.存储成本:ORC+ZSTD压缩,平均压缩比8:1,冷数据迁移S3Glacier,年省成本35%。42.(封闭型)说明Spark3.xAdaptiveQueryExecution(AQE)的三大核心优化点,并给出每点的触发条件与可量化收益。答案:1.动态合并Shuffle分区:当运行时统计的Map输出大小连续小于spark.sql.adaptive.advisoryPartitionSizeInBytes(默认64MB)时,自动合并相邻小分区;TPCDS1TB测试减少小文件2.3万个,Job执行时间缩短18%。2.动态切换Join策略:当某侧Shuffle后实际大小小于spark.sql.autoBroadcastJoinThreshold(默认10MB)时,自动将SortMergeJoin转为BroadcastHashJoin;测试场景减少Shuffle读2.4GB,执行时间缩短42%。3.动态优化倾斜Join:当检测到某Reduce任务处理数据量超过中位数1.5倍且大于spark.sql.adaptive.skewJoin.skewedPartitionThresholdInBytes(默认256MB)时,自动拆分倾斜分区并复制对应Map输出;TPCDSq14倾斜场景下,单Task执行时间从8min降至1.2min,整体Stage缩短35%。43.(开放型)某电商公司实时大屏需展示“最近1分钟支付订单金额”,要求延迟<3s、可容忍少量重复但不可漏计。请给出端到端技术选型、Flink作业设计、Exactlyonce保障、重复幂等处理方案。答案:1.技术选型:采集:Canal→Kafka(3副本,retention24h)计算:Flink1.16onKubernetes,RockDBStateBackend,Checkpoint10s,UnalignedCheckpoint存储:RedisCluster,Key=“minute:{floor_time/60}”,Value=SUM(amount),TTL300s大屏:WebSocket推送,前端轮询Redis2.作业设计:Source:KafkaTopicpay_success,并行度=KafkaPartition=12Watermark:BoundedOutOfOrderness2sWindow:Tumble1min,触发器默认Aggregate:Sum(amount)Sink:RedisLua脚本保证INCR原子3.Exactlyonce:Checkpoint屏障对齐使用Unaligned模式,KafkaProducer两阶段提交,transactional.id=jobName+timestampRedis采用HINCRBY+EXPIRE事务脚本,Checkpoint成功才提交外部事务4.重复幂等:订单ID写入RedisSet,Key=“dedup:{orderId}”,TTL5min当Set已存在时,过滤该记录;利用RedisClusterHashTag保证分片一致测试:模拟7%重复,结果零漏计,重复率<0.01%,端到端延迟P992.3s五、应用题(共60分)44.(计算类,15分)给定订单表orders(order_id,user_id,amount,pay_time)10亿行,存储于HDFSORC格式,压缩后大小120GB。现需计算每日GMV及付费用户数,要求输出结果<1GB,执行时间<5min。集群资源:YARN队列最大400VCore、1.2TB内存。请给出:(1)SparkSQL物理计划关键参数;(2)预估并行度;(3)Shuffle读写字节估值;(4)判断资源是否足够并给出调优清单。答案:(1)参数:spark.sql.shuffle.partitions=800spark.executor.cores=4spark.executor.memory=12gspark.executor.memoryOverhead=2gspark.dynamicAllocation.enabled=truespark.dynamicAllocation.maxExecutors=100(2)并行度:Input120GB,ORCStripe平均256MB→约480个Split,设置800分区,MapTask800,ReduceTask800(3)Shuffle估值:Map端输出:每日聚合后Key=日期,约365天;每行20B,365×(8+8+4)≈7KB,Map输出7KB×800=5.6MB实际带哈希表膨胀,按10倍估算56MB;ShuffleWrite≈56MB,ShuffleRead相同(4)资源判断:Executor100×(12+2)=1.4GB内存,小于队列1.2TB;VCore100×4=400,等于上限调优:启用AQE,将spark.sql.adaptive.coalescePartitions.enabled=true,最小分区设为1,避免小文件;启用ZSTD压缩,CPU增加8%,但Shuffle减少25%,执行时间测试3.2min,满足SLA45.(分析类,15分)某日志文件每行JSON,大小2TB,格式:{"uid":"u001","event":"click","ts":1680000001000,"attrs":{"pid":"p123","price":9.9}}需求:统计每个商品近7天日均点击量,并找出下降幅度最大的Top100商品。要求代码可维护、可测试。答案:1.模型:caseclassLog(uid:String,event:String,ts:Long,attrs:Map[String,String])caseclassAgg(pid:String,date:String,cnt:Long)2.步骤:(1)FlinkBatchEnvironment,读S3→TextInputFormat→map→JsonParse(2)filterevent=click,projectpid,ts→date(3)keyBy(pid,date)→windowTumble1day→aggregatecnt(4)写中间结果ClickHouse表click_daily(pidString,dateDate,cntUInt64)(5)SQL:WITHlast7AS(SELECTpid,avg(cnt)ASavg_7dFROMclick_dailyWHEREdateBETWEENtoday()7ANDtoday()1GROUPBYpid),prev7AS(SELECTpid,avg(cnt)ASavg_prev7FROMclick_dailyWHEREdateBETWEENtoday()14ANDtoday()8GROUPBYpid)SELECTl.pid,(p.avg_prev7l.avg_7d)/nullif(p.avg_prev7,0)ASdrop_ratioFROMlast7lJOINprev7pUSING(pid)ORDERBYdrop_ratioDESCLIMIT100;3.可测试:(1)单元测试:使用ScalaTest+FlinkMiniCluster,注入1000条样本,验证输出Cnt正确(2)集成测试:构造两张分区表,验证Top100排序正确46.(综合类,30分)背景:某运营商每日产生话单500亿条,原始大小4PB,保存90天。需求:1.支持用户详单查询(<2s返回最近7天);2.支持每日收入批价汇总;3.支持实时欺诈检测(延迟<500ms)。请给出整体架构、存储选型、数据模型、ETL流程、索引设计、计算框架、容灾方案、成本估算。答案:1.架构:采集层:gNMI→Kafka3.0集群(12Broker,机架感知)存储层:冷数据:HDFS3.xEC6+3,单盘16TB,节点12×16×0.7≈134TB,需30节点热数据:ClickHouse21.8集群,双副本,Shard12×2=24节点,每节点内存192GB,NVMe8×4TB计算层:批价:Spark3.3onYARN,每日00:30启动,CPU800Core,内存3TB实时:Flink1.16onKubernetes,TaskManager64slot,CheckpointtoHDFS查询层:详单:ClickHouseMergeTree+PARTITIONBYtoYYYYMMDD(event_time)+ORDERBY(user_id,event_time)汇总:ClickHouseSummingMergeTree欺诈:FlinkCEP→Kafka→Redis告警2.数据模型:详单表cdr(user_idUInt64,call_timeDateTime,called_numberString,durationUInt32,feeFloat64)汇总表cdr_daily(user_idUInt64,fee_dateDate,total_feeFloat64)3.ETL:(1)实时:Flink消费Kafka,解析ASN.1,过滤字段20→写ClickHouse热分区(2)离线:Spark读HDFS冷分区,按user_id重分区,批价规则UDF,写汇总表4.索引:ClickHouse二级索引:INDEXidx_called(called_number,TYPEbloom_filter,GRANULARITY2)查询

温馨提示

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

评论

0/150

提交评论