大数据练习题答案(仅供参考)
上一篇练习题的答案,题目里带括号的都是批注,如果看的不清楚,可以去我的资源下载(资源里批注清楚,都是红色批出来的)
一、选择题
- Hadoop作者 ( C )
A、Martin Fowler B、Kent Beck
C、Doug cutting D、Grace Hopper - Hadoop起始于以下哪个阶段? ( D )
A、2004年,Nutch的开发者开发了NDFS。
B、2004年,Google发表了关于MapReduce的论文。
C、2003年,Google发布了GFS论文。
D、2002年,Apach项目的Nutch。 - 在Centos7中,如果想要查看本机的主机名可以使用下面哪个命令? ( B )
A、reboot(重启) B、hostname
C、pwd (查看当前工作路径) D、tail(查看文件最后1kb内容) - 关于大数据的价值密度描述正确的是以下哪个? ( A )
A、大数据由于其数据量大,所以其价值密度低。
B、大数据由于其数据量大,所以其价值也大。
C、大数据的价值密度是指其数据类型多且复杂。
D、大数据由于其数据量大,所以其价值密度高。 - Hadoop的三种安装模式不包括以下哪种? ( A )
A、两分布式模式 B、完全分布式模式
C、伪分布模式 D、单机模式 - 以下哪一项属于非结构化数据。 ( C )
A. 企业ERP数据 B. 财务系统数据
C. 视频监控数据 D. 日志数据 - 下面哪个程序负责 HDFS 数据存储 ( C )
A. NameNode B.Jobtracker
C. Datanode D. secondaryNameNode - HDFS1.0 默认 Block Size大小是多少 ( B )
A. 32MB B. 64MB
C. 128MB D. 256MB - Hadoop-2.x集群中的HDFS的默认的副本块的个数是?( A )
A、3 B、2
C、1 D、4 - 关于HDFS集群中的DataNode的描述不正确的是( A )
A、一个DataNode上存储的所有数据块可以有相同的
B、存储客户端上传的数据的数据块
C、DataNode之间可以互相通信
D、响应客户端的所有读写数据请求,为客户端的存储和读取数据提供支撑 - 关于SecondaryNameNode哪项是正确的( A )
A、它目的是帮助NameNode合并编辑日志,减少NameNode的负担和冷启动时的加载时间
B、它对内存没有要求(SecondaryNameNode也是在内存中合并的)
C、它是NameNode的热备(冷备)
D、SecondaryNameNode应与NameNode部署到一个节点(SecondaryNameNode通常与NameNode在不同的计算机上运行,因为它的内存需求与NameNode相同,这样可以减轻NameNode所在计算机的压力) - 一个gzip文件大小75MB,客户端设置Block大小为64MB,请问其占用几个Block?( B )
A、3 B、2
C、4 D、1 - HDFS有一个gzip文件大小75MB,客户端设置Block大小为64MB。当运行mapreduce任务读取该文件时input split大小为 ( D )
A、一个map读取64MB,另外一个map读取11MB
B、128MB
C、64MB
D、75MB - HDFS有一个LZO(with index)文件大小75MB,客户端设置Block大小为64MB。当运行mapreduce任务读取该文件时input split大小为 ( A )
A、一个map读取64MB,另外一个map读取11MB
B、64MB
C、75MB
D、128MB - Client 端上传文件的时候下列哪项正确? ( B )
A. 数据经过 NameNode 传递给 DataNode(不经过NameNode)
B. Client 端将文件切分为 Block,依次上传
C. Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作(Client 向 NameNode 发起文件写入的请求。NameNode 根据文件大小和文件块配置情况,返回给 Client 它所管理部分 DataNode 的信息。Client 将文件划分为多个 Block,根据 DataNode 的地址信息,按顺序写入到每一个DataNode 块中。)
D. 以上都不正确 - HDFS是基于流数据模式访问和处理超大文件的需求而开发的,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,适合的读写任务是 ( D )
A. 一次写入,少次读
B. 多次写入,少次读
C. 多次写入,多次读
D. 一次写入,多次读 - 配置机架感知的下面哪项正确 ( D )
A、MapReduce会根据机架获取离自己比较近的网络数据
B、写入数据的时候会写到不同机架的DataNode
C、如果一个机架出问题,不会影响数据读写
D、都正确 - Hadoop1.0默认的调度器策略是哪个 ( A )
A. 先进先出调度器 B. 计算能力调度器
C. 公平调度器 D. 优先级调度器 - 若不针对MapReduce编程模型中的key和value值进行特别设置,下列哪一项是MapReduce不适宜的运算。 ( D )
A. Max B. Min
C. Count D. Average - 下列关于MapReduce说法不正确的是 ( C )
A. MapReduce是一种计算框架
B.MapReduce来源于google的学术论文
C. MapReduce程序只能用java语言编写
D. MapReduce隐藏了并行计算的细节,方便使用
二、判断题
- Hadoop 支持数据的随机读写。 (不支持) ( × )
- Hadoop实现了一个分布式文件系统,简称HDFS。 ( √ )
- 在大数据框架中,批处理系统一般不适用于对延时要示较高的场景。 ( √ )
- 我国的大数据产业政策一直在有序推进,工业和信息化部在2017年1月正式印发了《大数据产业发展规划》。 ( √ )
- hadoop2.7.3默认块的大小是64MB (128MB) ( × )
- HDFS系统为了容错保证数据块完整性,每一块数据都采用2份副本。 ( √ )
- HDFS以流的形式访问文件系统中的数据。 ( √ )
- NameNode 负责管理元数据信息metadata,client 端每次读写请求,它都会从磁盘(内存)中读取或会写入 metadata 信息并反馈给 client 端。 ( × )
- HDFS既适合超大数据集存储,也(不)适合小数据集的存储。 ( × )
- HDFS为海量的数据提供了存储,而MapReduce为海量的数据提供了计算。 ( √ )
- 如果NameNode意外终止,SecondaryNameNode会接替它使集群继续工作。( × )
- NameNode本地磁盘(内存)保存了Block的位置信息。 ( × )
- 因为HDFS有多个副本,所以NameNode是不存在单点问题的。(存在) ( × )
- Hadoop1.0和2.0都具备完善的HDFS HA策略。 (1.0没有) ( × )
- HDFS系统采用NameNode定期向DataNode发送心跳消息,用于检测系统是否正常运行。(DataNode向NameNode发送) ( × )
- Hadoop下使用MapRecue。用户只要继承MapReduceBase,提供分别实现Map和Reduce的两个类,并注册Job即可自动分布式运行。 ( √ )
- Hadoop是Java开发的,所以MapReduce只支持Java语言编写。 ( × )
- MapReduce 的 input split 一定是一个 block。(默认是) ( × )
- MapReduce适于PB级别以上的海量数据在线处理。(离线) ( × )
- MapReduce计算过程中,相同的key默认会被发送到同一个reduce task处理。( √ )
三、问答题
- 简述数据产生方式的变革
①运营式系统阶段 建立在数据库上的大量运营系统产生的结构化信息,数据产生是被动的
②用户原创内容阶段 大量上网用户本身就是内容的产生者,数据量急剧增加,数据产生是主动的
③感知式系统阶段 物联网发展,物联网的设备自动产生数据,短时间内生成更密集、更大量的数据 - 说说大数据与云计算、物联网的关系
三者相辅相成
大数据分析的很多技术来自云计算,大数据为云计算提供用武之地
物联网产生大数据,物联网借助云计算和大数据技术实现物联网大数据的存储、分析和处理 - 简述hadoop的安装配置
1.创建hadoop账户
2.上传、安装和配置jdk
3.上传和安装hadoop
4.配置hadoop环境变量
5.配置hadoop配置文件(core-site.xml、hdfs-site.xml、yarn-site.xml)
6.格式化名称节点(hadoop namenode -format)
7.ssh免密登录
8.启动hadoop - 简述名称节点、数据节点、第二名称节点
名称节点(NameNode)负责管理分布式文件系统的命名空间,由FSImage和Editlog组成
FsImage用于维护文件系统树和文件树中所有文件和文件夹的元数据,操作日志文件Editlog记录所有针对文件的创建、删除、重命名的操作
数据节点(DataNode)负责数据的存储和读取
第二名称节点(SecondaryNameNode)可以完成FSImage和Editlog的合并操作,减小Editlog文件大小,缩短名称节点启动时间。同时起到了NameNode冷备的作用 - 简述HDFS副本放置策略
①如果是在集群内发起的写操作,则把第一个副本放置在发起写操作请求的数据节点上,实现就近写入数据。如果是来自集群外部的写操作请求,则从集群内部挑选一台磁盘不满、cpu不太忙的数据结点,作为第一个副本的存放地
②第二个副本放在与第一个副本不同的机架的数据节点上
③第三个副本放在与第一个副本相同的机架的其他节点上
④如果有更多副本,则继续从集群中随机选择数据节点进行存放 - 叙述HDFS读数据流程
当客户端需要读取文件时,首先向NameNode发起读请求,NameNode收到请求后,会将请求文件的数据块在DataNode中的具体位置(元数据信息)返回给客户端,客户端根据文件数据块的位置,直接找到相应的DataNode发起读请求 - 叙述HDFS写数据流程
当客户端需要写文件时,首先是向NameNode发起写请求,将需要写入的文件名、文件大小等信息告诉NameNode。NameNode会将文件信息记录到本地,同事会验证客户端的写入权限,若验证通过,会向客户端返回文件数据块能够存放在DataNode上的存储位置信息,然后客户端直接向DataNode的相应位置写入数据块。被写入的数据块的DataNode也会将数据块备份到其他DataNode上 - 简述MapReduce(策略、理念、工作流程)
策略:分而治之
理念:计算向数据靠拢
工作流程:一个大的MapReduce作业,首先会被拆分成许多个Map任务在多台机器上并行执行,每个Map任务通常运行在数据存储的节点上。当Map任务结束后,会生成许多中间结果。这些中间结果会被分发到多个Reduce任务在多台机器上并行执行,Reduce任务会对中间结果进行汇总计算得到最后结果,并输出到分布式文件系统中。 - 简述hadoop2.0对hadoop1.0的HDFS和MapReduce的改进
①Hadoop1.0中的HDFS,单一名称节点,存在单点失效问题,在hadoop2.0中设计了HDFS HA,提供了名称节点热备份机制,即在一个集群中运行两个NameNode,一个处于活跃状态(active),一个处于备用状态(standby),两个NameNode元数据信息同步Editlog共享,只有活跃状态的NameNode对外提供读写服务,当活跃状态的NameNode崩溃,HDFS集群迅速切换到备用的NameNode
②Hadoop1.0中的HDFS,单一命名空间,无法实现资源隔离,在hadoop2.0中设计了HDFS联邦,管理多个命名空间,即设计了多个相互独立的名称节点,这些名称节点分别进行各自命名空间的管理,相互之间是联邦关系,不需要彼此协调。
③MapReduce1.0的资源管理效率底下,在hadoop2.0中设计了新的资源管理框架YARN,将原来JobTracker三大功能(资源管理、任务调度、任务监督)进行拆分,YARN包括ResourceManager、ApplicationMaster和NodeManager,由ResourceManager负责资源管理,ApplicationMaster负责任务调度和监督,NodeManager定时向ResourceManager汇报本节点上资源使用情况和各个Container的运行状态,同事接受并处理来自ApplicationMaster的Container启动/停止等请求 - 大数据的概念(4V特征)
①数据量大(Volume) 数据量大,TB,PB,乃至EB等数据量的数据需要分析处理。
②数据类型繁多(Variety)大数据数据类型丰富,包括结构化数据和非结构化数据,非结构化数据越来越多,包括网络日志、音频、视频、图片、地理位置信息等。
③处理速度快(Velocity)大数据时代很多应用都需要基于快速生成的数据给出实时分析结果
④价值密度低(Value)很多有价值的信息都是分散在海量数据的
四、应用题
- CentOS 7修改静态ip
修改ip为192.168.1.26,网关为192.168.1.1
①登录虚拟机
②切换到root用户下
③切换到修改ip的目录下
[root@master /]# cd /etc/sysconfig/network-scripts
④已知网络配置文件为ifcfg-ens33,修改下列文件,使其符合题意
TYPE=“Ethernet”
PROXY_METHOD=“none”
BROWSER_ONLY=“no”
BOOTPROTO=“none”
DEFROUTE=“yes”
IPV4_FAILURE_FATAL=“no”
IPV6INIT=“yes”
IPV6_AUTOCONF=“yes”
IPV6_DEFROUTE=“yes”
IPV6_FAILURE_FATAL=“no”
IPV6_ADDR_GEN_MODE=“stable-privacy”
NAME=“ens33”
UUID=“ab60d501-535b-49f5-a76b-3336a4120f64”
DEVICE=“ens33”
ONBOOT=“yes”
IPADDR=192.168.137.129 192.168.1.26
PREFIX=24
GATEWAY=192.168.137.2 192.168.1.1
DNS1=202.99.192.68
IPV6_PRIVACY=”no”
⑤重启网卡
[root@master network-scripts]# systemctl restart network
⑥测试连通性(和192.168.1.65测试即可)
[root@master network-scripts]# ping 192.168.1.65 -c 3 - 修改hadoop配置文件core-site.xml
<configuration><property>
<!--HDFS 的默认访问路径(NameNode的访问地址)--><name>fs.defauleFs </name><value>hdfs://node1:9000</value></property><property>
<!--Hadoop数据文件的存放目录--><name>hadoop.tmp.dir</name><value>/opt/hadoop-2.5</value></property>
</configuration>
修改hadoop配置文件hdfs-site.xml
<configuration><property>
<!--文件在HDFS系统中的副本数 3--><name>dfs.replication</name><value>3</value></property><property>
<!--NameNode节点数据在本地文件系统的存放位置--><name>dfs.namenode.name.dir</name><value>file:/opt/media/hadoop-2.6.0/dfs/name</value></property><property>
<!--DataNode节点数据在本地文件的存放位置--><name>dfs.datanode.data.dir</name><value>file:/opt/medis/hadoop-2.6.0/dfs/data</value></property>
</configuration>
五、编程题
1已知Linux系统为CentOs7系统,已知hadoop启动目录/simple/hadoop2.7.3/sbin,请依次写出命令。启动hadoop、查看hadoop进程是否全部启动、递归查看当前HDFS有那些文件、在HDFS的根目录创建input目录、在本地/simple目录下创建文件data.txt并上传到HDFS的/input目录下、将集群上的/input/data.txt下载到/appdata(该目录已存在)、最后关闭hadoop
[root@master /]#cd /simple/hadoop2.7.3/sbin
[root@master sbin]#start-all.sh
[root@master sbin]#jps
[root@master sbin]#hadoop fs -ls -R /
[root@master sbin]#hadoop fs -mkdir /input
[root@master sbin]#cd /simple
[root@master simple]#touch data.txt
[root@master simple]#hadoop fs -put data.txt /input
[root@master simple]#hadoop fs -get /input/data.txt /appdata
[root@master simple]#cd /simple/hadoop2.7.3/sbin
[root@master sbin]#stop-all.sh
- 已知当前hadoop已全部正常启动,且HDFS的根目录下不存在hdfstest的目录,用到的ip和端口写192.168.1.26:9000
使用java api,在HDFS的根目录下,创建名为hdfstest的目录
import org.apache.hadoop.fs.FileSystem;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import java.io.IOException;
public class MakeDir{public static void main(String[] args)throws IOException,InterruptedException{FileSystem fs = FileSystem.get(new URI("hdfs://192.168.1.26:9000"), new Configuration(), "root");Boolean flag = fs.mkdirs(new Path("/hdfstest"));System.out.println(flag?"创建成功":"创建失败");}
}
- MapReduce计算平均成绩,数据(已写好,计算即可)存放在hdfs的/input/data.txt里,用到的ip和端口写192.168.1.26:9000,当前hadoop已正常启动
第一列为编号,第二列为成绩,用”\t”分隔,数据样式如下所示:
9000 98
9001 99
9002 67
9003 45
9004 45
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import java.io.IOException;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.fs.Path;public class Score {public static class Map extends Mapper<LongWritable,Text,Text,LongWritable>{private Text newkey = new Text("k");private LongWritable newvalue = new LongWritable();public void map(LongWritable key,Text value,Context context) throws IOException,InterruptedException{String lines = value.toString();String Arr[] = lines.split("\t");Long score = Long.parseLong(Arr[1]);newvalue.set(score);context.write(newkey,newvalue);}}public static class Reduce extends Reducer<Text,LongWritable,Text,Text>{private Text newkey = new Text("sum");private Text newvalue = new Text();public void reduce(Text key,Iterable<LongWritable> values,Context context) throws IOException,InterruptedException{long sum = 0;double count = 0;for(LongWritable value:values) {sum += value.get();count++;}newvalue.set((sum/count)+"");context.write(newkey,newvalue);}}public static void main(String[] args) throws Exception{Job job = Job.getInstance(new Configuration());job.setJarByClass(Score.class);job.setMapperClass(Map.class);job.setReducerClass(Reduce.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(LongWritable.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(Text.class);FileInputFormat.setInputPaths(job,new Path("hdfs://192.168.1.26:9000/input/data1.txt"));FileOutputFormat.setOutputPath(job,new Path("hdfs://192.168.1.26:9000/output"));System.exit(job.waitForCompletion(true)?0:1);}
}
答案仅供参考,如果有错误,可以在评论区指正或者私信也行
大数据练习题答案(仅供参考)相关推荐
- ITAT 第九届 模拟题 C语言程序设计 参考答案(个人答案 仅供参考)
第九届全国信息技术应用水平大赛模拟题 C语言程序设计 注:模拟题题量总计88道,其中单选题60道,每道题1分:多选题20道,每道题2分:程序填充题6道,每道题5分:编程操作题2 道,每道题10分.试卷 ...
- 操作系统P,V(wait,signal原语)操作讲解,以及两个例题(答案仅供参考)
操作系统的pv操作是很核心的概念. 临界区 : 我们把并发进程中与共享变量有关的程序段称为临界区. 信号量 : 信号量的值与相应资源的使用情况有关.当它的值大于0时,表示当前可用资源的数量:当它的值小 ...
- 【Java应用程序开发】【期末复习题】【2022秋】【答案仅供参考】
文章目录 零.考试说明 一.单选题(175-2-2题,1') 二.多选题(16题,2') 三.判断题(20题,1') 四.简答题(18题,5') 五.编程题(9题,10') 零.考试说明 答题时长:9 ...
- 初级php基础知识问答题(答案仅供参考)
php基础阶段内容 一. php 基本概念,常规语法 1.什么是php? Hypertext Preprocessor,超文本预处理器,它是个被广泛运用在网页程式撰写的语言,尤其是它能适用于网页程式的 ...
- 移动框架(大题)(仅供参考)
我心想也就是三道大题,老师上课讲的比较重要的也就是AngluarJs的脏检查 路由等和ionic的CSS之类的大题填写,三道大题,按照往年惯例,都是填写,片段整体填写混在一起.以下仅提供照片,大家自己 ...
- 百战程序员试题与答案(仅供参考)
JAVA基础篇 1.你学习编程的目的是什么?学习编程最快的办法是什么? 答案:我觉得多敲代码,多思考学的能快一点 2.程序员的职业规划是什么?我怎么能拿到10万年薪,30万年薪,50万年薪? 答案:努 ...
- Spark 练习测试题(答案仅供参考)
选择题 1. spark 的四大组件下面哪个不是 (D) A.Spark Streaming B MLlib C Graph X D Spark R 2. Hadoop框 ...
- JavaScript基础知识问答题(答案仅供参考)
php高中班javascript答辩题目 什么是javascript? 答:Javascript是一种专门设计用来增强网页交互性的脚本语言,它也是一种解释型语言. Javascript与C语言的 ...
- 2022年,英文科技论文写作与学术报告期末考试答案(仅供参考)
最新文章
- 服务器架设笔记——打通MySQL和Apache
- 我为 VS Code 开发了一个 Deno 插件
- css3 混合,瞧瞧CSS3的混合模式
- win10 1709电脑无法显示局域网共享
- 如何使用Web of Science进行文献追踪?
- 三十六、Java集合中的HashMap
- QT的QDomElement类的使用
- 【python数据挖掘课程】二十五.Matplotlib绘制带主题及聚类类标的散点图
- 原来,爱情是与旁观者有关的。。。
- 子进程会继承父进程的哪些内容_【学习教程】Node.js创建子进程方法
- Linux内存管理:内存描述之内存节点node
- Java常量池学习总结-1
- 全景视频拼接(三)--并查集法及源码分析
- 引路蜂地图API:Gis.Location包定义
- 【图像增强】基于matlab可见边缘梯度比率图像增强【含Matlab源码 1404期】
- Java基础算法看这一篇就够了,简单全面一发入魂
- 基于VHDL的交通灯设计(实训要求)
- 【Microsoft Azure 的1024种玩法】七.Azure云端搭建部署属于自己的维基百科
- 清华本科结业生两年的工作经历-献给游走在黑暗里的清华人
- 2022年春招美团二面总结 凉经