2025年大數(shù)據(jù)技術(shù)專業(yè)技能考試試卷及答案_第1頁(yè)
2025年大數(shù)據(jù)技術(shù)專業(yè)技能考試試卷及答案_第2頁(yè)
2025年大數(shù)據(jù)技術(shù)專業(yè)技能考試試卷及答案_第3頁(yè)
2025年大數(shù)據(jù)技術(shù)專業(yè)技能考試試卷及答案_第4頁(yè)
2025年大數(shù)據(jù)技術(shù)專業(yè)技能考試試卷及答案_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2025年大數(shù)據(jù)技術(shù)專業(yè)技能考試及答案1.單項(xiàng)選擇題(每題2分,共30分)1.1在Hadoop3.3的YARN容量調(diào)度器中,當(dāng)隊(duì)列A的capacity=40%、max-capacity=80%,隊(duì)列B的capacity=60%、max-capacity=100%時(shí),若集群瞬時(shí)總資源為200vCore、400GB,此時(shí)隊(duì)列A已占用90vCore、180GB,隊(duì)列B已占用110vCore、220GB。新來(lái)一個(gè)Job-1聲明需要20vCore、40GB,則Job-1將被:A.立即分配到隊(duì)列AB.立即分配到隊(duì)列BC.等待隊(duì)列A釋放資源后再分配D.等待隊(duì)列B釋放資源后再分配答案:B解析:隊(duì)列A當(dāng)前已用資源占比45%,未超max-capacity;隊(duì)列B當(dāng)前已用資源占比55%,也未超max-capacity。容量調(diào)度器優(yōu)先選擇資源使用率低于capacity的隊(duì)列,B使用率55%低于A的45%,但B的絕對(duì)剩余資源更多,調(diào)度器會(huì)優(yōu)先將任務(wù)提交到B。1.2使用Flink1.17進(jìn)行Exactly-Once端到端寫入Kafka,必須開啟的Checkpoint參數(shù)是:A.checkpointingMode=AT_LEAST_ONCEB.enableUnalignedCheckpoints=falseC.deliveryGuarantee=EXACTLY_ONCED.state.backend=HashMap答案:C解析:KafkaSink的deliveryGuarantee參數(shù)直接控制端到端語(yǔ)義,只有設(shè)置為EXACTLY_ONCE才能配合兩階段提交實(shí)現(xiàn)精確一次。1.3某電商公司使用DeltaLake2.4,表T按dt字段分區(qū),dt范圍20230101-20231231。執(zhí)行VACUUMTRETAIN168HOURS后,下列哪類文件一定被刪除:A.版本號(hào)≤7且被標(biāo)記為remove的parquet文件B.版本號(hào)≤7且被標(biāo)記為add的parquet文件C.版本號(hào)≤7的_delta_log目錄下json文件D.版本號(hào)≤7的checkpoint文件答案:A解析:VACUUM只清理物理上不再被最新狀態(tài)引用的數(shù)據(jù)文件,即被標(biāo)記為remove且超過(guò)保留期的parquet文件。1.4在Spark3.4的AdaptiveQueryExecution中,當(dāng)shufflepartition數(shù)從200自動(dòng)合并為20時(shí),觸發(fā)合并的閾值由哪項(xiàng)參數(shù)控制:A.spark.sql.adaptive.coalescePartitions.minPartitionNumB.spark.sql.shuffle.partitionsC.spark.sql.adaptive.advisoryPartitionSizeInBytesD.spark.sql.adaptive.coalescePartitions.initialPartitionNum答案:C解析:advisoryPartitionSizeInBytes決定目標(biāo)分區(qū)大小,系統(tǒng)按此估算合并后的分區(qū)數(shù)。1.5使用Presto0.433查詢Iceberg表,若想讀取快照ID=855706775966L的歷史數(shù)據(jù),應(yīng)使用:A.SELECTFROMtVERSIONASOF855706775966B.SELECTFROMtTIMESTAMPASOF855706775966C.SELECTFROMtFORSYSTEM_VERSIONASOF855706775966D.SELECTFROMtFORSYSTEM_TIMEASOF855706775966答案:A解析:Iceberg在Presto中通過(guò)VERSIONASOF語(yǔ)法指定快照ID。1.6某ClickHouse集群使用MergeTree引擎,按toYYYYMM(create_time)分區(qū),數(shù)據(jù)寫入后發(fā)現(xiàn)分區(qū)字段全部落在202312,但磁盤上出現(xiàn)了202311_1_1_0、202312_2_2_0、202312_3_3_0三個(gè)目錄,其原因是:A.手動(dòng)執(zhí)行過(guò)ALTERPARTITIONB.寫入時(shí)batch大小不一致導(dǎo)致blockID不同C.后臺(tái)merge線程尚未觸發(fā)D.分區(qū)鍵表達(dá)式寫錯(cuò)答案:C解析:MergeTree目錄名格式為partition_minBlock_maxBlock_level,多個(gè)目錄存在說(shuō)明尚未merge。1.7在Elasticsearch8.11中,對(duì)text字段使用match_phrase查詢“datalake”,若想允許中間最多插入2個(gè)詞,應(yīng)設(shè)置:A.slop=0B.slop=1C.slop=2D.slop=3答案:C解析:slop控制短語(yǔ)間允許插入的最大詞數(shù)。1.8某企業(yè)使用Airflow2.8,DAG-A使用@daily調(diào)度,start_date=2025-01-01,catchup=False,若部署時(shí)間為2025-01-0415:00,則首次實(shí)際執(zhí)行日期為:A.2025-01-01B.2025-01-02C.2025-01-03D.2025-01-04答案:D解析:catchup=False表示不補(bǔ)跑歷史,首次執(zhí)行即當(dāng)天。1.9在Hudi0.14的COW表中,對(duì)recordKey相同的兩條upsert數(shù)據(jù)先后寫入,第二次寫入的instanttime為20250104120000,則最終文件切片中:A.保留兩條記錄B.保留第一條C.保留第二條D.隨機(jī)保留一條答案:C解析:COW表upsert為寫時(shí)合并,后寫覆蓋先寫。1.10使用Pulsar3.0的exclusive訂閱模式,當(dāng)consumer-A斷開連接后,topic中未確認(rèn)的消息將:A.立即重試投遞給consumer-AB.等待consumer-A重新上線C.立即投遞給下一個(gè)在線consumerD.進(jìn)入死信隊(duì)列答案:B解析:exclusive模式下只有唯一consumer,斷線后消息堆積等待其恢復(fù)。1.11在StarRocks3.1的明細(xì)模型中,對(duì)k1,k2,k3三列建立Bitmap索引,當(dāng)查詢wherek1=1andk2=2時(shí),索引過(guò)濾流程為:A.先k1再k2交集B.先k2再k1交集C.同時(shí)掃描k1,k2合并D.無(wú)法使用索引答案:A解析:StarRocks按建索引順序依次過(guò)濾并取交集。1.12某數(shù)據(jù)湖使用Trino435查詢ORC文件,開啟orc.bloom.filter.columns=col1,當(dāng)wherecol1=100時(shí),Trino會(huì):A.直接跳過(guò)stripeB.先讀stripefooter再?zèng)Q定是否跳過(guò)C.忽略bloomfilterD.讀取整個(gè)文件答案:B解析:ORC的bloomfilter保存在stripefooter,需先讀footer判斷。1.13在Redis7.2的cluster模式下,對(duì)key“user:123”執(zhí)行MGETuser:123user:124,若兩個(gè)key對(duì)應(yīng)的slot分別為12182、11252,則命令:A.返回兩個(gè)值B.返回第一個(gè)值,第二個(gè)為nilC.返回MOVED重定向D.報(bào)錯(cuò)CROSSSLOT答案:D解析:MGET要求所有key落在同一slot。1.14使用Doris2.0的UniqueKey模型,對(duì)同一key先后導(dǎo)入batch1、batch2、batch3,其中batch2包含deleteflag,則最終狀態(tài)為:A.batch3B.batch2C.空D.batch1答案:A解析:UniqueKey按batch順序覆蓋,deleteflag僅影響當(dāng)前batch,后續(xù)batch重新插入。1.15在Hive4.0中,表T使用ORC格式,transactional=true,執(zhí)行UPDATETSETcol1=col1+1WHEREid=5,其底層實(shí)現(xiàn)為:A.直接重寫原文件B.寫入delta目錄并base文件合并C.新建一張臨時(shí)表替換D.使用HDFStruncate答案:B解析:HiveACID通過(guò)delta+base文件實(shí)現(xiàn),update寫入delta,讀時(shí)合并。2.多項(xiàng)選擇題(每題3分,共30分)2.1關(guān)于SparkStructuredStreaming+Kafka,下列配置組合可實(shí)現(xiàn)端到端Exactly-Once的有:A.checkpointLocation=HDFS路徑+kafka.acks=all+enable.idempotent=trueB.outputMode=append+trigger=ProcessingTime(10s)+checkpointLocation=本地路徑C.kafka.transaction.timeout.ms=900000+deliveryGuarantee=exactly_onceD.sink=foreachBatch+自定義兩階段提交代碼答案:ACD解析:B缺少kafka冪等及事務(wù)配置。2.2在FlinkSQL中,下列哪些語(yǔ)句可以觸發(fā)狀態(tài)清理:A.SET'table.exec.state.ttl'='1h'B.CREATETABLEt(...)WITH('state.ttl'='1h')C.ALTERTABLEtSET('state.ttl'='1h')D.CLEARSTATEFORTABLEt答案:AB解析:FlinkSQL目前僅支持作業(yè)級(jí)或表級(jí)ttl,無(wú)clearstate語(yǔ)法。2.3使用Hudi0.14MOR表時(shí),下列操作會(huì)生成log文件的有:A.insertB.upsertC.deleteD.compaction答案:ABC解析:compaction是合并base+log,不生成新log。2.4在ClickHouse中,對(duì)MergeTree表執(zhí)行ALTERUPDATEcol1=col12WHEREdt='202312',下列說(shuō)法正確的有:A.會(huì)立即重寫所有202312分區(qū)B.會(huì)生成mutation_id目錄C.可通system.mutations查看進(jìn)度D.執(zhí)行過(guò)程中新寫入數(shù)據(jù)不受影響答案:BCD解析:mutation為異步后臺(tái)任務(wù),不阻塞新數(shù)據(jù)。2.5關(guān)于Elasticsearch8.11的cross-clustersearch,下列說(shuō)法正確的有:A.需遠(yuǎn)程集群開啟securityB.支持不同版本集群互查C.需配置cluster.remote.cluster_name.seedsD.支持wildcard索引模式答案:ACD解析:版本需兼容,非任意版本。2.6在Airflow2.8中,下列屬于Sensor的poke模式的有:A.mode='poke'B.mode='reschedule'C.mode='smart'D.mode='trigger'答案:AB解析:smart為poke+reschedule混合,無(wú)trigger模式。2.7使用StarRocks3.1的物化視圖,下列場(chǎng)景可命中透明改寫有:A.基表join后聚合與物化視圖完全一致B.查詢包含where條件rk=1,物化視圖無(wú)該過(guò)濾C.查詢selectfrommvD.查詢groupby維度比物化視圖少一列答案:AC解析:B需維度一致,D需滿足rollup。2.8在Trino435中,使用cost-basedoptimizer時(shí),下列統(tǒng)計(jì)信息可被使用的有:A.表級(jí)行數(shù)B.列級(jí)null比例C.列級(jí)distinct值D.分區(qū)級(jí)max/min值答案:ABCD解析:Trino支持多級(jí)統(tǒng)計(jì)。2.9關(guān)于Pulsar3.0的geo-replication,下列說(shuō)法正確的有:A.需配置replicationClustersB.支持雙向同步C.支持選擇性topic同步D.需NFS共享存儲(chǔ)答案:ABC解析:geo-replication基于bookie復(fù)制,無(wú)需NFS。2.10在Doris2.0中,下列屬于高可用部署方案的有:A.FE多follower+observerB.BE多副本C.使用NamenodeHAD.使用ZooKeeperobserver答案:AB解析:Doris不依賴Namenode,ZKobserver與HA無(wú)關(guān)。3.判斷題(每題1分,共10分)3.1Spark3.4的AQE可在運(yùn)行時(shí)自動(dòng)將sortmergejoin轉(zhuǎn)為broadcastjoin。答案:√解析:當(dāng)運(yùn)行時(shí)統(tǒng)計(jì)發(fā)現(xiàn)一側(cè)小于broadcast閾值時(shí)自動(dòng)轉(zhuǎn)換。3.2Flink1.17的RocksDBStateBackend支持增量checkpoint。答案:√解析:RocksDB開啟增量后僅上傳diff。3.3Hudi0.14的COW表不支持delete操作。答案:×解析:COW支持delete,寫時(shí)合并。3.4ClickHouse的Distributed表引擎本身不存儲(chǔ)數(shù)據(jù)。答案:√解析:僅做分布式路由。3.5Elasticsearch8.11已廢棄_transport端口。答案:√解析:默認(rèn)僅保留9200。3.6Airflow2.8的TaskFlowAPI無(wú)需定義DAG對(duì)象。答案:×解析:仍需@dag裝飾器。3.7StarRocks3.1的primarykey表支持列級(jí)更新。答案:√解析:主鍵模型支持部分列更新。3.8Trino435支持Hive視圖透明查詢。答案:×解析:需展開視圖定義。3.9Pulsar3.0的topic級(jí)別策略可覆蓋namespace策略。答案:√解析:子級(jí)覆蓋父級(jí)。3.10Doris2.0的UniqueKey模型底層使用Merge-on-Read。答案:×解析:UniqueKey為Merge-on-Write。4.填空題(每空2分,共20分)4.1在Spark3.4中,將DataFrame按列col1分桶200桶并排序,應(yīng)使用_________函數(shù)。答案:bucketBy(200,"col1").sortBy("col1")4.2Flink1.17中,設(shè)置checkpoint最大并發(fā)為3的參數(shù)是_________。答案:maxConcurrentCheckpoints4.3Hudi0.14中,將mor表compaction觸發(fā)條件設(shè)為commit次數(shù)達(dá)5次的參數(shù)是_________。答案:mits=54.4ClickHouse中,查看mutation進(jìn)度的系統(tǒng)表是_________。答案:system.mutations4.5Elasticsearch8.11中,設(shè)置索引刷新間隔為30s的API端點(diǎn)為_________。答案:PUT/index/_settings{"refresh_interval":"30s"}4.6Airflow2.8中,設(shè)置DAG全局超時(shí)1小時(shí)的參數(shù)是_________。答案:dagrun_timeout=timedelta(hours=1)4.7StarRocks3.1中,查看物化視圖透明改寫是否命中的命令是_________。答案:EXPLAINLOGICAL4.8Trino435中,關(guān)閉動(dòng)態(tài)過(guò)濾的參數(shù)是_________。答案:enable_dynamic_filtering=false4.9Pulsar3.0中,查看topic內(nèi)部狀態(tài)的命令是_________。答案:pulsar-admintopicsstats4.10Doris2.0中,設(shè)置BE副本數(shù)為5的語(yǔ)句是_________。答案:PROPERTIES("replication_num"="5")5.簡(jiǎn)答題(每題10分,共30分)5.1描述Spark3.4AQE在Shuffle階段動(dòng)態(tài)合并分區(qū)的完整流程,并給出源碼入口類。答案:AQE通過(guò)MapOutputStatistics獲取每個(gè)maptask輸出大小,由CoalesceShufflePartitions規(guī)則計(jì)算目標(biāo)分區(qū)數(shù),公式為totalPostShuffleInputSize/targetSize,其中targetSize由spark.sql.adaptive.advisoryPartitionSizeInBytes控制。若合并后分區(qū)數(shù)小于初始,則注入CustomShuffleReaderExec。源碼入口為org.apache.spark.sql.execution.adaptive.CoalesceShufflePartitions。5.2說(shuō)明Flink1.17基于ChangelogStateBackend實(shí)現(xiàn)毫秒級(jí)延遲的核心機(jī)制。答案:ChangelogStateBackend將狀態(tài)變更寫入本地RocksDB的同時(shí),追加寫入DFS上的changelog文件,checkpoint時(shí)僅上傳changelog增量,無(wú)需同步RocksDB快照,從而將checkpoint耗時(shí)降至毫秒級(jí);恢復(fù)時(shí)重放changelog即可重建狀態(tài),實(shí)現(xiàn)低延遲端到端一致性。5.3列舉Hudi0.14MOR表在讀時(shí)合并階段跳過(guò)log文件的三種條件,并給出判斷邏輯。答案:1)base文件footer記錄col_stats,若查詢where條件max/min不包含目標(biāo)值,則跳過(guò)整個(gè)base及對(duì)應(yīng)log;2)log文件的instanttime小于查詢快照時(shí)間且該log內(nèi)無(wú)更新,通過(guò)timeline對(duì)比跳過(guò);3)通過(guò)布隆過(guò)濾器判斷recordkey不存在,則跳過(guò)該log塊。判斷邏輯位于LogFileScanner的shouldSkip方法。6.綜合應(yīng)用題(共60分)6.1(20分)某視頻公司使用Flink1.17實(shí)時(shí)統(tǒng)計(jì)每分鐘用戶播放時(shí)長(zhǎng),數(shù)據(jù)源為Kafkatopic=play_log,格式{user_id,video_id,start_time,end_time,duration},要求:1)寫出FlinkSQL建表語(yǔ)句,指定watermark及partition;2)計(jì)算每分鐘的UV、總播放時(shí)長(zhǎng)、平均播放時(shí)長(zhǎng);3)將結(jié)果寫入Kafkatopic=play_minute;4)給出狀態(tài)TTL為1小時(shí)的設(shè)置方式。答案:1)CREATETABLEplay_log(user_idSTRING,video_idSTRING,start_timeBIGINT,end_timeBIGINT,durationBIGINT,tsASTO_TIMESTAMP_LTZ(start_time,0),WATERMARKFORtsASts-INTERVAL'5'SECOND)WITH('connector'='kafka','topic'='play_log','properties.bootstrap.servers'='kafka:9092','format'='json','scan.startup.mode'='latest-offset');2)CREATEVIEWplay_minuteASSELECTDATE_FORMAT(ts,'yyyy-MM-ddHH:mm')ASminute,COUNT(DISTINCTuser_id)ASuv,SUM(duration)AStotal_duration,AVG(duration)ASavg_durationFROMplay_logGROUPBYDATE_FORMAT(ts,'yyyy-MM-ddHH:mm');3)CREATETABLEplay_minute_sink(minuteSTRING,uvBIGINT,total_durationBIGINT,avg_durationDOUBLE)WITH('connector'='kafka','topic'='play_minute','properties.bootstrap.servers'='kafka:9092','format'='json');INSERTINTOplay_minute_sinkSELECTFROMplay_minute;4)SET'table.exec.state.ttl'='1h';6.2(20分)某電商使用Spark3.4離線計(jì)算用戶標(biāo)簽,原始表user_behavior(dt,user_id,behavior,item_id,ts)為ORC格式,數(shù)據(jù)量每日500GB,需計(jì)算近30天用戶最近行為、行為次數(shù)、行為去重商品數(shù),并將結(jié)果寫入ClickHouse。要求:1)給出SparkSQL實(shí)現(xiàn),使用窗口函數(shù);2)說(shuō)明如何通過(guò)bucket+zorder優(yōu)化;3)給出ClickHouse建表語(yǔ)句,使用ReplacingMergeTree;4)說(shuō)明寫入ClickHouse的并行度設(shè)置。答案:1)SELECTuser_id,FIRST_VALUE(behavior)OVER(PARTITIONBYuser_idORDERBYtsDESCROWSBETWEENUNBOUNDEDPRECEDINGANDUNBOUNDEDFOLLOWING)ASlatest_behavior,COUNT()OVER(PARTITIONBYuser_id)ASbehavior_cnt,COUNT(DISTINCTitem_id)OVER(PARTITIONBYuser_id)ASitem_cntFROMuser_behaviorWHEREdtBETWEENDATE_SUB(CURRENT_DATE,30)ANDCURRENT_DATE;2)寫入前對(duì)user_behavior按user_id分桶200桶并zorderbyuser_id,item_id,可加速按用戶聚合及去重:df.write.bucketBy(200,"user_id").sortBy("user_id","item_id").saveAsTable("user_behavior_bucketed");3)CREATETABLEuser_tag(user_idUInt64,latest_behaviorString,behavior_cntUInt64,item_cntUInt64,update_timeDateTimeDEFAULTnow())ENGINE=ReplacingMergeTree(update_time)PARTITIONBYtoYYYYMM(update_time)ORDERBYuser_id;4)ClickHouseJDBC寫入并行度=ClickHouse分片數(shù)×副本數(shù)×2,假設(shè)8分片2副本,則Spark并發(fā)=32,通過(guò).numPartitions=32控制。6.3(20分)某金融公司使用Trino435聯(lián)邦查詢MySQL、Hive、Elasticsearch,需實(shí)時(shí)計(jì)算客戶風(fēng)險(xiǎn)得分,規(guī)則:近7天交易金額>100萬(wàn)且近30天登錄失敗次數(shù)>5。給出:1)注冊(cè)MySQL、Elasticsearchcatalog的語(yǔ)句;2)寫出跨源SQL,使用WITH子句;3)說(shuō)明如何利用Trino動(dòng)態(tài)過(guò)濾加速;4)給出結(jié)果寫入Redis的函數(shù)實(shí)現(xiàn)。答案:1)CREATECATALOGmysql_catalogUSINGmysqlOPTIONS("connection-ur

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論