版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年大学大四(软件工程)大数据分析实训测试试题及答案一、单项选择题(本大题共15小题,每小题2分,共30分。在每小题给出的四个选项中,只有一项是符合题目要求的)1.在Hadoop生态系统中,负责资源管理和调度的组件是()。A.HDFSB.MapReduceC.YARND.ZooKeeper2.下列关于HDFS块大小的描述,正确的是()。A.默认块大小为64MB,且设置后不可更改B.默认块大小为128MB,适合存储大文件C.块大小越小越好,能减少寻址时间D.块大小必须大于单台磁盘的容量3.在SparkRDD的转换操作中,不会产生Shuffle过程的操作是()。A.groupByKeyB.reduceByKeyC.mapD.join4.关于Spark的Executor,说法错误的是()。A.Executor是物理节点上的进程B.负责运行Task并将结果返回给DriverC.一个Application在整个生命周期中只能拥有一个ExecutorD.Executor通过线程池来并行执行Task5.在Kafka中,为了保证消息的有序性,通常需要将所有相关消息发送到()。A.不同的TopicB.不同的PartitionC.同一个PartitionD.不同的ConsumerGroup6.下列哪项不是HBase的特点?()A.面向列B.高可靠性C.支持复杂的SQL查询D.支持自动版本控制7.在数据预处理阶段,用于识别并处理数据中缺失值的方法不包括()。A.删除缺失记录B.均值填充C.众数填充D.数据标准化8.SparkSQL中,将DataFrame注册为临时视图的命令是()。A.createTempViewB.registerTempTableC.createOrReplaceTempViewD.saveAsTable9.在机器学习算法中,K-Means聚类算法的主要目的是()。A.分类预测B.回归分析C.将数据划分为K个无监督的簇D.降维处理10.下列关于数据仓库的描述,错误的是()。A.面向主题的B.集成的C.反映历史变化的D.实时更新的11.在Scala中,用于定义伴生对象的关键字是()。A.classB.objectC.traitD.extends12.FlumeNG架构中,负责从数据源收集数据的组件是()。A.SourceB.ChannelC.SinkD.Interceptor13.在Python的PySpark中,创建SparkSession的代码是()。A.SparkContext()B.HiveContext()C.SparkSession.builder.appName("test").getOrCreate()D.SQLContext()14.下列哪种可视化图表最适合用于展示各部分占总体的比例?()A.散点图B.柱状图C.饼图D.折线图15.在逻辑回归模型中,使用的激活函数通常是()。A.ReLUB.SigmoidC.TanhD.Softmax二、多项选择题(本大题共5小题,每小题3分,共15分。在每小题给出的四个选项中,至少有两项是符合题目要求的)1.下列属于大数据的4V特征的是()。A.Volume(大量)B.Velocity(高速)C.Variety(多样)D.Value(低价值密度)2.SparkRDD的持久化级别包括()。A.MEMORY_ONLYB.MEMORY_AND_DISKC.DISK_ONLYD.NONE3.下列哪些组件属于Hadoop生态系统的核心层?()A.HDFSB.MapReduceC.HiveD.HBase4.在进行特征工程时,常见的特征缩放方法有()。A.Min-Max标准化B.Z-Score标准化C.独热编码D.LabelEncoding5.关于DataFrame和RDD的区别,下列说法正确的有()。A.DataFrame带有Schema元数据B.RDD是底层的分布式对象集合C.DataFrame的执行效率通常高于RDDD.RDD的类型安全在编译时检查,DataFrame在运行时检查三、填空题(本大题共10空,每空2分,共20分)1.HDFS默认的副本因子是________。2.在Spark中,________算子用于将多个RDD元素根据Key聚合在一起,类似于MapReduce中的Shuffle阶段。3.Hive是基于Hadoop的________数据仓库。4.在Scala中,________是一个不可变的列表序列。5.Kafka通过________机制来实现消息的发布与订阅。6.在机器学习中,________是指模型在训练集上表现很好,但在测试集上表现很差的现象。7.SparkStreaming处理实时数据时,核心抽象是________。8.在Python中,使用________库可以方便地进行科学计算和矩阵操作。9.数据清洗中,________是指数据中存在不符合业务逻辑的错误值,如年龄为负数。10.在A/B测试中,我们通常关注________值是否小于0.05,以判断结果是否具有统计学显著性。四、简答题(本大题共4小题,每小题10分,共40分)1.请简述HDFS的读写流程。2.解释SparkRDD中的窄依赖和宽依赖的区别,并说明它们对Stage划分的影响。3.在大数据分析中,为什么要进行特征选择?常见的特征选择方法有哪些?4.简述K-Means聚类算法的执行步骤。五、综合应用题(本大题共3小题,共95分)1.(30分)电商用户行为分析某电商平台收集了用户的行为日志数据,存储在HDFS上的文件`/data/user_actions.log`中。每行数据的格式为:`用户ID,商品ID,行为类型,时间戳`。其中行为类型包括:'pv'(浏览)、'buy'(购买)、'cart'(加入购物车)、'fav'(收藏)。请使用Spark(Scala或Python)完成以下任务:(1)统计每个行为类型的总次数。(2)找出浏览次数超过1000次的商品ID。(3)计算每个用户的购买转化率(购买次数/浏览次数),并筛选出转化率大于0.1的用户。2.(35分)房屋价格预测模型构建给定一份房屋交易数据集`house_prices.csv`,包含以下字段:`area`(面积)、`bedrooms`(卧室数)、`bathrooms`(卫生间数)、`age`(房龄)、`price`(价格)。请使用SparkMLlib构建一个线性回归模型来预测房屋价格。要求:(1)编写代码加载数据,并进行适当的特征组装,将特征列合并为Vector类型。(2)将数据集划分为训练集和测试集(比例7:3)。(3)构建线性回归模型,使用训练集进行训练。(4)在测试集上评估模型性能,输出均方根误差(RMSE)和R2(决定系数)。(5)解释模型训练得到的系数含义。3.(30分)实时流量监控系统设计假设你需要为一个新闻门户网站设计一个实时流量监控系统。数据来源是Nginx产生的访问日志,通过Flume采集到Kafka。(1)请画出该系统的整体架构图,并描述各组件的作用。(2)使用SparkStreaming消费Kafka中的数据,编写代码实现每5分钟统计一次最近1小时内每个栏目的访问量(PV)。(3)如果统计结果需要实时写入MySQL数据库供前端展示,请说明如何保证数据写入的容错性和一致性。参考答案及解析一、单项选择题1.【答案】C【解析】YARN(YetAnotherResourceNegotiator)是Hadoop2.0引入的资源管理系统,负责集群资源的统一管理和调度。HDFS负责存储,MapReduce是计算框架(旧版),ZooKeeper负责协调服务。2.【答案】B【解析】HDFS默认块大小在Hadoop2.x及以后通常为128MB(Hadoop1.x为64MB),设计较大的块大小是为了减少寻址时间,适合存储大文件。块大小是可以配置的。3.【答案】C【解析】`map`是窄依赖,输入分区一对一输出分区,不涉及数据重组。`groupByKey`、`reduceByKey`和`join`通常涉及根据Key进行数据重组,会触发Shuffle。4.【答案】C【解析】Executor是Application运行在Worker节点上的进程,一个Application可以根据资源配置拥有多个Executor。C选项错误。5.【答案】C【解析】Kafka只能保证同一个Partition内的消息有序。如果需要全局有序,需要将所有消息发送到同一个Partition,但这会牺牲并发度。6.【答案】C【解析】HBase是NoSQL数据库,不支持复杂的SQL查询(如多表Join、复杂子查询),它主要通过API进行简单的键值查询或扫描。Hive支持类SQL查询。7.【答案】D【解析】数据标准化是用于缩放数据范围的方法,不是处理缺失值的方法。缺失值处理通常包括删除、均值/中位数/众数填充、插值法等。8.【答案】C【解析】`createOrReplaceTempView`是SparkSQL中推荐的创建临时视图的方法,如果视图已存在则覆盖。`registerTempTable`是旧版本语法。9.【答案】C【解析】K-Means是一种无监督学习算法,用于将数据划分为K个簇。10.【答案】D【解析】数据仓库是面向主题的、集成的、相对稳定的(非易失)、反映历史变化的数据集合,用于支持决策分析。它通常是定期加载(ETL),而不是实时更新。11.【答案】B【解析】在Scala中,`object`关键字用于定义单例对象,它是伴生对象的定义方式。12.【答案】A【解析】Flume架构中,Source负责从数据源接收数据,Channel是缓冲区,Sink负责将数据发送到目的地。13.【答案】C【解析】SparkSession是Spark2.0+的统一入口点,创建方式为`SparkSession.builder...getOrCreate()`。14.【答案】C【解析】饼图最适合展示部分占总体的比例关系。柱状图用于比较数值大小,折线图用于趋势展示,散点图用于相关性展示。15.【答案】B【解析】逻辑回归用于二分类问题,通常使用Sigmoid函数将线性回归的输出映射到(0,1)区间,表示概率。二、多项选择题1.【答案】ABCD【解析】大数据4V特征包括:Volume(数据量大)、Velocity(处理速度快)、Variety(数据类型繁多)、Value(价值密度低)。2.【答案】ABC【解析】RDD的持久化级别包括MEMORY_ONLY,MEMORY_AND_DISK,DISK_ONLY,MEMORY_ONLY_SER,MEMORY_AND_DISK_SER等。NONE不是持久化级别。3.【答案】AB【解析】Hadoop核心组件包括HDFS(存储)和MapReduce(计算)/YARN(资源调度)。Hive和HBase属于Hadoop生态系统的应用层或上层组件,严格来说不属于核心层(尽管常被一起部署)。4.【答案】AB【解析】Min-Max标准化和Z-Score标准化是特征缩放方法。独热编码和LabelEncoding是处理类别变量的编码方法,不属于缩放。5.【答案】ABC【解析】DataFrame包含Schema,优化器(Catalyst)可以对其进行优化,效率通常高于RDD。DataFrame在编译时不进行类型检查(除非使用Dataset),但RDD是类型安全的。D选项描述有误,DataFrame在编译时进行部分检查,Dataset类型安全更严格。三、填空题1.【答案】32.【答案】shuffle(或reduceByKey/groupByKey等触发shuffle的操作)3.【答案】分布式4.【答案】List5.【答案】Topic(或Topic和Partition)6.【答案】过拟合7.【答案】DStream(或DiscretizedStream)8.【答案】NumPy(或numpy)9.【答案】异常值10.【答案】P四、简答题1.【答案】HDFS读流程:(1)客户端调用DistributedFileSystem.open()方法,打开文件。(2)RPC调用NameNode,获取文件开始部分的数据块位置(BlockLocation)。(3)客户端根据位置信息,找到距离最近的DataNode建立连接读取数据。(4)读取完一个Block后,关闭连接,继续寻找下一个Block的最优DataNode读取。(5)读取完毕后,关闭流。HDFS写流程:(1)客户端调用create()方法创建文件。(2)RPC调用NameNode,NameNode执行检查(如文件是否存在、权限等),若通过则创建新文件记录,否则返回异常。(3)客户端将数据写入本地的数据队列,DataStreamer流处理数据。(4)当数据达到一个Block大小时,请求NameNode分配新的DataNode列表。(5)客户端以Pipeline(管道)形式向第一个DataNode写入数据,第一个DataNode传给第二个,依次类推。(6)所有副本写入完成后,向NameNode汇报完成状态。2.【答案】窄依赖:父RDD的一个分区最多被子RDD的一个分区使用。即一对一关系。例如map,filter。窄依赖允许在同一个节点上通过内存管道式执行,不需要跨网络传输数据。宽依赖:父RDD的一个分区被子RDD的多个分区使用。即一对多关系。例如groupByKey,reduceByKey,join。宽依赖涉及Shuffle,数据需要根据Key在网络中重新分发。对Stage划分的影响:Spark根据宽依赖将DAG图划分为不同的Stage。每个Stage内部包含一系列窄依赖,这些窄依赖可以以流水线方式执行。Stage之间的边界就是宽依赖(Shuffle)。3.【答案】原因:(1)降低维度:去除无关或冗余特征,减少计算量,提高模型训练速度。(2)防止过拟合:减少特征数量可以降低模型复杂度,避免模型在噪声数据上过拟合。(3)提高精度:去除不相关特征可以减少干扰,提高模型的泛化能力。(4)增强可解释性:保留关键特征使得模型更容易被理解和解释。常见方法:(1)过滤法:使用统计方法(如相关系数、卡方检验、方差分析)对特征进行评分,选择高分特征。(2)包裹法:将特征子集的选择视为搜索问题,使用训练模型的表现作为评价标准(如递归特征消除RFE)。(3)嵌入法:模型训练过程中自动进行特征选择(如LASSO回归、决策树)。4.【答案】K-Means聚类算法执行步骤:(1)初始化:随机选择K个数据点作为初始聚类中心。(2)分配:对于数据集中的每一个样本,计算其到K个聚类中心的距离(通常为欧氏距离),将其分配到距离最近的聚类中心所对应的簇。(3)更新:计算每个簇中所有样本的均值,将该均值作为新的聚类中心。(4)迭代:重复步骤(2)和(3),直到满足以下条件之一:a.聚类中心不再发生变化(或变化小于设定阈值)。b.达到最大迭代次数。c.簇分配结果不再改变。五、综合应用题1.【答案】(以PySpark为例)```pythonfrompyspark.sqlimportSparkSessionfrompyspark.sql.functionsimportcol,count,when,sumas_sum#初始化SparkSessionspark=SparkSession.builder.appName("UserBehaviorAnalysis").getOrCreate()#(1)加载数据df=spark.read.text("/data/user_actions.log")\.selectExpr("split(value,',')asarr")\.select(col("arr")[0].alias("user_id"),col("arr")[1].alias("item_id"),col("arr")[2].alias("action_type"),col("arr")[3].alias("timestamp"))#任务1:统计每个行为类型的总次数action_counts=df.groupBy("action_type").agg(count("*").alias("total_count"))action_counts.show()#任务2:找出浏览次数超过1000次的商品IDpv_items=df.filter(df.action_type=='pv')\.groupBy("item_id")\.agg(count("*").alias("pv_count"))\.filter(col("pv_count")>1000)pv_items.show()#任务3:计算购买转化率并筛选#计算每个用户的浏览次数和购买次数user_stats=df.groupBy("user_id")\.agg(_sum(when(col("action_type")=='pv',1).otherwise(0)).alias("pv_cnt"),_sum(when(col("action_type")=='buy',1).otherwise(0)).alias("buy_cnt"))#计算转化率,注意处理除数为0的情况frompyspark.sql.functionsimportroundudf_conversion=user_stats.withColumn("conversion_rate",when(col("pv_cnt")==0,0.0).otherwise(col("buy_cnt")/col("pv_cnt")))high_conversion_users=udf_conversion.filter(col("conversion_rate")>0.1)high_conversion_users.select("user_id","conversion_rate").show()spark.stop()```2.【答案】(以PySparkMLlib为例)```pythonfrompyspark.sqlimportSparkSessionfrompyspark.ml.featureimportVectorAssemblerfrompyspark.ml.regressionimportLinearRegressionfrompyspark.ml.evaluationimportRegressionEvaluatorfrompyspark.sql.functionsimportcolspark=SparkSession.builder.appName("HousePricePrediction").getOrCreate()#(1)加载数据data=spark.read.csv("house_prices.csv",header=True,inferSchema=True)#特征组装assembler=VectorAssembler(inputCols=["area","bedrooms","bathrooms","age"],outputCol="features")#转换数据data_vec=assembler.transform(data).select("features","price")#(2)划分训练集和测试集train_data,test_data=data_vec.randomSplit([0.7,0.3],seed=42)#(3)构建并训练线性回归模型lr=LinearRegression(featuresCol="features",labelCol="price",predictionCol="prediction")model=lr.fit(train_data)#(4)评估模型predictions=model.transform(test_data)evaluator_rmse=RegressionEvaluator(labelCol="price",predictionCol="prediction",metricName="rmse")evaluator_r2=RegressionEvaluator(labelCol="price",predictionCol="prediction",metricName="r2")rmse=evaluator_rmse.evaluate(predictions)r2=evaluator_r2.evaluate(predictions)print(f"RootMeanSquaredError(RMSE)ontestdata={rmse}")print(f"R2ontestdata={r2}")#(5)解释系数coefficients=model.coefficientsintercept=erceptprint("Coefficients:"+str(coefficients))print("Intercept:"+str(intercept))#解释:系数表示特征每增加一个单位,房价的变化量。例如area系数为正,说明面积越大房价越高。#intercept表示基础房价。spark.stop()```3.【答案】(1)系统架构图描述:架构:Nginx->Flume(Source:Exec/TailDir,Channel:Memory/Kafka,Sink:Kafka)->Kafka->SparkStreaming->MySQL数据库。组件作用:Nginx:产生Web服务器访问日志。Flume:作为采集Agent,实时监控日志文件,将日志数据收集并传输到Kafka。Kafka:作为消息队列,缓冲和分发日志数据,解耦生产者和消费者。SparkStreaming:作为流计算引擎,消费Kafka数据,进行实时窗口统计计算。MySQL:存储统计结果,供前端报表系统查询。(2)SparkStreaming代码(Scala伪代码/核心逻辑):```scalaimportorg.apache.spark.streaming._importorg.apache.spark.streaming.kafka._importorg.apache.spark.sql.functions._valssc=newStreamingContext(spark.sparkContext,Seconds(300))//批处理间隔5分钟valkafkaParams=Map("bootstrap.servers"->"localhost:9092","group.id"->"test")valtopics=Set("nginx_logs")valstream=KafkaUtils.createDirectStream[String,String](ssc,PreferConsistent,Subscribe[String,String](topics,kafkaParams))vallines=stream.map(_.value())//假设日志格式解析提取出(timestamp,category_id)vallogs
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026-2027学年八年级英语上册 Unit 6 单元测试卷(人教陕西版)
- 线上旅游预订服务合同管理规范
- 跨境电商2026年门店加盟协议
- 果蔬加工技术培训服务合同
- 建筑电工考试题目及答案
- 2026-2030中国电梯新梯市场应用趋势预测与前景营销格局研究研究报告
- 2026-2030螺纹机行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2026年海南省人教版初中英语下册写作专项训练习题
- 2026年电子设备维修实操测试卷
- 2026年江西省初中物理电学实验操作与测试
- 2023版中国绝经管理与绝经激素治疗指南解读课件
- 2026年山东省聊城市重点学校小升初入学分班考试语文考试试题及答案
- 路灯工程现场吊装专项施工方案
- 2026年妇科药品考试题及答案
- 中国剖宫产临床诊疗指南(2025版)
- 关于《弱胶结地层巷道与应力计锚杆(索)支护技术规范》的解读
- 与工厂签订独家销售合同
- 2026江西省住房和城乡建设厅直属事业单位高层次人才招聘1人备考题库及答案详解(全优)
- 2026-2030中国特种空调行业盈利动态及供需状况分析报告
- 2025年贵州黔南人力资源开发有限责任公司招聘劳务派遣制专职民兵教练员5人笔试备考试题及答案解析
- 初中英语阅读教学中分级阅读策略的实践研究课题报告教学研究课题报告
评论
0/150
提交评论