2025年大数据练习试题附答案_第1页
2025年大数据练习试题附答案_第2页
2025年大数据练习试题附答案_第3页
2025年大数据练习试题附答案_第4页
2025年大数据练习试题附答案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

2025年大数据练习试题附答案一、单项选择题(每题2分,共30分)1.关于HDFS的存储机制,以下描述错误的是()。A.默认块大小为128MBB.数据副本数默认3个C.元数据由NameNode管理D.单个文件大小不能超过块大小总和答案:D(HDFS支持单个文件大于块大小,通过多块存储)2.Spark中,以下操作属于行动(Action)操作的是()。A.map()B.filter()C.reduce()D.flatMap()答案:C(reduce()触发计算并返回结果,属于行动操作)3.数据倾斜(DataSkew)最可能导致的问题是()。A.计算资源浪费B.数据丢失C.网络传输延迟降低D.任务并行度提升答案:A(倾斜导致部分任务处理大量数据,其他任务空闲,资源利用率低)4.Kafka中,消费者组(ConsumerGroup)的核心作用是()。A.提高生产者吞吐量B.实现消息广播或负载均衡C.管理Topic的分区D.保证消息ExactlyOnce语义答案:B(同一组内消费者负载均衡,不同组间广播)5.以下不属于数据湖(DataLake)典型特征的是()。A.存储多格式数据(如CSV、Parquet、JSON)B.支持事务(ACID)C.面向结构化数据设计D.原生支持文件级存储答案:C(数据湖支持结构化、半结构化、非结构化数据)6.Hive中,若要将表数据存储为列式存储格式,通常推荐使用()。A.TextFileB.ORCC.SequenceFileD.RCFile答案:B(ORC是Hive优化的列式存储,压缩和查询效率更高)7.Flink中,时间窗口(TimeWindow)的触发条件是()。A.窗口内数据量达到阈值B.事件时间或处理时间到达窗口结束点C.检查点(Checkpoint)完成D.水位线(Watermark)超过窗口结束时间答案:D(Flink通过水位线判断延迟数据,触发窗口计算)8.关于数据仓库(DataWarehouse)与数据湖的区别,以下描述正确的是()。A.数据仓库仅存储结构化数据,数据湖存储多类型数据B.数据仓库支持实时写入,数据湖仅支持批量写入C.数据仓库无模式(Schema-on-Write),数据湖有模式(Schema-on-Read)D.数据仓库面向分析,数据湖面向事务答案:A(数据仓库通常处理结构化数据,数据湖支持多格式)9.以下哪个工具常用于大数据集群的资源管理?()A.HBaseB.YARNC.ZooKeeperD.Sqoop答案:B(YARN是Hadoop的资源管理框架)10.若需将关系型数据库(如MySQL)的全量数据导入HDFS,最适合的工具是()。A.FlumeB.KafkaC.SqoopD.Flink答案:C(Sqoop专用于关系型数据库与Hadoop间的数据迁移)11.SparkRDD的持久化(Persist)操作中,存储级别“MEMORY_AND_DISK_SER”表示()。A.仅内存存储,序列化B.内存不足时溢写磁盘,序列化C.仅磁盘存储,序列化D.内存和磁盘同时存储,非序列化答案:B(MEMORY_AND_DISK_SER表示优先内存存储序列化数据,内存不足则落盘)12.数据治理的核心目标是()。A.提高数据处理速度B.确保数据质量、安全性和可追溯性C.减少存储成本D.简化数据查询逻辑答案:B(数据治理关注数据全生命周期的管理与质量保障)13.以下哪项不是Kafka的设计目标?()A.高吞吐量B.低延迟C.消息持久化D.强一致性(如RDBMS的ACID)答案:D(Kafka侧重高吞吐和持久化,不保证强一致性)14.在HBase中,RowKey的设计原则不包括()。A.散列化(避免热点)B.长度尽可能长C.按查询需求排序D.唯一性答案:B(RowKey过长会增加存储和查询开销,需尽量简短)15.关于机器学习在大数据中的应用,以下描述错误的是()。A.聚类算法可用于用户分群B.分类算法可用于预测用户流失C.回归算法仅适用于结构化数据D.协同过滤可用于推荐系统答案:C(回归算法可处理结构化和部分半结构化数据)二、填空题(每空2分,共20分)1.Hadoop3.x中,HDFS的默认块大小是______MB。答案:1282.SparkSQL的核心抽象是______,它是带有元数据的分布式数据集。答案:DataFrame3.Kafka中,Topic的分区(Partition)数量决定了消费者组的最大______。答案:并行度4.数据清洗的常见操作包括去重、______、填充缺失值、纠正错误数据等。答案:格式标准化(或“异常值处理”)5.Flink的状态后端(StateBackend)用于存储和管理______,常见类型有MemoryStateBackend、FsStateBackend等。答案:算子状态6.数据湖仓(Lakehouse)结合了数据湖的灵活性和数据仓库的______特性。答案:事务(或“ACID”)7.Hive的元数据(Metadata)默认存储在______数据库中(填写数据库名称)。答案:MySQL8.分布式计算中,______问题指不同节点间因网络延迟导致的数据不一致现象。答案:一致性(或“CAP中的C”)9.实时数据处理中,______机制用于平衡吞吐量和延迟,常见策略有时间触发、计数触发。答案:窗口(或“Window”)10.大数据平台的高可用(HA)通常通过______技术实现,如NameNode的主备切换。答案:主从复制(或“ZooKeeper协调”)三、简答题(每题8分,共40分)1.简述HadoopYARN的架构组成及各组件的核心功能。答案:YARN架构包括ResourceManager(RM)、NodeManager(NM)和ApplicationMaster(AM)。-RM:全局资源管理器,负责集群资源的统一分配与管理,监控NM状态。-NM:节点级代理,管理单个节点的资源(CPU、内存),启动/监控Container,向RM汇报状态。-AM:应用程序的“管理者”,向RM申请资源(Container),协调任务执行,监控任务状态。2.数据倾斜的常见检测方法及解决策略有哪些?答案:检测方法:-任务日志分析:观察任务执行时间,若某任务耗时远高于其他,可能存在倾斜。-统计分区数据量:通过SQL或Spark的count()按key分组,查看是否有异常大的key。解决策略:-增加并行度:通过调整参数(如spark.sql.shuffle.partitions)增加分区数,分散数据。-拆分热点key:对高频key添加随机前缀,分散到不同分区,聚合后去前缀。-过滤无效数据:提前过滤异常大的key(如测试数据)。-使用自定义分区器:根据业务规则重新分配key。3.说明Kafka的ISR(In-SyncReplicas)机制及其作用。答案:ISR是与Leader副本保持同步的Follower副本集合。作用:-保证消息可靠性:仅ISR中的Follower可参与Leader选举,避免数据丢失。-控制消息确认(Ack):生产者设置acks=all时,需ISR中所有副本确认后才提交消息。维护机制:Follower需定期向Leader发送Fetch请求并同步数据,若延迟超过阈值(如replica.lag.time.max.ms),则被移出ISR;同步后重新加入。4.对比SparkRDD与DataFrame的区别,并说明各自适用场景。答案:区别:-数据结构:RDD是无结构的分布式数据集(仅记录数据),DataFrame是带Schema的二维表(包含列名和类型)。-性能:DataFrame通过Catalyst优化器进行逻辑和物理计划优化,执行效率通常高于RDD。-编程接口:RDD基于函数式编程(如map、reduce),DataFrame支持SQL和类SQL操作(如select、groupBy)。适用场景:-RDD:需要细粒度控制数据处理逻辑(如复杂的迭代算法)、非结构化数据(如日志)。-DataFrame:结构化/半结构化数据处理(如业务报表、用户行为分析)、需要高性能查询的场景。5.数据仓库分层设计的意义是什么?请列举常见的分层结构并说明各层作用。答案:意义:通过分层实现数据解耦,提升可维护性;避免重复计算,降低存储成本;明确数据流向,便于问题定位。常见分层(以四分层为例):-ODS(操作数据层):存储原始数据(如业务数据库备份、日志文件),保持“原始性”,不做清洗。-DWD(细节数据层):对ODS数据清洗(去重、脱敏、补全),统一格式,提供原子性的明细数据。-DWS(汇总数据层):基于DWD数据按主题域聚合(如按用户、按天),提供宽表或轻度汇总数据,提升查询效率。-ADS(应用数据层):直接对接业务需求,存储报表、指标等结果数据(如用户留存率、销售额TOP10商品)。四、应用题(共30分)1.(10分)某电商平台需用SparkSQL计算用户“次日留存率”(即当日首次访问的用户中,次日再次访问的比例)。已知用户行为日志表(user_behavior)包含字段:user_id(用户ID)、event_time(事件时间,格式为“yyyy-MM-ddHH:mm:ss”)。请写出分析步骤及关键SQL代码。答案:步骤:①提取用户每日首次访问时间:按user_id分组,取event_time的最小值作为首次访问日期(first_date)。②关联首次访问日期与次日访问记录:判断用户在first_date+1天是否有访问记录。③计算留存用户数与总用户数的比例。关键SQL代码:```sql--步骤1:计算用户首次访问日期WITHfirst_visitAS(SELECTuser_id,DATE(MIN(event_time))ASfirst_dateFROMuser_behaviorGROUPBYuser_id)--步骤2:计算次日是否留存,retention_flagAS(SELECTf.user_id,f.first_date,CASEWHENCOUNT(ub.user_id)>0THEN1ELSE0ENDASis_retentionFROMfirst_visitfLEFTJOINuser_behaviorubONf.user_id=ub.user_idANDDATE(ub.event_time)=DATE_ADD(f.first_date,1)GROUPBYf.user_id,f.first_date)--步骤3:计算次日留存率SELECTfirst_date,SUM(is_retention)1.0/COUNT(user_id)ASretention_rateFROMretention_flagGROUPBYfirst_date;```2.(10分)设计一个实时数据处理架构,用于监控某IoT设备的温度数据(每秒产生1万条,格式为JSON:{"device_id":"d001","temp":30.5,"timestamp":1718234567})。要求:①支持高吞吐数据采集;②实时计算每5分钟各设备的平均温度;③结果存储至HBase。请画出架构图(文字描述即可)并说明各组件作用。答案:架构设计(从数据流程描述):①数据采集层:使用Flume部署多个Agent,安装在IoT设备服务器上,通过TailSource监听日志文件,或通过NetcatSource接收UDP/TCP发送的JSON数据,将数据汇聚到Kafka。②消息缓冲层:Kafka作为消息队列,创建Topic(如iot_temp_topic),设置多个分区(如6个),利用高吞吐特性缓冲数据,避免下游处理压力。③实时计算层:Flink作为流处理引擎,从Kafka消费数据,使用EventTime+Watermark处理乱序数据;定义5分钟滚动窗口(TumblingWindow),按device_id分组,计算窗口内temp的平均值。④结果存储层:Flink将计算后的平均温度(device_id,avg_temp,window_end_time)写入HBase,RowKey设计为“device_id_窗口结束时间”,列族存储avg_temp等指标。⑤监控层:集成Prometheus+Grafana,监控Kafka的消息堆积、Flink的延迟、HBase的写入QPS,确保系统稳定性。3.(10分)某企业计划构建湖仓一体(Lakehouse)平台

温馨提示

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

评论

0/150

提交评论