2026年大数据技术与应用考试卷及答案_第1页
2026年大数据技术与应用考试卷及答案_第2页
2026年大数据技术与应用考试卷及答案_第3页
2026年大数据技术与应用考试卷及答案_第4页
2026年大数据技术与应用考试卷及答案_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

2026年大数据技术与应用考试卷及答案一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填在括号内)1.在Hadoop2.x生态系统中,负责资源管理和调度的组件是()。A.HDFSB.MapReduceC.YARND.ZooKeeper2.HDFS文件系统默认的数据块大小为()。A.64MBB.128MBC.256MBD.512MB3.下列关于HDFS小文件问题的描述中,错误的是()。A.小文件过多会导致NameNode内存消耗过大B.小文件过多会降低寻址时间占比,影响处理效率C.可以通过SequenceFile或HarArchive方式合并小文件D.HDFS天生适合处理大量小文件4.在MapReduce编程模型中,主要用于将Map输出的数据进行合并、排序并传输给Reduce阶段的阶段是()。A.Split阶段B.Map阶段C.Shuffle阶段D.Reduce阶段5.SparkRDD的五大特性中,不包括()。A.分区列表B.依赖关系C.计算函数D.可变性6.下列哪个算子属于Spark中的Action算子,会触发Job的提交?()A.mapB.filterC.reduceByKeyD.count7.Hive中,内部表和外部表的主要区别在于()。A.存储格式不同B.分区方式不同C.删除表时是否删除元数据和HDFS上的实际数据D.压缩算法不同8.HBase是基于列式存储的NoSQL数据库,其数据在物理存储上是按照()存储的。A.RowB.ColumnC.ColumnFamilyD.Region9.在Flume架构中,用于连接Source和Channel的组件是()。A.SinkB.InterceptorC.SelectorD.Agent10.Kafka中,消息是按照什么顺序存储在Topic的Partition中的?()A.Key的哈希值B.消息发送的时间戳C.消息到达Broker的顺序D.消息的大小11.下列关于ZooKeeper的描述,正确的是()。A.ZooKeeper是一个分布式文件系统B.ZooKeeper主要用于存储大量非结构化数据C.ZooKeeper提供了分布式协调服务,如配置维护、命名服务D.ZooKeeper的数据模型是图结构12.在SparkSQL中,将RDD转换为DataFrame的两种方式是()。A.反射推断和编程指定SchemaB.序列化和反序列化C.缓存和持久化D.广播变量和累加器13.Flink相比SparkStreaming,在流处理领域的一个显著优势是()。A.只能处理微批处理B.基于事件时间的精确一次语义支持更好C.吞吐量一定比Spark高D.不支持状态管理14.适合用于维度表建模,数据更新频率较低,主要进行查询操作的NoSQL数据库是()。A.HBaseB.RedisC.MongoDBD.Cassandra15.在数据仓库建模中,星型模型和雪花型模型的主要区别在于()。A.事实表的结构不同B.维度表是否规范化C.测度值的计算方式不同D.支持的查询语言不同16.Sqoop工具的主要作用是()。A.HDFS之间的数据传输B.关系型数据库与Hadoop之间的数据传输C.Hive与HBase之间的数据传输D.日志采集17.Spark中,用于解决数据倾斜的算子是()。A.repartitionB.coalesceC.broadcastD.sample18.下列关于HDFS副本放置策略的描述,正确的是()。A.第一个副本放在Client所在节点B.第二个副本放在同机架的不同节点C.第三个副本放在不同机架的节点D.所有副本都放在同一机架以保证速度19.在Hive中,使用ORDERBY语句进行全局排序时,必须保证()。A.Reduce任务数量为1B.Map任务数量为1C.开启了向量化查询D.使用了Tez引擎20.针对海量数据的实时OLAP分析,常用的列式存储引擎是()。A.MySQLB.OracleC.ClickHouseD.SQLite二、多项选择题(本大题共10小题,每小题3分,共30分。在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填在括号内。错选、多选、少选均不得分)1.下列属于Hadoop生态系统核心组件的有()。A.HDFSB.MapReduceC.YARND.HBaseE.Spark2.Spark的运行模式包括()。A.Local模式B.Standalone模式C.YARN模式D.Mesos模式E.Kubernetes模式3.下列哪些算子会导致SparkRDD之间的依赖关系为窄依赖?()A.mapB.filterC.unionD.groupByKeyE.join4.HBase中RegionServer宕机后,HMaster的处理流程包括()。A.感知到RegionServer宕机B.重新分配该RegionServer上的RegionC.恢复WAL(Write-AheadLog)中的数据D.删除ZooKeeper上的临时节点E.直接丢弃内存中的MemStore数据5.Kafka生产者发送消息的方式有()。A.发送并忘记B.同步发送C.异步发送D.广播发送E.事务发送6.Hive中常用的文件存储格式有()。A.TextFileB.SequenceFileC.RCFileD.ORCE.Parquet7.下列关于数据清洗的描述,正确的有()。A.处理缺失值是数据清洗的重要环节B.去除重复数据可以提高数据质量C.数据清洗通常在数据加载后进行D.异常值检测不属于数据清洗范畴E.数据一致性检查是必要的8.SparkStreaming中的DStream可以通过以下哪种方式创建?()A.socketTextStreamB.textFileStreamC.createDirectStream(Kafka)D.createQueueStreamE.parallelize9.Redis支持的数据结构包括()。A.StringB.HashC.ListD.SetE.SortedSet10.下列属于大数据特征(4V/5V)的有()。A.Volume(大量)B.Velocity(高速)C.Variety(多样)D.Value(低价值密度)E.Veracity(真实性)三、填空题(本大题共15小题,每小题2分,共30分)1.HDFS采用__________架构,包含NameNode、DataNode和SecondaryNameNode。2.在MapReduce中,默认的InputFormat类是__________,它处理文本文件并将每行记录解析为键值对。3.SparkRDD的缓存算子是__________,它可以指定存储级别。4.Hive的metastore默认使用__________数据库来存储元数据。5.HBase中,数据在写入时首先写入到内存结构__________中。6.Flume的核心组件是Agent,由Source、__________和Sink组成。7.Kafka中,__________用于管理集群的元数据和Controller选举。8.在Scala中,__________是所有类的父类。9.Flink中的窗口可以分为时间窗口、计数窗口和__________窗口。10.Spark中,__________变量可以在所有Task间共享只读数据,避免重复拷贝。11.YARN中,负责向ApplicationMaster分配资源的组件是__________。12.HDFS的默认端口号是__________。13.在Hive中,__________子句用于将查询结果插入到表中。14.为了保证数据的一致性,HBase实现了__________机制。15.数据仓库的分层架构中,DWD层通常被称为__________层。四、判断题(本大题共10小题,每小题1分,共10分。正确的打“√”,错误的打“×”)1.HDFS支持文件的随机写入操作,即可以在文件任意位置修改数据。()2.Spark是惰性求值的,只有遇到Action算子时才会真正执行计算。()3.HiveQL完全等同于标准SQL,支持所有SQL-92标准语法。()4.HBase是强一致性的系统,读取数据一定能读到最新写入的数据。()5.Kafka消费者组中的每个消费者可以同时消费同一个Topic的不同分区。()6.ZooKeeper的ZNode可以存储大量数据,建议每个节点存储GB级别的数据。()7.MapReduce中,Reduce任务的数量决定了最终输出文件的数量。()8.SparkSQL可以直接操作Hive表,前提是Spark配置了Hive的支持。()9.Flume的MemoryChannel是将数据存储在磁盘上,因此数据安全性最高。()10.布隆过滤器可以用于判断一个元素是否绝对在一个集合中。()五、简答题(本大题共6小题,每小题10分,共60分)1.简述HDFS的读写流程。2.解释SparkRDD中窄依赖和宽依赖的区别,并说明它们对Stage划分的影响。3.简述Hive内部表和外部表的区别及其应用场景。4.什么是CAP理论?NoSQL数据库通常如何在CAP之间进行权衡?5.简述Kafka的高吞吐量设计原理。6.在数据仓库建设中,为什么要进行数据分层(如ODS、DWD、DWS、ADS)?简述各层的主要作用。六、综合应用题(本大题共3小题,共40分)1.(本题15分)假设有一份海量电商订单数据(字段:order_id,user_id,product_id,amount,pay_time),存储在HDFS中。(1)请使用HiveSQL编写语句,统计每日的订单总金额和订单总数。(2)请使用HiveSQL编写语句,找出累计消费金额排名前10的用户。(3)如果数据存在严重的数据倾斜(例如某几个用户下单量极大),在MapReduce或Spark任务中通常有哪些优化策略?2.(本题15分)使用Scala编写Spark代码,实现以下功能:输入一个包含单词的文本文件RDD,统计每个单词出现的频率(词频统计WordCount),并按词频降序排列,取前5个单词。要求:(1)写出完整的Spark应用程序伪代码/关键代码。(2)解释代码中涉及的算子(如flatMap,mapToPair,reduceByKey等)的作用。3.(本题10分)设计一个实时日志采集与分析系统架构。背景:某Web应用需要实时统计每分钟的页面访问量(PV)和独立访客数(UV)。要求:(1)画出架构简图或描述数据流向。(2)说明每个环节使用的核心技术组件(如日志采集、消息队列、流计算、结果存储)。(3)针对UV统计,说明如何利用Redis或HyperLogLog进行去重计算。参考答案与解析一、单项选择题1.C2.B3.D4.C5.D6.D7.C8.C9.A10.C11.C12.A13.B14.C15.B16.B17.A18.C19.A20.C二、多项选择题1.ABC2.ABCDE3.ABC4.ABCD5.ABCE6.ABCDE7.ABCE8.ABC9.ABCDE10.ABCDE三、填空题1.Master/Slave2.TextInputFormat3.persist4.Derby(或MySQL)5.MemStore6.Channel7.Broker8.Any9.会话10.广播11.Scheduler12.8020(或9000,视版本而定)13.INSERTOVERWRITE/INSERTINTO14.MVCC(多版本并发控制)15.明细数据四、判断题1.×2.√3.×4.√5.√6.×7.√8.√9.×10.×五、简答题1.简述HDFS的读写流程。答:(1)读流程:Client调用DistributedFileSystem.open()方法打开文件。RPC调用NameNode,获取文件块的位置信息(按距离Client由近到远排序)。Client创建FSDataInputStream,依次读取块。读取数据时,Client连接最近的DataNode,通过流式传输读取数据。读完一个块后,关闭连接,寻找下一个块的最近DataNode。读取完毕,关闭流。(2)写流程:Client调用create()方法创建文件。RPC调用NameNode,在命名空间中创建新文件,NameNode检查权限和文件是否存在。Client创建FSDataOutputStream,开始写入数据。数据被分割成Packet,写入DataQueue队列。DataStreamer线程从队列取出Packet,请求NameNode分配新的DataNode。Client以Pipeline(管道)方式向第一个DataNode写入,第一个DN传给第二个,第二个DN传给第三个。每个Packet写入Pipeline后,会返回ACK确认队列。写完数据后,调用close(),将数据流刷入所有DataNode,通知NameNode提交文件。2.解释SparkRDD中窄依赖和宽依赖的区别,并说明它们对Stage划分的影响。答:区别:窄依赖:父RDD的一个分区最多被子RDD的一个分区使用(一对一)。例如map,filter,union。窄依赖通常不发生Shuffle。宽依赖:父RDD的一个分区被子RDD的多个分区使用(一对多)。例如groupByKey,reduceByKey,join。宽依赖涉及Shuffle过程。对Stage划分的影响:Spark根据RDD的依赖关系(DAG)划分Stage。遇到宽依赖时,会划分一个新的Stage。每个Stage内部包含一系列窄依赖的算子,可以以流水线方式在一个Task中高效执行。Stage的边界就是宽依赖发生的Shuffle操作。3.简述Hive内部表和外部表的区别及其应用场景。答:区别:删除表时:内部表(MANAGED_TABLE)会同时删除元数据和HDFS上存储的实际数据;外部表(EXTERNAL_TABLE)仅删除元数据,HDFS上的数据保留。创建语法:外部表需要指定EXTERNAL关键字。应用场景:内部表:适用于数据由Hive全权管理,不需要与其他工具共享数据,临时表或中间表通常使用内部表。外部表:适用于数据已经在HDFS上存在,或者需要被多个工具(如Pig,Spark,HBase)共享的场景。导入原始日志数据时通常使用外部表,以防误删导致数据丢失。4.什么是CAP理论?NoSQL数据库通常如何在CAP之间进行权衡?答:CAP理论:分布式系统无法同时满足一致性、可用性和分区容错性。在分布式系统中,P是客观存在的(网络故障),因此只能在C和A之间权衡。权衡:CP模型:保证一致性,牺牲部分可用性。当分区发生时,系统可能拒绝请求以保证数据一致。如HBase,Redis,MongoDB。AP模型:保证可用性,牺牲强一致性。允许数据在短时间内不一致,最终达到一致。如Cassandra,DynamoDB。CA模型:在分布式系统中很难实现,通常用于单机系统(如RDBMS)。5.简述Kafka的高吞吐量设计原理。答:顺序读写:Kafka将消息追加到日志文件末尾,利用磁盘的顺序写速度远快于随机写。零拷贝:使用sendfile系统调用,数据直接从磁盘文件复制到网卡接口,跳过用户态和内核态的多次上下文切换和内存拷贝。页缓存:充分利用操作系统的PageCache,将数据缓存在内存中,减少物理I/O。批量发送:支持将多条消息打包成一批发送,减少网络请求开销。分区并发:通过Partition将数据分散到多个Broker,实现并行读写。6.在数据仓库建设中,为什么要进行数据分层?简述各层的主要作用。答:原因:清晰结构:通过分层细化数据结构,便于管理。数据复用:避免重复计算,公共指标在中间层计算一次即可。空间换时间:预计算中间结果,提高下游查询速度。简化复杂逻辑:将复杂逻辑拆解到不同层,便于问题排查。各层作用:ODS(OperationalDataStore):贴源层,保持与原数据一致,不做修改。DWD(DataWarehouseDetail):明细数据层,对ODS数据进行清洗、规范化、脱敏。DWS(DataWarehouseService):服务数据层/汇总层,基于DWD进行轻度汇总,如按天、用户聚合。ADS(ApplicationDataStore):应用数据层,面向具体业务需求的高度聚合数据,直接供报表或应用使用。六、综合应用题1.答:(1)统计每日订单总金额和订单总数:```sqlSELECTDATE(pay_time)aspay_date,SUM(amount)astotal_amount,COUNT(order_id)astotal_ordersFROMorder_tableGROUPBYDATE(pay_time);```(2)找出累计消费金额排名前10的用户:```sqlSELECTuser_id,SUM(amount)astotal_consumptionFROMorder_tableGROUPBYuser_idORDERBYtotal_consumptionDESCLIMIT10;```(3)数据倾斜优化策略:MapReduce端:开启Map端聚合,减少传输数据量。自定义Partitioner,将倾斜的Key分散到不同的Reducer。设置Reduce任务个数,避免单个Reducer过载。Spark端:使用Salting(加盐)技术:给倾斜的Key添加随机前缀(如0-9),将其打散到不同Partition,聚合后再去掉前缀进行二次聚合。提高并行度:repartition或调整spark.sql.shuffle.partitions。将倾斜的数据单独拉出来处理(BroadcastJoin如果维度表小,或者单独处理HotKey)。使用近似算法(如approx_distinct)如果业务允许。2.答:(1)ScalaSparkWordCount代码:```scalaimportorg.apache.spark.{SparkConf,SparkContext}objectWordCount{defmain(args:Array[String]):Unit={valconf=newSparkConf().setAppName("WordCount").setMaster("local[*]")valsc=newSparkContext(conf)//读取文件vallines=sc.textFile("hdfs://path/to/input.txt")//词频统计valwordCounts=lines.flatMap(line=>line.split(""))//拆分单词.map(word=>(word,1))//转换为键值对.reduceByKey(_+_)//聚合//降序取前5valtop5=wordCounts.map(pair=>(pair._2,pair._1))//交换key和value以便排序.sortByKey(false)//按频率降序.take(5)//取前5.map(pair=

温馨提示

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

评论

0/150

提交评论