版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章练习一、选择题1.大数据的特点有哪些?(多选)(AB)A.处理速度快 B.多样化C.价值密度高 D.数据冗余度低2.下面哪些是大数据的计算模式?(多选)(ABCD)A.流式计算 B.批处理计算C.查询分析计算 D.图计算3.Linux支持多少位硬件?(多选)(AC)A.64位 B.128位C.32位 D.256位4.Hadoop生态系统的主要组成不包括?(B)A.MapReduce B.ZooKeeperC.HDFS文件系统 D.YARN二、判断题1.大数据是指数据量很大的数据集。(×)2.Hadoop是在分布式服务器集群上存储海量数据并运行分布式分析应用的一个开源的软件框架。(√)3.Hadoop只能运行在由一般商用机器构成的大型集群上。(×)4.Hadoop通过增加集群节点,可以线性地扩展以处理更大的数据集。(√)三、简答题1.简述大数据技术的特点。答:Volume(大体量):即可从数百TB到数十数百PB、甚至EB规模。Variety(多样性):即大数据包括各种格式和形态的数据。Velocity(时效性):即很多大数据需要在一定的时间限度下得到及时处理。Veracity(准确性):即处理的结果要保证一定的准确性。Value(大价值):即大数据包含很多深度的价值,大数据分析挖掘和利用带来巨大的商业价值。2.简要介绍几种Hadoop系统的组件及其作用。答:HDFS:Hadoop分布式文件系统,具有处理超大数据、流式处理、可以运行在廉价商用服务器上等优点。HDFS在访问应用程序数据时,可以具有很高的吞吐率,因此对于超大数据集的应用程序而言,选择HDFS作为底层数据存储是较好的选择。HBase:相当于关系型数据库,数据放在文件中,而文件放在HDFS中。因此,HBase是基于HDFS的关系型数据库。MapReduce:是一种编程模型,用于大规模数据集(大于1TB)的并行运算,它将复杂的、运行于大规模集群上的并行计算过程高度抽象到了两个函数——Map和Reduce上,并且允许用户在不了解分布式系统底层细节的情况下开发并行应用程序,并将其运行于廉价的计算机集群上,从而完成海量数据的处理。ZooKeeper是针对谷歌Chubby的一个开源实现,是高效和可靠的协同工作系统,提供分布式锁之类的基本服务,用于构建分布式应用,减轻分布式应用程序所承担的协调任务。……第2章练习一、选择题1.下列哪项不包括在大数据的分析流程中?(A)A.数据校验 B.数据集成C.数据规约 D.数据挖掘2.大数据分析的常用方法有哪些?(多选)(ABCD)A.K-means B.线性回归C.分类分析 D.数理统计3.下列哪项不是数据可视化的工具?(D)A.Superset B.MatplotlibC.Pycharts D.selenium二、判断题1.大数据分析包括数据采集、预处理、存储、分析和可视化。(√)2.selenium是大数据清洗过程中用到的主要工具。(×)3.常用的聚类分析法有决策树、神经网络、贝叶斯分类、SVM。(×)三、简答题1.用自己的语言描述大数据分析的流程。答:大数据分析的一般流程,分为数据采集、数据预处理、数据存储、数据建模与分析、数据可视化这几个阶段。首先通过传感器数据、社交网络数据等获得各种类型的结构化、半结构化及非结构化的海量数据;对数据进行提取、转换、加载,最终挖掘数据的潜在价值;把采集到的数据都存储起来,建立相应的数据库,进行管理和调用;通过已有数据的统计分析技术和未知数据的挖掘技术,从海量的数据中提取有用的知识;最终将大数据分析与预测结果以计算机图形或图像的方式展示给用户。2.说出数据分析过程中各阶段所用到的几种工具。 答:数据采集工具——Selenium和PhantomJS;数据清洗工具——Kettle;数据存储工具——MongoDB和MySQL;机器学习工具——Scikit-learn;数据可视化工具——Matplotlib、PyEcharts、Superset。第3章练习一、选择题1.观察系统动态进程的命令是(B)A.freeB.topC.lastcommD.df2.系统中某文件的组外权限是只读、属主权限是全部、组内权限是可读可写,那么该文件权限为(D)A.467B.674C.476D.7643.解压缩文件mydjango.tar.gz可以执行(A)A.tar-zxvfmydjango.tar.gzB.tar-xvzmydjango.tar.gzC.tar-czfmydjango.tar.gzD.tar-xvfmydjango.tar.gz4.下列哪一项包含了主机名到IP地址映射关系的文件?(B)A./etc/hostnameB./etc/hostsC./etc/resolv.confD./etc/networks5.退出交互式shell,应该输入什么命令?(D)A.q!B.quitC.;D.exit二、判断题1.Linux配置文件一般放在bin目录。(×)2.改变文件属主的命令是chmod。(×)3.ping命令常用于检测网络主机是否可达。(√)4.cd命令可以改变用户的当前目录,当用户键入命令“cd”并按Enter键后,当前目录改为根目录。(√)5.按下<Ctrl+C>键能终止当前命令的运行。(√)三、简答题1.什么是Linux?创始人是谁?有哪些版本?答:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。创始人是芬兰人林纳斯·托瓦兹。版本:Fedora、Debian、Ubuntu、Gentoo、FreeBSD、CentOS……2.请简单描述Linux系统安装完成后系统配置的步骤。答:①修改用户权限:在root用户权限下(切换至root用户),修改文件/etc/sudoers,在rootALL=(ALL)ALL下方加入hadoopALL=(ALL)ALL,保存文件。②关闭防火墙:使内网集群间的通信不受影响。③新建资源目录:在目录/opt下新建两个文件夹softwares和modules,用于存储软件安装包和安装后的文件。3.执行命令“ls-l”时,某行显示:-rw-r--r--1chrischris207Jul2011:58mydata(1)用户chris对该文件有什么权限?答:读写(2)执行命令“useraddTom”后,用户Tom对该文件有什么权限?答:只读(3)如何使得全部用户拥有对该文件的所有权限?答:chmod777mydata(4)如何将文件属主更改为root? 答:chownrootmydata第4章练习一、选择题1.下面哪个程序负责HDFS数据存储?(C)A.NameNodeB.JobtrackerC.DatanodeD.secondaryNameNodeE.tasktracker2.下列哪个程序通常与NameNode在一个节点启动?(D)A.SecondaryNameNodeB.DataNodeC.TaskTrackerD.Jobtracker3.关于SecondaryNameNode哪项是正确的?(C)A.它是NameNode的热备B.它对内存没有要求C.它的目的是帮助NameNode合并编辑日志,减少NameNode启动时间D.SecondaryNameNode应与NameNode部署到一个节点4.下列哪个是Hadoop运行的模式?(多选)(ABC)A.单机版B.伪分布式C.分布式二、思考题1.启动hadoop报以下错误,分别该如何解决?
--node.NameNode
--Directory/tmp/hadoop-root/dfs/nameisinaninconsistent答:①找不到或无法加载主类,应该是配置文件中hadoop安装位置配置错误。对hadoop-env.sh文件进行检查修改。②存储目录不存在或被删除。重新设置core-site.xml中hadoop.tmp.dir的值,对namenode进行格式化。2.请列出正常工作的hadoop集群中需要启动的进程,并简要介绍其作用。答:NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager。①NameNode:HDFS的守护进程,负责维护整个文件系统,存储着整个文件系统的元数据信息。②SecondaryNameNode相当于一个Namenode元数据的备份机制,提供周期检查点和清理任务,和Namenode进行通信,将Namenode上的image和edits进行合并,减少NN启动时间。③DataNode是具体文件系统的工作节点,负责管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个datanode守护进程。④ResourceManager(JobTracker):Yarn的守护进程,负责所有资源的分配与调度,监控Nodemanager。⑤NodeManager(TaskTracker):单个节点的资源管理,执行来自ResourceManager的具体任务。3.
请简述hadoop实现二级排序的原理。答:MapReduce中本身就会对key进行排序,所以我们需要对value进行排序。主要思想为将key和部分value拼接成一个组合key(实现WritableComparable接口或者调用setSortComparatorClass函数),这样reduce获取的结果便是先按key排序,后按value排序的结果,在这个方法中,用户需要自己实现Paritioner,继承Partitioner<>,以便只按照key进行数据划分。Hadoop显式支持二次排序,Configuration类中的setGroupingComparatorClass()方法,可用于设置排序group的key值。三、设计题1.给定100万个字符串,其中有些是相同的(重复),需要把重复的全部去掉,保留没有重复的字符串。请结合MapReduce编程模型给出设计思路或核心代码。思路:分而治之。根据MapReduce的工作原理可知,MapReduce的Shuffle阶段会将Map任务的结果数据进行分区,并按照key进行分组,同一组的数据将输入到同一个Reduce任务中进行处理。而根据key分组的过程,实际上就是去重的过程。因此,将每个字符串作为key即可达到数据去重的目的。publicstaticclassProjectionMapextendsMapper<LongWritable,Text,Text,NullWritable>{privateintclo;projectvoidsetup(Contextcontext)throwsIOException,InterruptedException{col=context.getConfiguration().getInt(“col”,0);}publicvoidmap(LongWritableoffset,Textline,Contextcontext){relationArecord=newRelationA(line.toString()); context.write(newText(record.getCol(col)),NullWritable.get());}}publicstaticclassProjectionReduceextendsReducer<Text,NullWritable,Text,NullWritable>{publicvoidreduce(Textkey,Iterable<NullWritable>value,Contextcontext)throwsIOException,InterruptedException{context.write(key,NullWritable.get());}}2.请在下面程序的下划线中补充完整程序(共8处)。publicclassWordCount{
publicstaticclassTokenizerMapperextends
Mapper<
Object,Text,Text,IntWritable
>{
privatefinalstaticIntWritableone=newIntWritable(1);
privateTextword=newText();
publicvoidmap(LongWritablekey,Textvalue,Contextcontext){
StringTokenizeritr=newStringTokenizer(value.toString());
while(itr.hasMoreTokens()){
word.set(itr.nextToken());
context.write(word,one);
}
}
}
publicstaticclassIntSumReducerextends
Reducer<
Text,
IntWritable,Text,IntWritable>{
privateIntWritableresult=newIntWritable();
publicvoidreduce(Text,
key,Iterable<IntWritable>values,Contextcontext){
intsum=0;
for(IntWritableval:values){
sum+=val.get();
}
result.set(sum);
context.write(key,result);
}
}
publicstaticvoidmain(String[]args)throwsException{
……
}}第5章练习一、选择题1.最早是Cloudera提供的日志收集系统,目前是Apache下的一个孵化项目,支持在日志系统中定制各类数据发送方,用于收集数据的工具是?(A)A.FlumeB.ZooKeeperC.StormD.SparkStreaming2.作为分布式消息队列,既有很高的吞吐量,又有较高的可靠性和扩展性,同时接受SparkStreaming的请求,将流量日志按序发送给SparkStreaming集群是?(C)A.FlumeB.ZooKeeperC.KafkaD.SparkStreaming3.Spark组成部件包括?(多选)(BC)A.ResourceManagerB.ExecutorC.DriverD.RDD4.下面不属于Spark四大组件的有?(多选)(AC)A.SparkRB.MLlibC.pysparkD.SparkStreaming二、判断题1.Yarn可以作为Spark的资源调度框架。(√)2.scala的基本数据类型和java完全一致。(×)3.如果将以下程序中第10行的(x,1)换成(x,-1),输出结果不变。(√)三、思考题1.已知exam.data文件中数据为:abcaabca,请写出下列程序的运行结果。答:(b,2)(c,3)(a,4)2.
已知已有学生数据如下:请写出下列程序的作用。答:求平均年龄第6章练习一、简答题1.为什么Redis需要把所有数据放到内存中?答:Redis为了达到最快的读写速度,将数据都读到内存中,并通过异步的方式将数据写入磁盘,所以Redis具有快速和数据持久化的特征。如果不将数据放在内存中,磁盘I/O速度为严重影响Redis的性能。2.如何保证Kafka顺序消费?答:相同的业务ID设置为同一个key,存放到同一个分区中;每个分区中有单独对应的一个消费者实现消费。3.
SparkStreaming是如何与Kafka整合的?答:①Receiver接收方式KafkaUtils.createDstream:通过ZooKeeper来连接Kafka队列,调用Kafka高阶API,offset存储在ZooKeeper,由Receiver维护。该模式可能会出现数据不一致等问题,当前已不适合在开发中使用。②Direct直连方式KafkaUtils.createDirectStream:直接连接Kafka分区来获取数据,从每个分区直接读取数据大大提高了并行能力,调用Kafka低阶API(底层API),offset自己存储和维护,默认由Spark维护在checkpoint中。二、设计题已知表a中字段内容如下:字段字段含义index数据idchild_comment回复数量comment_time评论时间content评论内容da_v微博个人认证like_status赞pic图片评论urluser_id微博用户iduser_name微博用户名vip_rank微博会员等级stamp时间戳要求:1.在kafka中创建comment主题,设置2个分区2个副本;答:kafka-topics.sh--create--zookeepermaster:2181,slave1:2181,slave2:2181--replication-factor2--partitions2--topiccomment2.使用SparkStreaming对接kafka后进行计算,查询并输出微博会员等级为5的用户。3.查询并输出评论赞的个数在10个以上的数据。答:2、3题程序如下importjava.sql.{Connection,DriverManager,PreparedStatement}importjava.text.SimpleDateFormatimportorg.apache.kafka.clients.consumer.ConsumerRecordimportmon.serialization.StringDeserializerimportorg.apache.spark.{SparkConf,SparkContext}importorg.apache.spark.rdd.RDDimportorg.apache.spark.streaming.{Seconds,StreamingContext}importorg.apache.spark.streaming.dstream.{DStream,InputDStream}importorg.apache.spark.streaming.kafka010.{ConsumerStrategies,KafkaUtils,LocationStrategies}objectSparkStreaming{defmain(args:Array[String]):Unit={valsparkConf:SparkConf=newSparkConf().setMaster("local[*]").setAppName("SparkStreaming")valssc=newStreamingContext(sparkConf,Seconds(3))valkafkaParams=Map[String,Object]("bootstrap.servers"->"hadoop01:9092,hadoop02:9092,hadoop03:9092","key.deserializer"->classOf[StringDeserializer],"value.deserializer"->classOf[StringDeserializer],"group.id"->"SparkKafkaDemo","auto.offset.reset"->"latest","mit"->(false:java.lang.Boolean))vartopics=Array("rng_comment")valrecordDStream:InputDStream[ConsumerRecord[String,String]]=KafkaUtils.createDirectStream[String,String](ssc,LocationStrategies.PreferConsistent,ConsumerStrategies.Subscribe[String,String](topics,kafkaParams))valresultDStream:DStream[Array[String]]=recordDStream.map(_.value()).map(_.split("\t")).cache()//2、查询出微博会员等级为5的用户。resultDStream.filter(_(9)=="5")foreachRDD{rdd:RDD[Array[String]]=>{rdd.foreachPartition{iter:Iterator[Array[String]]=>{Class.forName("com.mysql.jdbc.Driver")valconnection:Connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/rng_comment?characterEncoding=UTF-8","root","root")valsql="insertintovip_rankvalues(?,?,?,?,?,?,?,?,?,?,?)"iter.foreach{line:Array[String]=>{valstatement:PreparedStatement=connection.prepareStatement(sql)statement.setInt(1,line(0).toInt);statement.setInt(2,line(1).toInt);statement.setString(3,line(2));statement.setString(4,line(3));statement.setString(5,line(4));statement.setString(6,line(5));statement.setString(7,line(6));statement.setString(8,line(7));statement.setString(9,line(8));statement.setInt(10,line(9).toInt);statement.setString(11,line(10));statement.executeUpdate()statement.close()}}connection.close()}}}} //3、查询并输出评论赞的个数在10个以上的数据。resultDStream.filter(_(5).toInt>10).foreachRDD{rdd:RDD[Array[String]]=>{rdd.foreachPartition{iter:Iterator[Array[String]]=>{Class.forName("com.mysql.jdbc.Driver")valconnection:Connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/rng_comment?characterEncoding=UTF-8","root","root")varsql="insertintolike_statusvalues(?,?,?,?,?,?,?,?,?,?,?)"iter.foreach{line:Array[String]=>{valstatement:PreparedStatement=connection.prepareStatement(sql)statement.setInt(1,line(0).toInt);statement.setInt(2,line(1).toInt);statement.setString(3,line(2));statement.setString(4,line(3));statement.setString(5,line(4));statement.setString(6,line(5));statement.setString(7,line(6));statement.setString(8,line(7));statement.setString(9,line(8));statement.setInt(10,line(9).toInt);statement.setString(11,line(10));statement.executeUpdate()statement.close()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学生吃饭纪律奖惩制度
- 教练员竞赛输送奖惩制度
- 商场楼层主管奖惩制度
- 个人奖惩制度
- 死因检测工作奖惩制度
- 培训机构安全奖惩制度
- 质量记录管理奖惩制度
- 装修工程考勤奖惩制度
- 体检科管理办法奖惩制度
- 班组内部培训奖惩制度
- 临床预防呼吸机相关肺炎(VAP)的集束化管理策略
- 2026届新高考语文背诵篇目60篇(注音版)
- 2025陕西事业单位考试e类试题及答案
- 2025年甘肃省天水市甘谷县选聘大学生村文书55人考试参考试题及答案解析
- 岭美版(2024)美术一年级下册1.2校园的春天 课件
- 三聚磷酸钠讲解
- 学前教育实习动员课件
- 安置帮教普法培训
- 化工仪表检修与维护课件
- 2025年护理资格知识谵妄理论考试试题及答案
- 市场营销现代广告案例分析报告
评论
0/150
提交评论