版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年大数据工程师新员工岗位专业知识笔试题目及答案一、单项选择题(每题2分,共30分)1.在Hadoop3.x中,下列哪项参数直接决定了NameNode内存占用的上限?A.node.handler.countB.dfs.block.sizeC.node.max.memory.blocksD.erval答案:C解析:node.max.memory.blocks控制NameNode可加载到内存的块数,块数越多,内存占用越高。2.Spark3.4中,若使用AdaptiveQueryExecution(AQE)自动优化Join策略,需开启哪一项配置?A.spark.sql.adaptive.coalescePartitions.enabledB.spark.sql.adaptive.enabledC.spark.sql.join.preferSortMergeJoinD.spark.sql.execution.arrow.pyspark.enabled答案:B解析:spark.sql.adaptive.enabled是AQE总开关,关闭则所有子功能失效。3.Flink1.17的exactly-once语义依赖以下哪项机制实现端到端一致性?A.Checkpoint+TwoPhaseCommitSinkB.Savepoint+AsyncSnapshotC.Event-timeWindow+allowedLatenessD.StateTTL+incrementalcleanup答案:A解析:TwoPhaseCommitSink在Checkpoint完成时预提交外部系统事务,失败可回滚,保证exactly-once。4.在Kafka3.5中,若topic分区副本数为5,min.insync.replicas=3,acks=all,当ISR列表只剩2个副本时,生产者会?A.继续写入成功B.抛出NotLeaderOrFollowerExceptionC.抛出TimeoutExceptionD.返回写入成功但数据可能丢失答案:B解析:ISR少于min.insync.replicas,broker拒绝写入,客户端收到NotLeaderOrFollowerException。5.使用DeltaLake2.4时,哪条SQL可立即清理掉历史版本并释放存储空间?A.VACUUMtable_nameRETAIN0HOURSB.VACUUMtable_nameRETAIN168HOURSC.DELETEFROMtable_nameWHEREversion<5D.REFRESHTABLEtable_name答案:B解析:VACUUM默认保留7天(168小时),小于该值会报错,必须≥168小时才能执行。6.Hudi0.14的COW表在一次upsert中生成的基础文件格式是?A.ORCB.ParquetC.AvroD.JSON答案:B解析:COW(CopyOnWrite)在写入时复制并合并Parquet文件,保证列存性能。7.某Hive表使用Tez引擎,设置tez.grouping.max-size=256MB,tez.grouping.min-size=50MB,输入目录下文件平均30MB,则实际Map任务数最接近?A.与文件数相同B.文件数/2C.文件数/8D.文件数/4答案:D解析:Tez按max-size切分,30MB文件会被合并,256/30≈8,故任务数≈文件数/8,但考虑min-size,最终接近1/4。8.ClickHouse23.5中,MergeTree表按dt分区,按id哈希分片,执行SELECTcount()FROMtableWHEREdt='2026-06-01'ANDcity='shanghai',下列说法正确的是?A.仅扫描dt分区B.仅扫描city列C.先按dt裁剪分区,再按city过滤D.需要全表扫描答案:C解析:MergeTree先根据分区键dt裁剪,再根据主键或列级索引过滤city。9.在Airflow2.8中,若某DAG的max_active_runs=1,concurrency=3,则同一时刻最多可运行几个task实例?A.1B.3C.9D.无限制答案:B解析:max_active_runs限制DAG运行次数,concurrency限制同一DAG内并发task数,故为3。10.使用Presto0.28查询Iceberg表时,若要读取2026年6月1日快照,应使用?A.FORSYSTEM_TIMEASOFTIMESTAMP'2026-06-0100:00:00'B.VERSIONASOF1C.SNAPSHOTID'12345'D.ASOF'2026-06-01'答案:A解析:Iceberg支持时间旅行语法,Presto使用FORSYSTEM_TIMEASOF。11.某Elasticsearch8.11集群写入出现429拒绝,最优先应调整?A.indices.memory.index_buffer_sizeB.thread_pool.write.queue_sizeC.cluster.routing.allocation.disk.threshold_enabledD.search.max_buckets答案:B解析:429多为写入队列满,增大thread_pool.write.queue_size可缓解。12.在Scala2.13的Spark应用中,使用Dataset.joinWith后返回的数据类型是?A.(T,U)B.RowC.(T,Option[U])D.(T,U,Boolean)答案:A解析:joinWith返回Tuple2,左右两边Dataset的强类型元组。13.某数据仓库采用星型模型,事实表100亿行,维度表平均1千万行,使用Bitmap索引的最佳场景是?A.低基数维度列B.高基数主键列C.连续度量值列D.文本备注列答案:A解析:Bitmap适合低基数列,如性别、状态,可大幅压缩位图。14.在Python3.11的PySpark作业中,若使用pandas_api(),底层执行引擎实际是?A.PandasB.PySparkCatalystC.ArrowFlightD.Photon答案:B解析:pandas_api()将Pandas语法映射到Catalyst优化器,仍走Spark引擎。15.某企业使用数据湖仓一体架构,将ODS层数据保存为Iceberg表,DWD层保存为Hudi表,若想实现ODS→DWD的流式增量,最佳工具是?A.SqoopB.FlinkCDCC.DataXD.SparkBatch答案:B解析:FlinkCDC可捕获ODSIceberg的changelog并实时写入Hudi。二、多项选择题(每题3分,共30分)16.关于Spark3.4的DynamicPartitionPruning(DPP),下列说法正确的是?A.需要star-schema检测B.支持BucketJoinC.可在运行时生成分区过滤器D.对非分区列无效E.需开启spark.sql.dynamicPartitionPruning.enabled答案:A、C、E解析:DPP依赖星型检测与运行时广播,自动生成分区过滤器,开关默认开启。17.在Flink1.17中,以下哪些statebackend支持异步快照?A.HashMapStateBackendB.EmbeddedRocksDBStateBackendC.FsStateBackendD.MemoryStateBackendE.ChangelogStateBackend答案:B、E解析:RocksDB与Changelog均支持异步快照,减少TaskManager阻塞。18.使用Trino423查询Hive表时,下列哪些操作会触发文件列表缓存失效?A.MSCKREPAIRTABLEB.ALTERTABLEADDPARTITIONC.REFRESHMETADATAD.ANALYZETABLEE.DROPPARTITION答案:A、B、C、E解析:以上操作均改变元数据或分区列表,缓存失效。19.关于KafkaTopic的LeaderElection,下列哪些情况会触发?A.Broker宕机B.手动reassignpartitionC.新增preferredleaderD.分区副本扩容E.消费者组重平衡答案:A、B、C、D解析:消费者组重平衡与LeaderElection无关。20.在DeltaLake中,以下哪些操作会生成新的DeltaLogJSON文件?A.INSERTB.UPDATEC.OPTIMIZED.CLONEE.DESCRIBEHISTORY答案:A、B、C、D解析:DESCRIBEHISTORY只读,不写DeltaLog。21.使用Airflow2.8的TaskFlowAPI,下列哪些装饰器参数可实现任务重试?A.retry_delayB.retriesC.retry_exponential_backoffD.max_retry_delayE.pool答案:A、B、C、D解析:pool用于资源池,与重试无关。22.在Elasticsearch8.11中,以下哪些设置可降低集群写入压力?A.index.refresh_interval=30sB.index.translog.durability=asyncC.index.number_of_replicas=0D.indices.store.throttle.type=mergeE.cluster.routing.allocation.cluster_concurrent_rebalance=2答案:A、B、C解析:D、E与写入吞吐无直接关系。23.关于Snowflake的Micro-partition,下列说法正确的是?A.不可变B.默认16MB压缩大小C.按自然顺序存储D.支持自动ClusteringE.可手动合并答案:A、B、D解析:Micro-partition按列压缩存储,非自然顺序,不可手动合并。24.在SparkStructuredStreaming中,以下哪些sink支持exactly-once?A.ConsoleB.KafkaC.HDFSD.ElasticsearchE.ForeachBatch+DeltaLake答案:B、E解析:Kafka通过事务实现,Delta通过幂等写实现。25.使用Hudi0.14的Mor表进行读优化查询时,下列哪些文件会被扫描?A.basefileB.logfileC.indexfileD.compactionplanE.commitmetadata答案:A解析:读优化仅合并后的basefile,不读log。三、判断题(每题1分,共10分)26.Spark3.4的AQE可以在运行时自动将SortMergeJoin转换为BroadcastHashJoin。答案:正确解析:AQE根据运行时统计自动选择更优Join策略。27.Flink的Checkpoint屏障对齐机制会导致反压时延迟增加。答案:正确解析:对齐需等待所有输入通道到达屏障,反压时延迟上升。28.DeltaLake的Z-ORDER优化可以替代传统的分区裁剪。答案:错误解析:Z-ORDER是文件级聚簇,无法完全替代分区裁剪。29.Kafka的LogCompaction会删除所有value为null的消息。答案:错误解析:LogCompaction保留最新null作为墓碑,不立即删除。30.ClickHouse的MaterializedView写入时,原表与视图数据强一致。答案:错误解析:MaterializedView异步插入,非强一致。31.Airflow的Sensor若设置mode='reschedule',会释放workerslot。答案:正确解析:reschedule模式将sensor任务挂起,让出slot。32.Elasticsearch的doc_values启用后,会对text类型字段生效。答案:错误解析:text类型默认关闭doc_values,需keyword子字段。33.Hudi的Bootstrap操作可将现有Parquet表快速导入为Hudi表,无需重写数据。答案:正确解析:Bootstrap仅生成metadata,指向原文件。34.Presto的Cost-BasedOptimizer会利用列级统计信息估算Join代价。答案:正确解析:CBO依赖统计信息计算基数与代价。35.Snowflake的TimeTravel保留期可针对单个表设置不同值。答案:错误解析:TimeTravel保留期在账户或数据库级统一配置。四、填空题(每空2分,共20分)36.在Spark3.4中,将DataFrame写入Hive分区表并动态覆盖最近7天分区,应使用模式__________并设置__________。答案:overwrite,spark.sql.sources.partitionOverwriteMode=dynamic37.Flink1.17的TableAPI中,声明事件时间属性需在DDL后加__________子句。答案:WATERMARKFORrowtime_columnASrowtime_column-INTERVAL'5'SECOND38.Kafka3.5的__consumer_offsets主题默认分区数为__________。答案:5039.DeltaLake的checkpoint文件格式为__________压缩的Parquet。答案:SNAPPY40.ClickHouse的MergeTree引擎中,__________参数控制后台合并线程数。答案:background_pool_size41.Airflow2.8的XCom默认序列化器为__________,最大存储__________字节。答案:JSON,4800042.Elasticsearch8.11的ilm策略中,__________动作可将索引迁移到冷节点。答案:allocate43.Hudi的compaction计划文件保存在__________目录下。答案:.hoodie44.Presto0.28中,__________函数可将JSON字符串转为MAP(VARCHAR,JSON)。答案:json_parse45.Snowflake的QueryAccelerationService通过__________技术自动加速重复扫描。答案:ResultCache五、简答题(每题10分,共30分)46.描述Spark3.4在AdaptiveQueryExecution框架下,如何自动优化倾斜Join,并给出触发条件与调优参数。答案:AQE通过运行时统计检测倾斜分区,当某分区大小超过spark.sql.adaptive.skewJoin.skewedPartitionThresholdInBytes(默认256MB)且大于中位数N倍(spark.sql.adaptive.skewJoin.skewedPartitionFactor,默认5)时,自动将SortMergeJoin拆分为多个smallertasks,并对倾斜分区采用随机前缀扩容方式重新分发。调优参数包括:spark.sql.adaptive.enabled=truespark.sql.adaptive.skewJoin.enabled=truespark.sql.adaptive.skewJoin.skewedPartitionThresholdInBytes=512MBspark.sql.adaptive.skewJoin.skewedPartitionFactor=3拆分后,每个小任务处理部分数据,避免长尾,整体Stage耗时下降30%-70%。47.某电商公司使用Flink1.17实时计算GMV,数据源为Kafka,要求端到端exactly-once,请给出完整的checkpoint与两阶段提交配置,并说明如何验证一致性。答案:1.环境配置execution.checkpointing.mode=EXACTLY_ONCEerval=30sexecution.checkpointing.min-pause=10sexecution.checkpointing.timeout=10minstate.backend=rocksdbstate.checkpoints.dir=hdfs://ns/flink/checkpointsstate.backend.incremental=truerestart-strategy=fixed-delay,attempts=3,delay=10s2.KafkaSink配置delivery.guarantee=EXACTLY_ONCEtransactional.id.prefix=gmv-${}sink.transaction-commit-delay=30s3.两阶段提交实现TwoPhaseCommitSinkFunction,预提交阶段将结果写入Kafka事务,notifyCheckpointComplete时正式commit;若checkpoint失败,abort事务。4.验证一致性启动作业后,使用kafka-console-consumer加上isolation.level=read_committed消费目标topic,收集1小时数据,与MySQLbinlog对账,计算GMV差值为0;同时人为killJobManager触发恢复,再次对账,差值仍为0,验证exactly-once。48.说明如何在Trino423中利用Iceberg的hiddenpartitioning功能优化查询性能,并给出建表与查询示例。答案:hiddenpartitioning指用户无需显式写出分区值,Iceberg自动根据转换函数生成分区,避免查询时遗漏分区。建表示例:CREATETABLEiceberg.db.orders(order_idBIGINT,order_timeTIMESTAMP(6),amountDECIMAL(10,2))WITH(partitioning=ARRAY['day(order_time)'],format='PARQUET');插入数据:INSERTINTOiceberg.db.ordersVALUES(1,TIMESTAMP'2026-06-0110:00:00',99.9),(2,TIMESTAMP'2026-06-0211:00:00',88.8);查询优化:SELECTSUM(amount)FROMiceberg.db.ordersWHEREorder_time>=TIMESTAMP'2026-06-0100:00:00'ANDorder_time<TIMESTAMP'2026-06-0200:00:00';Trino自动将谓词下推为Iceberg的partitionfilter,仅扫描2026-06-01分区,EXPLAINPLAN显示只读取1个manifest文件,扫描数据量从100GB降至1.2GB,查询耗时从45s降至0.8s。隐藏分区避免用户误写错分区值,提升易用性与性能。六、编程题(每题20分,共40分)49.使用PySpark3.4实现实时UV计算,数据源为Kafka,topic:user_behavior,格式:{"user_id":"u123","event_time":"2026-06-0110:00:00","event_type":"click"},要求每10秒输出一次当日累计UV到MySQL,需去重且支持作业失败恢复。答案:```pythonfrompyspark.sqlimportSparkSessionfrompyspark.sql.functionsimportcol,to_date,countDistinctfrompyspark.sql.typesimportStructType,StringType,TimestampTypespark=SparkSession.builder\.appName("uv_job")\.config("spark.sql.shuffle.partitions",200)\.getOrCreate()schema=StructType()\.add("user_id",StringType())\.add("event_time",TimestampType())\.add("event_type",StringType())df=spark.readStream\.format("kafka")\.option("kafka.bootstrap.servers","kafka:9092")\.option("subscribe","user_behavior")\.option("startingOffsets","latest")\.load()\.selectExpr("CAST(valueASSTRING)")\.select(spark.read.json(col("value"),schema=schema).alias("tmp"))\.select("tmp.")\.filter(col("event_type")=="click")\.withColumn("dt",to_date(col("event_time")))uv_df=df.groupBy("dt").agg(countDistinct("user_id").alias("uv"))defwrite_to_mysql(batch_df,batch_id):batch_df.write\.format("jdbc")\.option("url","jdbc:mysql://mysql:3306/stat")\.option("dbtable","uv_stats")\.option("user","root")\.option("password","pwd")\.mode("append")\.save()query=uv_df.writeStream\.outputMode("update")\.foreachBatch(write_to_mysql)\.option("checkpointLocation","hdfs://ns/checkpoints/uv")\.trigger(processingTime="10seconds")\.start()query.awaitTermination()```说明:使用checkpointLocation保存偏移量与状态,失败恢复时自动续跑;countDistinct利用HLL近似去重,状态存储在RocksDB,保证exactly-once。50.使用Flink1.17TableAPI实现订单宽表加工,source为Kafka订单主表与订单明细表,需关联并在订单状态变更后30分钟内输出到Elasticsearch,要求使用事件时间、延迟数据侧输出、状态TTL为2小时。答案:```javaEnvironmentSettingssettings=EnvironmentSettings.newInstance().inStreamingMode().build();TableEnvironmenttEnv=TableEnvironment.create(settings);tEnv.executeSql("CREATETABLEorders_main("+"order_idSTRING,"+"user_idSTRING,"+"statusINT,"+"update_timeTIMESTAMP(3),"+"WATERMARKFORupdate_timeASupdate_time-INTERVAL'5'SECOND"+")WITH("+"'connector'='kafka',"+"'topic'='orders_main',"+"'properties.bootstrap.servers'='kafka:9092',"+"'format'='json',"+"'scan.startup.mode'='latest-offset')");tEnv.executeSql("CREATETABLEorders_detail("+"order_idSTRING,"+"sku_idSTRING,"+"priceDECIMAL(10,2),"+"update_timeTIMESTAMP(3),"+"WATERMARKFORupdate_timeASupdate_time-INTERVAL'5'SECOND"+")WITH("+"'connector'='kafka',"+"'topic'='orders_detail',"+"'properties.bootstrap.servers'='kafka:9092',"+"'format'='json')");tEnv.executeSql("CREATETABLEorders_wide("+"order_idSTRING,"+"user_idSTRING,"+"statusINT,"+"sku_idSTRING,"+"priceDECIMAL(10,2),"+"proc_time
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中职会计基础(会计基础实操)试题及答案
- 2025年大学水污染防治管理应用(应用技术)试题及答案
- 2025年大学农业资源与环境(土壤肥力检测)试题及答案
- 2025年大学机械原理(机械原理实验)试题及答案
- 2025年高职播音主持(播音主持基础)试题及答案
- 2025年高职产品设计实践(产品实践)试题及答案
- 2025年高职农产品加工技术(果蔬保鲜工艺)试题及答案
- 2025年高职(市场营销)网络营销实训阶段测试题及答案
- 2025年大学人工智能技术应用(自然语言处理)试题及答案
- 2025年大学二年级(网络安全)网络安全防护试题及答案
- 中医内科学考试题库及答案(二)
- 2025年江苏省公务员面试模拟题及答案
- 2025中国家庭品牌消费趋势报告-OTC药品篇-
- 广东省2025届湛江市高三下学期第一次模拟考试-政治试题(含答案)
- 天津市河东区2026届七年级数学第一学期期末复习检测试题含解析
- 水库清淤申请书
- 梯子使用安全操作规程
- 民航保健与卫生
- 2025年城市更新的城市更新技术
- 2025年第五人格听力试卷及答案
- 药店三七活动方案
评论
0/150
提交评论