版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年《大数据技术原理与应用》期末考试试卷及答案一、单项选择题(每题1分,共20分。每题只有一个正确答案,请将正确选项的字母填在括号内)1.在HDFS中,NameNode的主要职责是()A.存储实际数据块B.管理文件系统的元数据C.执行Map任务D.执行Reduce任务答案:B2.下列关于SparkRDD的描述,错误的是()A.RDD是不可变的分布式数据集B.RDD支持懒执行C.RDD必须常驻内存D.RDD通过血缘关系实现容错答案:C3.在Kafka中,负责持久化消息的组件是()A.ProducerB.ConsumerC.BrokerD.ZooKeeper答案:C4.若HBase表的设计RowKey为“userId+timestamp”,则最可能引发的性能问题是()A.读热点B.写热点C.列族过大D.版本过多答案:B5.Flink的Checkpoint机制基于下列哪一种一致性协议()A.Two-PhaseCommitB.Chandy-LamportC.PaxosD.Raft答案:B6.在Hive中,将ORC表转换为分区表的正确语法是()A.ALTERTABLE…PARTITIONEDBY…B.CREATETABLE…PARTITIONEDBY…ASSELECT…C.MSCKREPAIRTABLE…D.INSERTOVERWRITETABLE…PARTITION…答案:B7.下列关于数据湖的说法,正确的是()A.数据湖只支持结构化数据B.数据湖schema-on-writeC.数据湖支持多版本并发控制D.数据湖必须基于HDFS实现答案:C8.在SparkSQL中,用于将DataFrame注册为临时视图的API是()A.cache()B.createOrReplaceTempView()C.persist()D.registerTable()答案:B9.若某电商公司使用Lambda架构,其SpeedLayer主要使用下列哪个技术组件()A.HiveB.StormC.PrestoD.Sqoop答案:B10.在ClickHouse中,最适合做高基数去重查询的函数是()A.count()B.uniqCombined()C.sum()D.topK()答案:B11.下列关于数据倾斜的解决方案,属于“两阶段聚合”的是()A.增加Reducer数量B.对倾斜键加随机前缀C.使用CombinerD.启用压缩答案:B12.在HDFS写入流程中,客户端第一个写入的数据包发给()A.NameNodeB.SecondaryNameNodeC.第一个DataNodeD.JournalNode答案:C13.下列关于ZooKeeper的ZAB协议,描述正确的是()A.所有节点均可写B.采用主从复制C.强一致性读D.不支持崩溃恢复答案:B14.在Flink中,当并行度为8的算子使用keyBy后,下游算子默认并行度为()A.1B.8C.上游并行度之和D.由用户自定义答案:B15.使用SparkMLlib训练逻辑回归模型时,默认的优化算法是()A.SGDB.L-BFGSC.AdamD.CoordinateDescent答案:B16.在Elasticsearch中,用于保证写操作一致性的参数是()A.refreshB.consistencyC.replicationD.timeout答案:B17.下列关于数据仓库分层描述,属于DWD层职责的是()A.原始日志保留B.维度退化C.明细事实清洗D.指标汇总答案:C18.在Presto中,跨源查询MySQL与Hive元数据的目录注册文件是()A.pertiesB.hive-site.xmlC.pertiesD.connector.yml答案:A19.使用HadoopMapReduce实现二次排序,需自定义()A.InputFormatB.PartitionerC.RawComparatorD.OutputFormat答案:C20.在SparkStructuredStreaming中,用于将流式DataFrame写入Kafka的format是()A.kafkaB.org.apache.spark.sql.kafkaC.kafka-streamsD.spark-kafka-connector答案:B二、多项选择题(每题2分,共10分。每题有两个或两个以上正确答案,请将所有正确选项的字母填在括号内,漏选、错选均不得分)21.下列属于HDFS高可用(HA)方案必要组件的有()A.JournalNodeB.ZKFCC.ResourceManagerD.SharedStorage答案:A、B、D22.关于Spark的内存管理,下列说法正确的有()A.Execution内存与Storage内存可动态借用B.统一内存管理从1.6开始默认启用C.用户代码对象占用Execution区域D.spark.memory.fraction默认0.6答案:A、B、D23.下列属于KafkaExactly-Once语义实现依赖的技术有()A.幂等ProducerB.事务性ProducerC.ConsumerGroupRebalanceD.LeaderEpoch答案:A、B、D24.在HBase中,可能导致RegionServerFullGC的原因有()A.MemStore过大B.BlockCache命中率低C.版本数过多D.压缩队列积压答案:A、C、D25.使用FlinkCEP库进行复杂事件处理时,可使用的模式策略有()A.followedByB.nextC.notNextD.within答案:A、B、C、D三、填空题(每空1分,共15分)26.HDFS默认块大小为________MB,Hadoop3.x支持的最大块大小为________GB。答案:128;1627.Spark中,每个RDD包含5大属性,分别是________、________、________、________、preferredLocations。答案:partitioner;dependencies;computefunction;partitions28.Kafka的topic分区副本因子由参数________在创建topic时指定,最小副本数由参数________控制读写可用性。答案:replication.factor;min.insync.replicas29.在Hive中,函数________用于将一行转为多行,函数________用于将多行合并为一行。答案:explode;collect_list/collect_set30.Flink的Checkpoint超时时间由参数________指定,最大并发Checkpoint数由参数________指定。答案:checkpoint.timeout;max.concurrent.checkpoints31.ClickHouse的MergeTree引擎中,________子句用于定义分区键,________子句用于定义主键。答案:PARTITIONBY;ORDERBY32.Elasticsearch集群状态为yellow,表示________分片未分配;状态为red,表示________分片未分配。答案:副本;主33.在Presto中,函数________用于将JSON字符串转为MAP(VARCHAR,JSON),函数________用于将MAP展开为多行。答案:json_parse;unnest四、判断题(每题1分,共5分。正确打“√”,错误打“×”)34.Spark的DAGScheduler遇到宽依赖时生成一个新的Stage。(√)35.HBase中列族数量越多,查询性能一定越高。(×)36.Kafka的ConsumerGroupRebalance由Coordinator负责,协议采用StickyAssignor。(√)37.Flink的ProcessFunction可以注册事件时间定时器,但不能注册处理时间定时器。(×)38.在Hive中,ORC格式支持列级压缩,而Parquet不支持。(×)五、简答题(共30分)39.(6分)简述HDFS写入数据时客户端与DataNode的流水线(pipeline)机制,并说明其容错过程。答案:客户端向NameNode申请新建文件,NameNode返回可写DataNode列表(通常3副本)。客户端将第一个数据包发送给第一个DataNode,该节点缓存并转发给第二个节点,第二个再转发给第三个,形成pipeline。每个节点收到包后向客户端返回ACK。若某个DataNode失败,客户端立即通知NameNode,NameNode重新分配新节点,客户端从未故障节点继续写入剩余包,失败节点上的块由NameNode后续异步复制,保证副本数。整个过程对客户端透明,写入不中断。40.(6分)对比SparkRDD与DataFrame在计算优化层面的差异,并给出DataFrame在Catalyst中的优化流程。答案:RDD基于粗粒度算子,由用户显式指定转换逻辑,优化空间有限;DataFrame带有schema,Catalyst可利用schema信息进行关系型优化。优化流程:1.解析SQL或API生成未解析逻辑计划;2.Analyzer结合Catalog解析为逻辑计划;3.通过规则(谓词下推、列裁剪、常量折叠等)优化逻辑计划;4.生成多个物理计划候选;5.CostModel基于统计信息选择最优物理计划;6.生成Java字节码(Whole-StageCodeGen)提交执行。41.(6分)说明KafkaController在Broker故障时的Leader选举流程,并指出如何防止“脑裂”。答案:当Broker挂掉,ZooKeeper临时节点消失,Controller监听并收到通知;Controller从ZooKeeper读取该分区ISR列表,选择第一个存活副本作为新Leader,将LeaderAndIsr信息写入ZooKeeper;随后向所有存活Broker发送LeaderAndIsrRequest,更新缓存。防止脑裂:Controllerepoch机制,每条请求携带epoch,Broker只接受大于本地epoch的请求;同时Leaderepoch递增,副本只接受大于本地leaderepoch的fetch请求,拒绝旧Leader消息。42.(6分)列举三种常见的数据倾斜场景,并分别给出基于Spark的解决代码片段。答案:场景1:大表join小表且热点key。解决:使用map-sidejoin。代码:valbroad=spark.sparkContext.broadcast(smallDF.collect())valresult=largeDF.mapPartitions(iter=>{valsmallMap=broad.value.toMapiter.map(row=>(row.getString(0),smallMap.getOrElse(row.getString(0),null)))})场景2:聚合热点。解决:两阶段聚合。代码:valsalted=df.selectExpr("concat(key,'_',cast(rand()100asint))assalt_key","value")valsalted=df.selectExpr("concat(key,'_',cast(rand()100asint))assalt_key","value")valpartial=salted.groupBy("salt_key").agg(sum("value").as("v"))valrestored=partial.selectExpr("split(salt_key,'_')[0]askey","v").groupBy("key").agg(sum("v"))场景3:大表join大表且倾斜key。解决:拆分倾斜键单独处理。代码:valskewKeys=List("hot1","hot2")valskewPart=df1.filter(col("key").isin(skewKeys:_)).join(df2,Seq("key"),"inner")valskewPart=df1.filter(col("key").isin(skewKeys:_)).join(df2,Seq("key"),"inner")valnormalPart=df1.filter(!col("key").isin(skewKeys:_)).join(df2,Seq("key"),"inner")valnormalPart=df1.filter(!col("key").isin(skewKeys:_)).join(df2,Seq("key"),"inner")valresult=skewPart.union(normalPart)43.(6分)描述Flink的Checkpoint与Savepoint在实现层面的三点差异,并给出触发Savepoint的命令。答案:1.触发方式:Checkpoint由Flink定时触发,Savepoint需手动触发;2.存储路径:Checkpoint默认由Flink管理可自动删除,Savepoint需用户指定路径并长期保留;3.二进制格式:Checkpoint格式与作业绑定,升级作业可能不兼容,Savepoint格式稳定,支持跨版本升级。命令:bin/flinksavepoint<jobID>[targetDirectory]或带YARN:bin/flinksavepoint<jobID>[targetDirectory]-yid<yarnAppId>六、应用题(共20分)44.(10分)综合计算与分析某电商公司使用SparkStructuredStreaming实时统计每分钟各品类销售额,源为Kafkatopic“orders”,消息格式为json:{"orderId":"123","category":"book","amount":9.9,"ts":1680000000000}。要求:(1)写出从Kafka读取并解析的代码;(2)计算每分钟各品类销售额,输出到MySQL表“category_minute_sales”,表结构(categoryVARCHAR(20),minuteBIGINT,salesDECIMAL(10,2),PRIMARYKEY(category,minute)),使用upsert语义;(3)给出Exactly-Once端到端需配置的Kafka与MySQL参数。答案:(1)valspark=SparkSession.builder.appName("CategorySales").getOrCreate()importspark.implicits._valdf=spark.readStream.format("kafka").option("kafka.bootstrap.servers","broker1:9092,broker2:9092").option("subscribe","orders").option("startingOffsets","latest").load()valparsed=df.selectExpr("CAST(valueASSTRING)asjson").select(from_json($"json",schema).as("data")).select("data.").select("data.").withColumn("minute",("t(2)valagg=parsed.groupBy("c.agg(sum($"amount").as("sales"))valquery=agg.writeStream.outputMode("update").foreachBatch{(batchDF:DataFrame,batchId:Long)=>batchDF.write.format("jdbc").option("url","jdbc:mysql://mysql:3306/retail").option("dbtable","category_minute_sales").option("user","root").option("password","****").option("password","****").option("driver","com.mysql.cj.jdbc.Driver").mode("append").option("duplicateKeyUpdate","sales=VALUES(sales)").save()}.option("checkpointLocation","/checkpoints/category_sales").start().awaitTermination()(3)Kafka:enable.idempotence=trueacks=allretries=Integer.MAX_VALUEmax.in.flight.requests.per.connection=5isolation.level=read_committedtransactional.id=prod-tx-${pid}MySQL:使用JDBCupsert语法,如INSERT…ONDUPLICATEKEYUPDATE,保证幂等;事务隔离级别READCOMMITTED;连接池验证重复提交。45.(10分)综合设计某视频平台需构建用户行为数据湖,日增量200TB,包含启动日志、播放日志、广告日志、弹幕日志四类。要求:(1)设计原始层、清洗层、明细层、汇总层四层结构,给出每层存储格式、分区策略、压缩方式;(2)选择两种计算引擎分别负责离线T+1与近实时5分钟指标,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年平凉方言测试题及答案
- 2026年老人三力测试题及答案
- 2026年企业环保知识测试题及答案
- 2026年感染诊断标准及测试题及答案
- 2026年神奇校车追测试题及答案
- 2026年音乐艺术综合素养测试题及答案
- 2026年英语心里测试题及答案
- 慢性泪囊炎护理查房
- 电力设备厂设备维护细则
- 宫颈癌术后护理要点
- 搅拌站安全会议管理制度
- T/CI 307-2024用于疾病治疗的间充质干细胞质量要求
- 2024小学科学教师教学技能测试题及答案
- 混凝土站生产流程
- 通站(2017)8012 铁路站场排水构筑物
- 《工业网络技术与应用(微课版)》 课件 第4章 网络冗余技术
- 云南省公路工程试验检测费用指导价
- 个人入股合同协议书
- 马克思主义与社会科学方法论课后思考题答案全
- 华信惠悦咨询美的集团职位分析与职位说明书研讨会
- 加油站向周边商户风险告知书
评论
0/150
提交评论