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

付費(fèi)下載

下載本文檔

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

文檔簡介

2025年大數(shù)據(jù)技術(shù)師職業(yè)資格考試試題及答案一、單項(xiàng)選擇題(每題1分,共20分。每題只有一個(gè)正確答案,請(qǐng)將正確選項(xiàng)字母填入括號(hào)內(nèi))1.在Hadoop生態(tài)中,負(fù)責(zé)資源管理與任務(wù)調(diào)度的組件是()A.HDFS?B.YARN?C.MapReduce?D.Hive答案:B2.下列關(guān)于KafkaPartition的描述,正確的是()A.一個(gè)Topic只能有一個(gè)PartitionB.Partition數(shù)量一旦創(chuàng)建不可修改C.同一Partition內(nèi)消息保證順序D.ConsumerGroup內(nèi)所有Consumer訂閱不同Partition即出現(xiàn)重復(fù)消費(fèi)答案:C3.SparkRDD的cache()默認(rèn)存儲(chǔ)級(jí)別是()A.MEMORY_ONLY?B.MEMORY_AND_DISK?C.DISK_ONLY?D.OFF_HEAP答案:A4.在Flink的時(shí)間語義中,EventTime是指()A.數(shù)據(jù)進(jìn)入Flink系統(tǒng)的時(shí)間B.數(shù)據(jù)在算子中處理的時(shí)間C.數(shù)據(jù)在源端產(chǎn)生時(shí)攜帶的時(shí)間戳D.數(shù)據(jù)被Sink寫出時(shí)的時(shí)間答案:C5.下列算法中,不屬于聚類算法的是()A.KMeans?B.DBSCAN?C.Apriori?D.GMM答案:C6.HDFS默認(rèn)塊大小為128MB,若文件大小為150MB,則實(shí)際占用塊數(shù)為()A.1?B.2?C.3?D.4答案:B7.在Hive中,分桶表使用的關(guān)鍵字是()A.PARTITIONEDBY?B.CLUSTEREDBY?C.SORTEDBY?D.DISTRIBUTEBY答案:B8.下列關(guān)于數(shù)據(jù)湖的說法,錯(cuò)誤的是()A.支持結(jié)構(gòu)化與半結(jié)構(gòu)化數(shù)據(jù)B.強(qiáng)調(diào)SchemaonReadC.必須基于HDFS實(shí)現(xiàn)D.通常與對(duì)象存儲(chǔ)結(jié)合答案:C9.在Pythonpandas中,將DataFramedf的缺失值用列均值填充的語句是()A.df.fillna(df.mean())B.df.fillna(method='mean')C.df.replace(np.nan,df.mean())D.df.dropna()答案:A10.若某電商訂單表包含列order_id,user_id,sku_id,price,qty,計(jì)算每個(gè)用戶月均消費(fèi)額,SQL中應(yīng)使用的聚合函數(shù)與分組列為()A.sum(priceqty)/30,groupbyuser_idB.avg(priceqty),groupbyuser_idC.sum(priceqty)/count(distinctdate_format(order_time,'yyyymm')),groupbyuser_idD.sum(priceqty),groupbyuser_id,month答案:C11.在Scala中,下列哪個(gè)操作會(huì)觸發(fā)SparkJob執(zhí)行()A.map?B.filter?C.reduceByKey?D.collect答案:D12.使用HBaseRowKey設(shè)計(jì)時(shí),為了避免熱點(diǎn),最佳實(shí)踐是()A.使用自增IDB.使用哈希前綴+時(shí)間戳C.使用連續(xù)字符串D.使用固定長度隨機(jī)字符串答案:B13.在數(shù)據(jù)質(zhì)量評(píng)估指標(biāo)中,重復(fù)率屬于()A.完整性?B.一致性?C.唯一性?D.及時(shí)性答案:C14.若某決策樹模型在訓(xùn)練集上準(zhǔn)確率為100%,測(cè)試集上為60%,則最可能發(fā)生了()A.欠擬合?B.過擬合?C.維度災(zāi)難?D.類別不平衡答案:B15.在Airflow中,定義DAG調(diào)度周期的參數(shù)是()A.schedule_interval?B.start_date?C.dag_id?D.default_args答案:A16.下列關(guān)于數(shù)據(jù)倉庫分層描述,正確的是()A.ODS層為輕度匯總層B.DWD層保留原始數(shù)據(jù)不變C.DWS層面向主題匯總D.ADS層用于ETL開發(fā)調(diào)試答案:C17.在Elasticsearch中,分片Shard數(shù)量在以下哪個(gè)階段可調(diào)整()A.索引創(chuàng)建后任意時(shí)刻B.索引創(chuàng)建前設(shè)置,創(chuàng)建后不可變C.僅可在集群重啟時(shí)調(diào)整D.僅可在節(jié)點(diǎn)擴(kuò)容時(shí)調(diào)整答案:B18.使用PCA降維時(shí),若保留95%方差,則選擇主成分?jǐn)?shù)量的依據(jù)是()A.特征值大于1?B.累計(jì)解釋方差比例>=0.95C.silhouette系數(shù)最大?D.交叉驗(yàn)證準(zhǔn)確率最高答案:B19.在FlinkCheckpoint中,ExactlyOnce語義依賴的核心機(jī)制是()A.異步快照+可重放SourceB.記錄級(jí)別ACKC.兩階段提交+冪等SinkD.A與C答案:D20.若某Spark任務(wù)提交參數(shù)為executormemory4gnumexecutors20,每個(gè)executor4核,則集群并發(fā)Task槽位數(shù)為()A.20?B.40?C.80?D.160答案:C二、多項(xiàng)選擇題(每題2分,共20分。每題至少有兩個(gè)正確答案,多選少選均不得分)21.下列屬于NoSQL數(shù)據(jù)庫的有()A.MongoDB?B.Cassandra?C.Neo4j?D.PostgreSQL答案:ABC22.關(guān)于SparkSQL的Catalyst優(yōu)化器,說法正確的有()A.使用規(guī)則優(yōu)化策略B.支持代價(jià)模型C.生成物理執(zhí)行計(jì)劃D.可直接優(yōu)化RDD算子答案:ABC23.在數(shù)據(jù)治理中,屬于元數(shù)據(jù)管理范疇的有()A.數(shù)據(jù)血緣?B.數(shù)據(jù)字典?C.數(shù)據(jù)質(zhì)量規(guī)則?D.數(shù)據(jù)備份策略答案:ABC24.下列Python庫可用于機(jī)器學(xué)習(xí)的有()A.scikitlearn?B.XGBoost?C.LightGBM?D.Matplotlib答案:ABC25.關(guān)于KafkaConsumerRebalance,觸發(fā)條件包括()A.Consumer加入組B.Consumer崩潰C.Partition數(shù)量增加D.Topic刪除答案:ABC26.在HDFS聯(lián)邦架構(gòu)中,以下說法正確的有()A.多個(gè)NameNode共享存儲(chǔ)B.每個(gè)NameNode管理獨(dú)立命名空間C.DataNode向所有NameNode注冊(cè)D.支持橫向擴(kuò)展NameNode答案:BCD27.下列屬于特征選擇方法的有()A.卡方檢驗(yàn)?B.互信息?C.Lasso回歸?D.隨機(jī)森林特征重要性答案:ABCD28.在FlinkTableAPI中,支持的時(shí)間屬性類型有()A.ProcessingTime?B.IngestionTime?C.EventTime?D.SystemTime答案:ABC29.關(guān)于數(shù)據(jù)脫敏技術(shù),說法正確的有()A.掩碼可用于手機(jī)號(hào)脫敏B.哈??捎糜卩]箱脫敏C.加密后的數(shù)據(jù)可逆D.泛化會(huì)降低數(shù)據(jù)精度答案:ACD30.在A/B測(cè)試中,為降低第二類錯(cuò)誤,可采取的措施有()A.增加樣本量B.提高顯著性水平αC.降低βD.使用雙側(cè)檢驗(yàn)答案:AC三、填空題(每空2分,共20分)31.在Linux中,查看當(dāng)前目錄下各子目錄磁盤使用情況的命令是duhmaxdepth=132.HDFSNameNode元數(shù)據(jù)持久化文件名為fsimage33.Spark中,將RDD[(K,V)]按Key進(jìn)行分區(qū)的算子為partitionBy34.Kafka消息體默認(rèn)最大大小為1MB(1048576字節(jié))35.在SQL中,將字符串日期'20250601'轉(zhuǎn)為時(shí)間戳的函數(shù)為unix_timestamp('20250601','yyyyMMdd')36.Elasticsearch默認(rèn)集群名稱是elasticsearch37.在Python中,使用pandas讀取MySQL的函數(shù)為read_sql38.決策樹算法中,用于分類問題的純度度量指標(biāo)為信息增益或基尼系數(shù)39.在Airflow中,任務(wù)實(shí)例狀態(tài)為upstream_failed表示上游任務(wù)失敗40.若某表列col包含值[1,2,2,3,3,3],則其眾數(shù)為3四、簡答題(共30分)41.(封閉型,6分)簡述MapReduce中Shuffle階段的具體流程,并指出優(yōu)化數(shù)據(jù)傾斜的兩種方法。答案:Shuffle階段包括:1.Map端:每個(gè)MapTask將輸出結(jié)果根據(jù)Partitioner計(jì)算分區(qū),寫入環(huán)形內(nèi)存緩沖區(qū),溢寫前執(zhí)行排序與可選Combiner,生成溢寫文件,最終歸并為一個(gè)分區(qū)且有序的文件。2.Reduce端:通過HTTP拉取對(duì)應(yīng)分區(qū)的數(shù)據(jù),進(jìn)行歸并排序,為Reduce計(jì)算準(zhǔn)備有序輸入。數(shù)據(jù)傾斜優(yōu)化:1.自定義Partitioner,將熱點(diǎn)Key分散到多個(gè)區(qū)。2.在Map端增加隨機(jī)前綴,Reduce端再去前綴聚合,實(shí)現(xiàn)兩階段聚合。42.(開放型,8分)某電商公司每日新增訂單數(shù)據(jù)量約500GB,需構(gòu)建實(shí)時(shí)數(shù)倉,要求秒級(jí)延遲,請(qǐng)給出技術(shù)選型和架構(gòu)簡圖文字描述,并說明理由。答案:選型:1.采集層:Kafka,支持高吞吐、低延遲,按訂單ID做Key保證順序。2.計(jì)算層:Flink,提供ExactlyOnce、EventTime、維表Join能力。3.存儲(chǔ)層:明細(xì):HBase+Phoenix,支持秒寫百萬級(jí),RowKey設(shè)計(jì)為hash(order_id)+order_id避免熱點(diǎn);匯總:ClickHouse,列式存儲(chǔ),毫秒級(jí)OLAP查詢。4.維表:MySQL+Binlog,通過KafkaConnect同步到HBase。5.調(diào)度:Airflow管理離線補(bǔ)償任務(wù)。架構(gòu)文字描述:訂單APP→KafkaTopic→FlinkJob消費(fèi),維表Join后雙寫:①HBase明細(xì);②ClickHouse預(yù)匯總。監(jiān)控用Grafana+Prometheus,延遲<3s,峰值QPS12萬,橫向擴(kuò)展FlinkTaskManager即可。43.(封閉型,6分)給出使用SparkDataFrameAPI完成“用戶留存率”計(jì)算的偽代碼,定義次日留存率為新增用戶在次日再次登錄的比例。答案:```python假設(shè)表:user_login(user_id:Long,login_date:Date)df=spark.table("user_login")去重每日登錄df1=df.dropDuplicates(["user_id","login_date"])獲取新增用戶:首次登錄日new_user=df1.groupBy("user_id").agg(min("login_date").alias("reg_date"))關(guān)聯(lián)次日登錄joined=new_user.join(df1,"user_id")\.filter(datediff(df1.login_date,new_user.reg_date)==1)計(jì)算留存retention=joined.groupBy("reg_date")\.agg(countDistinct("user_id").alias("retain_cnt"))\.join(new_user.groupBy("reg_date").count(),"reg_date")\.withColumn("retention_rate",col("retain_cnt")/col("count"))\.select("reg_date","retention_rate")retention.show()```44.(開放型,10分)某市交通部門提供出租車GPS點(diǎn)數(shù)據(jù),字段:vehicle_id,longitude,latitude,timestamp,數(shù)據(jù)量每日200億條,需識(shí)別“載客點(diǎn)”(即司機(jī)接單位置)。請(qǐng)給出完整的大數(shù)據(jù)處理方案,包括存儲(chǔ)、預(yù)處理、算法設(shè)計(jì)、結(jié)果輸出,并評(píng)估復(fù)雜度。答案:1.存儲(chǔ):原始:HDFS按日分區(qū),Parquet壓縮,Snappy編碼,3副本,約3TB/日。索引:HBaseRowKey=hash(vehicle_id)+vehicle_id+timestamp,列族f,列g(shù)ps,TTL=30天。2.預(yù)處理:Flink流:滑動(dòng)窗口5分鐘,計(jì)算vehicle_id速度=dist(lat,lon)/Δt,若速度<5km/h且狀態(tài)由“空駛”→“載客”,則標(biāo)記為候選點(diǎn)。狀態(tài)管理:ValueState保存上一記錄空駛/載客字段,來自車載終端MQTT。3.算法:DBSCAN離線聚類,eps=30m,minPts=10,剔除噪聲;對(duì)聚類中心,計(jì)算上下車頻次,取Top5%為高載客熱點(diǎn)。4.輸出:熱點(diǎn)表:ClickHouse,字段cluster_id,lat,lon,pickup_cnt,update_time;API:SpringBoot+Redis緩存,QPS2萬,P99<50ms。5.復(fù)雜度:時(shí)間:O(nlogn)n=200億,F(xiàn)link并行度2048,窗口計(jì)算<10分鐘;空間:Parquet壓縮比7:1,存儲(chǔ)約430GB/日;聚類:采樣10%即20億點(diǎn),DBSCAN單機(jī)優(yōu)化版運(yùn)行2小時(shí)。五、應(yīng)用題(共60分)45.(計(jì)算類,15分)某互聯(lián)網(wǎng)公司使用HBase存儲(chǔ)用戶畫像,表結(jié)構(gòu):rowkey=hash(user_id)+user_id,列族f,列tags,值保存JSON數(shù)組如["sport","music"]?,F(xiàn)需統(tǒng)計(jì)“愛好為music且年齡在1825歲之間的用戶數(shù)”。已知數(shù)據(jù)量10億行,JSON平均長度200B,RegionServer共100臺(tái),每臺(tái)16核64GB。請(qǐng)給出:(1)RowKey掃描方案;(2)使用SparkonHBase的完整代碼;(3)估算執(zhí)行時(shí)間。答案:(1)無法直接按屬性過濾,需全表掃描,利用Spark并發(fā):InputFormat按Region切分,100Region→1000分區(qū)(設(shè)置spark.hbase.region.max.partition=1000)。(2)代碼:```pythonspark=SparkSession.builder.appName("music_young").getOrCreate()conf={"hbase.mapreduce.inputtable":"userprofile","hbase.mapreduce.scan.columns":"f:tags"}hbase_rdd=spark.sparkContext.newAPIHadoopRDD("org.apache.hadoop.hbase.mapreduce.TableInputFormat","org.apache.hadoop.hbase.io.ImmutableBytesWritable","org.apache.hadoop.hbase.client.Result",conf=conf)defparse(r):row=r[1]json_str=bytes(row.getValue(b'f',b'tags')).decode('utf8')tags=json.loads(json_str)age=int(tags.get("age",0))return("music"intags.get("hobby",[]))and18<=age<=25count=hbase_rdd.filter(parse).count()print(count)```(3)估算:每行200B,10億行≈200GB,HBase讀吞吐80MB/s/RegionServer,總吞吐8GB/s,理論最短時(shí)間25s;加上Spark序列化、GC、調(diào)度,實(shí)際約35分鐘。46.(分析類,15分)給定電商訂單表order(order_id,user_id,sku_id,price,qty,order_time),尺寸1TB,字段均非空。要求計(jì)算“每小時(shí)GMV及同比上周增長率”,輸出字段:hour,gmv,growth。請(qǐng)寫出FlinkSQL完整語句,并說明狀態(tài)存儲(chǔ)策略。答案:```sqlCREATETABLEorder_stream(order_idSTRING,user_idSTRING,sku_idSTRING,priceDOUBLE,qtyINT,order_timeTIMESTAMP(3),WATERMARKFORorder_timeASorder_timeINTERVAL'5'SECOND)WITH('connector'='kafka','topic'='order','properties.bootstrap.servers'='kafka:9092','format'='json');CREATEVIEWhourly_gmvASSELECTTUMBLE_START(order_time,INTERVAL'1'HOUR)AShour,SUM(priceqty)ASgmvFROMorder_streamGROUPBYTUMBLE(order_time,INTERVAL'1'HOUR);SELECTh.hour,h.gmv,(h.gmvLAG(h.gmv,168)OVER(ORDERBYh.hour))/LAG(h.gmv,168)OVER(ORDERBYh.hour)ASgrowthFROMhourly_gmvh;```狀態(tài)存儲(chǔ):使用RocksDBStateBackend,保留7天,Checkpoint1分鐘,增量快照,狀態(tài)大小約2GB(每小時(shí)一條,雙精度+時(shí)間戳)。47.(綜合類,30分)某短視頻平臺(tái)擬構(gòu)建“實(shí)時(shí)熱點(diǎn)視頻榜”,需求:1.統(tǒng)計(jì)近1小時(shí)播放量、點(diǎn)贊量、分享量,綜合得分=播放0.5+點(diǎn)贊10+分享20;2.榜單Top100每分鐘更新;3.延遲<5s;4.數(shù)據(jù)輸入:Kafkatopic=video_event,格式:{video_id:string,event_type:string,ts:long},event_type∈{play,like,share},峰值QPS80萬。任務(wù):(1)給出Flink作業(yè)DAG圖文字描述;(2)寫出核心代碼(Java/Scala均可);(3)計(jì)算所需TaskSlot數(shù)及內(nèi)存;(4)給出端到端一致性保障方案。答案:(1)DAG:Source(Kafka)→ProcessFunction(解析)→KeyBy(video_id)→Window(滑動(dòng)1小時(shí),步長1分鐘)→Aggregate(累加播放、點(diǎn)贊、分享)→ProcessWindowFunction(計(jì)算得分)→TopN(100)→Sink(RedisSortedSet)。(2)Scala代碼:```scalacaseclassEvent(video_id:String,et:String,ts:Long)caseclassCounts(play:Long,like:Long,share:Long){defscore:Double=play0.5+like10+share20}valenv=StreamExecutionEnvironment.getExecutionEnvironmentenv.enableCheckpointing(5000)env.setStateBackend(newRocksDBStateBackend("hdfs://ns/flink/checkpoint",true))valkafkaSrc=KafkaSource.builder().setBootstrapServers("kafka:9092").setTopics("video_event").setGroupId("hotrank").setValueOnlyDeserializer(newJSONDeser[Event]).build()valstream=env.fromSource(kafkaSrc,WatermarkStrategy.forBoundedOutOfOrderness(Duration.ofSeconds(3)),"kafka").keyBy(_.video_id).window(SlidingEventTimeWindows.of(Time.hours(1),Time.minutes(1))).aggregate(newCountAgg(),newWindowResult()).windowAll(TumblingProcessingTimeWindows.of(Time.minutes(1))).process(newTopN(100)).addSink(newRedisSink(...))env.execute("hotrank")classCountAggextendsAggregateFunction[Event,Counts,Counts]{defcreateAccumulator()=Counts(0,0,0)defadd(e:Event,acc:Counts)=e.etmatch{case"play"=>acc.copy(play=acc.play+1)case"like"=>acc.copy(like=acc.like+1)case"share"=>acc.copy(share=acc.share+1)}defgetResult(acc:Counts)=accdefmerge(a:Count

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論