版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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.MapReduceB.ZooKccpcr
C.HDFS文件系统D.YARN
二、判断题
1.大数据是指数据量很大的数据集。(X)
2.Hadoop是在分布式服务器集群上存储海量数据并运行分布式分析应用的一个开源的
软件框架。(V)
3.Hadoop只能运行在由一般商用机器构成的大型集群上。(X)
4.Hadoop通过增加集群节点,可以线性地扩展以处理更大的数据集。(J)
三、筒答题
1.简述大数据技术的特点。
答:Volume(大体量):即可从数百TB到数十数百PB、甚至EB规模。
Variety(多样性):即大数据包括各种格式和形态的数据。
Velocity(时效性):即很多大数据需耍在一定的时间限度下得到及时处理。
Veracity(准确性):即处理的结果要保证一定的准确性。
Value(大价值):即大数据包含很多深度的价值,大数据分析挖掘和利用带来巨大的商
业价值。
2.简要介绍几种Hadoop系统的组件及其作用。
答:
HDFS:Hadoop分布式文件系统,具有处理超大数据、流式处理、可以运行在廉价商用
服务器上等优点。HDFS在访,可应用程序数据时,可以具有很高的存吐率,因此对于超大数
据集的应用程序而言,选择HDFS作为底层数据存储是较好的选择。
HBasc:相当丁•关系型数据库,数据放在文件中,而文件放在HDFS中。因此,HBasc
是基于HDFS的关系型数据库。
MapReduce:是一种编程模型,用于大规模数据集(大于ITB)的并行运算,它将复杂
的、运行于大规模集群上的并行计克过程高度抽象到了两个函数一一Map和Reduce上,并
且允许用户在不了解分布式系统底层细式的情况卜.开发并行应用程序,并将其运行于廉价的
计算机集群上,从而完成海量数据的处理。
ZooKeeper是针对谷歌Chubby的一个开源实现,是高效和可靠的协同工作系统,提供
分布式锁之类的基本服务,用于构建分布式应用,减轻分布式应用程序所承担的协调任务。
第2章练习
一、选择题
1.下列哪项不包括在大数据的分析流程中?(A)
A.数据校验B.数据集成
C.数据规约D.数据挖掘
2.大数据分析的常用方法有哪些?(多选)(ABCD)
A.K-meansB.线性回归
C.分类分析D.数理统计
3.下列哪项不是数据可视化的工具?(D)
A.SupersetB.Matplollib
C.PychartsD.selenium
二、判断题
1.大数据分析包括数据采集、预处理、存储、分析和可视化。(J)
2.selenium是大数据清洗过程中用到的主要工具。(X)
3.常用的聚类分析法有决策树、神经网络、贝叶斯分类、SVMo(X)
三、简答题
1.用自己的语言描述大数据分析的流程。
答:大数据分析的一般流程,分为数据采集、数据预处理、数据存储、数据建模与分析、
数据可视化这几个阶段。首先通过传感器数据-、社交网络数据等获得各种类型的结构化、半
结构化及非结构化的海量数据:对数据进行提取、转换、加载:最终挖掘数据的潜在价值:
把采集到的数据都存储起来,建立相应的数据库,进行管理和调用;通过已有数据的统计分
析技术和未知数据的挖掘技术,从海量的数据中提取有用的知识;最终将大数据分析与预测
结果以计算机图形或图像的方式展示给用户。
2.说出数据分析过程中各阶段所用到的几种工具。
答:数据采集工具一一Selenium和PhantomJS:数据清洗工具一一Kettle:数据存储工
具----MongoDB和MySQL:机器学习工具----Scikit-learn;数据可视化工具----Matplollib、
PyEcharts、Superset0
第3章练习
一、选择题
1.观察系统动态进程的命令是(B)
A.freeB.topC.lastconimD.df
2.系统中某文件的组外权限是只读、属主权限是全部、组内权限是可读可写,那么该文
件权限为(D)
A.467B.674C.476D.764
3.解压缩文件mydjango.iar.gz可以执行(A)
A.tar-zxvfmydjango.tar.gz
B.tar-xvzmydjango.tar.gz
C.tar-czfmydjango.tar.gz
D.tar-xvfmydjango.tar.gz
4.卜・列哪一项包含了主机名到IP地址映射关系的文件?(B)
A./etc/hostnameB./etc/hosts
C./etc/resolv.confD./etc/networks
5.退出交互式shell,应该输入什么命令?(D)
A.q!B.quitC.;D.exit
二、判断题
1.Linux配置文件一般放在bin目录。(X)
2.改变文件属主的命令是chmod。(X)
3,ping命令常用于检测网络主机是否可达。(V)
4.cd命令可以改变用户的当前目录,当用户键入命令“cd”并按Emer键后,当前目录
改为根目录。(J)
5.按下<Cirl+C>键能终止当前命令的运行。(V)
三、简答题
1.什么是Linux?创始人是谁?有哪些版本?
答:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX
的多用户、多任务、支持多线程和多CPU的操作系统。创始人是芬兰人林纳斯・托瓦兹。版
本:Fedora、Debian、Ubuntu.Genloo、FreeBSDCentOS.......
2.请简单描述Linux系统安装完成后系统配置的步骤。
答:①修改用户权限:在root用户权限下(切换至roo【用户),修改文件/etc/sudoers,
在rootALL=(ALL)ALL下方力「入hadoopALL=(ALL)ALL,保存文件。
②关闭防火墙:使内网集群间的通信不受影响。
③新建资源目录:在目录饰1下新建两个文件夹sofiwares和modules,用于存储软件安
装包和安装后的文件。
3.执行命令“ls-1”时,某行显示:
-nv-r-r-1chrischris207Jul2011:58mydata
(1)用户chris对该文件有什么权限?
答:读写
(2)执行命令"useraddTom”后,用户Tom对该文件有叶么权限?
答:只读
(3)如何使得全部用户拥有对该文件的所有权限?
答:chmod777mydata
(4)如何将文件属主更改为root?
答:chownrootmydata
三、设计题
I.给定100万个字符串,其中有些是相同的(重复),需要把重复的全部去掉,保留没
有重复的字符串。请结合MapReduce编程模型给出设计思路或核心代码。
思路:分而治之。根据MapReduce的工作原理可知,MapReduce的Shuffle阶段会将
Map任务的结果数据进行分区,并按照key进行分组,同一组的数据将输入到同个Reduce
任务中进行处理。而根据key分组的过程,实际上就是去重的过程。因此,将每个字符串作
为key即可达到数据去重的目的。
publicstaticclassProjectionMapextendsMapper<LongWritable,Text,Text,NulIWritable>{
privateintclo;
projectvoidsetup(Contextcontext)throwsIOException,InterruptedException(
col=context.getConfiguration().getInt(llcor\0);
}
publicvoidmap(LongWritableoffset.Textline.Contextcontext){
relationArecord=newRelationA(line.toStringO);
context.writc(ncwTcxt(rccord.gctCol(col)),NullWriiablc.gct());
)
}
publicstaticclassProjcctionRcduccextendsRcduccr<Tcx(.NullWri(ablc,Tcx(,NullWritablc>{
publicvoidreduce(Textkey,Ilerable<NullWritable>value,Contextcontext)throws
IOExccption,IntcnuptcdExccption{
context.writc(kc),NunWritablc.gc(());
)
}
2.请在下面程序的下划线中补充完整程序(共8处)。
publicclassWordCount{
publicstaticclassTokeni?erMapperextends
Mapper<Object.Text.Text.InlWritable>{
privatefinalstaticIntWritableone=newIntWritable(l);
privateTextword=newText();
publicvoidmap(LongWritablekey.Textvaluc.Contcxtcontext){
StringTokenizeritr=newStringTokenizer(value.toStringO);
while(itr.hasMoreTokensO){
word.sct(itr.ncxtTokcnO);
context.write(word,one);
}
)
)
publicstaticclassIntSumReducerextends
Rcduccr<Text.InlWritable.Text,IntWritablO{
privateIntWritableresult=newIntWritable();
publicvoidreduce(Text,key,Iterable<IntWritable>values.Contextcontext){
intsum=0;
for(IntWritableval:values){
sum+=val.get();
result.set(sum);
contcxt.writc(key.result);
publicstaticvoidmain(String[]args)throwsException{
第5章练习
一、选择题
1.最早是Cloudcra提供的日志收集系统,目前是Apache下的一个孵化项目,支持在日
志系统中定制各类数据发送方,用于收集数据的工具是?(A)
A.FlumeB.ZooKeeper
C.StormD.SparkStreaming
2.作为分布式消息队列,既有很高的吞吐量,又有较高的可靠性和扩展性,同时接受
SparkStreaming的请求,将流量日志按序发送给SparkStreaming集群是?(C)
A.FlumeB.ZooKccpcr
C.KafkaD.SparkStreaming
3.Spark组成部件包括?(多选)(BC)
A.ResourceManagerB.Executor
C.DriverD.RDD
4.下面不属于Spark四大组件的有?(多选)(AC)
A.SparkRB.MLlib
C.pysparkD.SparkStreaming
二、判断题
l.Yarn可以作为Spark的资源调度框架。(7)
2.scala的基本数据类型和java完全一致。(X)
3.如果将以下程序中第10行的(x,l)换成(x「l),输出结果不变。(V)
6*defmain(args:Array[String]){
valsource-Source.fromFile("input/exam.data","UTF-8").getLines().toArray
8-•••source',
9.flatMap(x=>x.trim().split(""))
•map(x=>(x,))
11.groupBy(x=>x._l)
12.map(x->(x._l,x._2.length))
13.toList.sortBy(x«>x._2)
14.foreach(x->print(x))
15)(
三、思考题
1.已知exam.data文件中数据为:abcaabca,请写出下列程序的运行结果。
valsource=Source.fromFile(input/exam.data,UTF-8).getLines().toArray
source.flatMap(x=>.split("")).tnap(x=>(x,U
,groupBy(x=>x._l)
.map(x=>(x._l,x._2.length))
.toList.sortBy(x=>-x._2)
.foreach(x=>print(x))
答:(b.2)(c,3)(a,4)
2.已知已有学生数据如F:
性别
姓
名
1班绘学号出生年月血型霸庭住址身高手机号
傅
男
张
拢
2RB171RB171011997-02-10AB河匿省莫州市1号17211122223333
刚
女
冯成
30RB171河南省洛田市号
RB17102兴1996-10-01A217518837110115
男
M洋
4RB171RB17103龙,可甯等开封市3号16519999228822
男1998-08-028
飞
扬
5RD171RD17104林199G-00-09AD河咫看安阳市4号]]60133225X455
女
松
要河南香T壁市号。
6RB172RB17201飞1997-01-93A11713688552244
男
高
撵何匿省所多市2号17113522114455
女
7RB172RB17202何1996-88-27B
8RB172RB172031997-12-20B河南省焦作市3号16813566998855
请写出下列程序的作用。
defmain(args:Array[String]){
valsource=scala.io.Source.fromFile("input/students.data","UTF-8")
.getLines().toArray
valphone=source.map(.trim().split(""))
.filter(_.length==)
.map(x=>(x(),x().substring(,).replaceAll(M-",°")))
.toList
.groupBy(_,_2)
.mapvalues(_.m叩
.toList
.foreach(println())
}
答:求平均年龄
第6章练习
一、简答题
1.为什么Redis需要把所有数据放到内存中?
答:Redis为了达到最快的读写速度,将数据都读到内存中,并通过异步的方式将数据
写入磁盘,所以Rcdis具有快速和数据持久化的特征。如果不将数据放在内存中,磁盘I/O
速度为严重影响Redis的性能,
2.如何保证Katka顺序消贽?
答:相同的业务ID设置为同一个key,存放到同一个分区中;每个分区中有单独对应
的一个消费者实现消费。
3.SparkStreaming是如何与Kafka整合的?
答:①Receiver接收方式KafkaUtils.crcatcDstrcani:通过ZooKccpcr来连接Kafka队列,
调用Kafka高阶API.offset存储在ZooKeeper,由Receiver维护。该模式可能会出现数据
不一致等问题,当前已不适合在开发中使用。
②Direci直连方式KafkaUtils.creatcDireciStrcam:直接连接Kafka分区来获取数据,从
每个分区直接读取数据大大提高了并行能力,调用Katki低阶API(底层API),offsel自己
存储和维护,默认由Spark维护在checkpoint中。
二、设计题
已知表a中字段内容如下:
字段字段含义
index数据id
child_comment回复数量
comment_time评论时间
conlent评论内容
da_v微博个人认证
like_stalus赞
pic图片评论url
user_id微博用户id
username微博用户名
vip_rank微博会员等级
siamp时间戳
要求:
1.在kafka中创建comment主题,设置2个分区2个副本:
答:kafka-topics.sh—create-zookeepermaster:2181,slavel:2181,slave2:2181—replication
factor2-partitions2-topiccomment
2.使用SparkStreaming对接kaflia后进行计算,查询并输出微博会员等级为5的用户。
3.查询并输出评论费的个数在10个以上的数据。
答:2、3题程序如下
importjava.sql.{Connection.DrivcrManagcr,PrcparcdStatcmcni}
importjava.text.SimpleDateFormat
importorg.apache.kafka.clients.consumer.ConsumerRecord
importmon.scrialization.SlringDcscrializer
importorg.apache.spark.{SparkConf,SparkContext)
importorg.apache.spark.rdd.RDD
importorg.apachc.spark.strcaming.{Seconds,StrcainingContcxt)
importorg;ip;iche.spnrkstrenmingdKtre;im.{DStrenm,InputDStrenm)
importorg.apache.spark.streaming.kafkaOI0.{ConsunierStrategies,KafkaUtils,Locationstrategies}
objectSparkStreaming{
defmain(args:Array[String]):Unit={
valsparkConf:SparkConf=new
SparkConf().setMaster("I(x:al[*]").setAppName("SparkStreaming")
valssc=newStreamingContext(sparkConf,Seconds(3))
valkafkaParams=Map[Siring.Object](
"bootstrap.senders"->"hadoopO1:9092,had(x)p02:9092,hadcop03:9092",
"key.deserializer"->classOfIStringDeseriaiizer],
"valuc.deserializcr"->classOf[SiringDcscrializer].
"group.id"->"SparkKakaDemo",
"auto.offset.reset"->"latest",
"mit"->(false:java.lang.Boolean)
vartopics=Array("rng_comment")
valrecordDStream:InputDStream[ConsumerRecond[String,String]]
KafkaUtils.creatcDircctStrcam[Siring.String|(ssc,
L(x:ationStrategies.PreferConsistent,
ConsumerScrategies.Subscribe|S(ring,String](topics,kafkaPaiams))
valresukDStream:DS(ream[Array[Siring]]
recordDStream.map(_.value()).map(_.split("\t")).cache()
〃2、杳询出微博会员等级为5的用户。
resullDStream.filter(_(9)=="5")foreachRDD{
rdd:RDD|ArrayIString11=>{
rdd.foreachPartition{
iter:Iterator!ArrayfString]]=>{
Class.forName("com.mysql.jdbc.Driver")
valconnection:Connection:
DrivcrManagcr.gc(Conncction("jdbc:mysql://localhost:3306/mg_comincnt?characterEncoding=U
TF-8","root,',"root")
valsql="insertintovip_rankvalues(?,?????,?????)"
itcr.forcach{
line:ArrayfString]=>{
valstatement:PrcparcdStatcmcnt=conncction.prcparcStatcmcnt(sqi)
statcmcn(.sctlnt(1,linc(0).(oln();
statement.setlnt(2,line(1).tolnt);
statement.setString(3,line(2));
statcincnt.setString(4,line(3));
statement.selString(5,line(4));
statement.setString(6,line(5));
statcmcnt.seiString(7,line(6));
statement.setString(8,line(7));
statement.setString(9,line(8));
statcmcnt.sctlnt(10,line(9).tolnt);
statement.setString(l1,line(10));
statement.executeUpdate()
statement.close()
)
I
conncction.closeO
)
)
}
]
〃3、查询并输出评论赞的个数在10个以上的数据。
resultDStream.filter(_(5).tolnt>10).foreachRDD{
rdd:RDD[Array[String]]=>{
rdd.foreachPartition{
iter:Iterator!Array[String]]=>{
Class.forNamcC'com.mysql.jdbc.Driver")
valconnection:Connection=
DriverManager.getConnection("jdbc:mysql://localhost:3306/rng_coinment?characterEncoding=U
TF-8","root","root")
varsql="insertintolike_statusvalues(?????,?,?????)"
iter.(breach{
line:ArrayfSlringl=>{
valstatement:PreparedStatement=connecticn.piepareStatenient(sql)
statement.setlnt(1,line(O).toInt);
statement.setlnt(2,line(l).tolnt);
statement.setString(3,line(2));
statement.se(String(4,line(3));
statemcni.setString(5,linc(4));
statement.setStiing(6,line(5));
stalement.setString(7,line(6));
statement.se(String(8,linc(7));
statement.setString(9,line(8));
statcmcnt.sctInt(10,linc(9).tolnt);
statement.setString(11,line(10));
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老年人排泄照料的常见问题解答
- 上海工商职业技术学院《安装工程概预算》2025-2026学年第一学期期末试卷(A卷)
- 初中生2025年情绪健康指导心理健康说课稿
- 上海工商职业技术学院《Android 开发技术课程设计》2025-2026学年第一学期期末试卷(A卷)
- 美发护理常见误区解析
- 2026年桥说课稿导入
- 上饶卫生健康职业学院《AUTOCAD 制图》2025-2026学年第一学期期末试卷(B卷)
- 肾积水患儿的护理实践
- 上海音乐学院《安全工程》2025-2026学年第一学期期末试卷(A卷)
- 上海音乐学院《Android 应用开发课程设计》2025-2026学年第一学期期末试卷(B卷)
- JJG 1192-2023电动汽车非车载充电机校验仪
- 飞轮储能技术基础
- SEW电机制动器课件
- 生产车间日常安全检查表
- 2023年中央纪委国家监委驻中国国家铁路集团有限公司招聘笔试题库及答案解析
- 休克-最新课件
- 口腔固定修复体制作教学大纲
- 2B Lesson 15 The mud bath
- 格兰诺维特-经济行为与社会结构(沈原译)
- 铸件尺寸公差ISO806232007中文
- 大型活动策划与管理课程标准
评论
0/150
提交评论