上一篇练习题的答案,题目里带括号的都是批注,如果看的不清楚,可以去我的资源下载(资源里批注清楚,都是红色批出来的)

一、选择题

  1. Hadoop作者 ( C )
    A、Martin Fowler B、Kent Beck
    C、Doug cutting D、Grace Hopper
  2. Hadoop起始于以下哪个阶段? ( D )
    A、2004年,Nutch的开发者开发了NDFS。
    B、2004年,Google发表了关于MapReduce的论文。
    C、2003年,Google发布了GFS论文。
    D、2002年,Apach项目的Nutch。
  3. 在Centos7中,如果想要查看本机的主机名可以使用下面哪个命令? ( B )
    A、reboot(重启) B、hostname
    C、pwd (查看当前工作路径) D、tail(查看文件最后1kb内容)
  4. 关于大数据的价值密度描述正确的是以下哪个? ( A )
    A、大数据由于其数据量大,所以其价值密度低。
    B、大数据由于其数据量大,所以其价值也大。
    C、大数据的价值密度是指其数据类型多且复杂。
    D、大数据由于其数据量大,所以其价值密度高。
  5. Hadoop的三种安装模式不包括以下哪种? ( A )
    A、两分布式模式 B、完全分布式模式
    C、伪分布模式 D、单机模式
  6. 以下哪一项属于非结构化数据。 ( C )
    A. 企业ERP数据 B. 财务系统数据
    C. 视频监控数据 D. 日志数据
  7. 下面哪个程序负责 HDFS 数据存储 ( C )
    A. NameNode B.Jobtracker
    C. Datanode D. secondaryNameNode
  8. HDFS1.0 默认 Block Size大小是多少 ( B )
    A. 32MB B. 64MB
    C. 128MB D. 256MB
  9. Hadoop-2.x集群中的HDFS的默认的副本块的个数是?( A )
    A、3 B、2
    C、1 D、4
  10. 关于HDFS集群中的DataNode的描述不正确的是( A )
    A、一个DataNode上存储的所有数据块可以有相同的
    B、存储客户端上传的数据的数据块
    C、DataNode之间可以互相通信
    D、响应客户端的所有读写数据请求,为客户端的存储和读取数据提供支撑
  11. 关于SecondaryNameNode哪项是正确的( A )
    A、它目的是帮助NameNode合并编辑日志,减少NameNode的负担和冷启动时的加载时间
    B、它对内存没有要求(SecondaryNameNode也是在内存中合并的)
    C、它是NameNode的热备(冷备)
    D、SecondaryNameNode应与NameNode部署到一个节点(SecondaryNameNode通常与NameNode在不同的计算机上运行,因为它的内存需求与NameNode相同,这样可以减轻NameNode所在计算机的压力)
  12. 一个gzip文件大小75MB,客户端设置Block大小为64MB,请问其占用几个Block?( B )
    A、3 B、2
    C、4 D、1
  13. HDFS有一个gzip文件大小75MB,客户端设置Block大小为64MB。当运行mapreduce任务读取该文件时input split大小为 ( D )
    A、一个map读取64MB,另外一个map读取11MB
    B、128MB
    C、64MB
    D、75MB
  14. HDFS有一个LZO(with index)文件大小75MB,客户端设置Block大小为64MB。当运行mapreduce任务读取该文件时input split大小为 ( A )
    A、一个map读取64MB,另外一个map读取11MB
    B、64MB
    C、75MB
    D、128MB
  15. Client 端上传文件的时候下列哪项正确? ( B )
    A. 数据经过 NameNode 传递给 DataNode(不经过NameNode)
    B. Client 端将文件切分为 Block,依次上传
    C. Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作(Client 向 NameNode 发起文件写入的请求。NameNode 根据文件大小和文件块配置情况,返回给 Client 它所管理部分 DataNode 的信息。Client 将文件划分为多个 Block,根据 DataNode 的地址信息,按顺序写入到每一个DataNode 块中。)
    D. 以上都不正确
  16. HDFS是基于流数据模式访问和处理超大文件的需求而开发的,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,适合的读写任务是 ( D )
    A. 一次写入,少次读
    B. 多次写入,少次读
    C. 多次写入,多次读
    D. 一次写入,多次读
  17. 配置机架感知的下面哪项正确 ( D )
    A、MapReduce会根据机架获取离自己比较近的网络数据
    B、写入数据的时候会写到不同机架的DataNode
    C、如果一个机架出问题,不会影响数据读写
    D、都正确
  18. Hadoop1.0默认的调度器策略是哪个 ( A )
    A. 先进先出调度器 B. 计算能力调度器
    C. 公平调度器 D. 优先级调度器
  19. 若不针对MapReduce编程模型中的key和value值进行特别设置,下列哪一项是MapReduce不适宜的运算。 ( D )
    A. Max B. Min
    C. Count D. Average
  20. 下列关于MapReduce说法不正确的是 ( C )
    A. MapReduce是一种计算框架
    B.MapReduce来源于google的学术论文
    C. MapReduce程序只能用java语言编写
    D. MapReduce隐藏了并行计算的细节,方便使用

二、判断题

  1. Hadoop 支持数据的随机读写。 (不支持) ( × )
  2. Hadoop实现了一个分布式文件系统,简称HDFS。 ( √ )
  3. 在大数据框架中,批处理系统一般不适用于对延时要示较高的场景。 ( √ )
  4. 我国的大数据产业政策一直在有序推进,工业和信息化部在2017年1月正式印发了《大数据产业发展规划》。 ( √ )
  5. hadoop2.7.3默认块的大小是64MB (128MB) ( × )
  6. HDFS系统为了容错保证数据块完整性,每一块数据都采用2份副本。 ( √ )
  7. HDFS以流的形式访问文件系统中的数据。 ( √ )
  8. NameNode 负责管理元数据信息metadata,client 端每次读写请求,它都会从磁盘(内存)中读取或会写入 metadata 信息并反馈给 client 端。 ( × )
  9. HDFS既适合超大数据集存储,也(不)适合小数据集的存储。 ( × )
  10. HDFS为海量的数据提供了存储,而MapReduce为海量的数据提供了计算。 ( √ )
  11. 如果NameNode意外终止,SecondaryNameNode会接替它使集群继续工作。( × )
  12. NameNode本地磁盘(内存)保存了Block的位置信息。 ( × )
  13. 因为HDFS有多个副本,所以NameNode是不存在单点问题的。(存在) ( × )
  14. Hadoop1.0和2.0都具备完善的HDFS HA策略。 (1.0没有) ( × )
  15. HDFS系统采用NameNode定期向DataNode发送心跳消息,用于检测系统是否正常运行。(DataNode向NameNode发送) ( × )
  16. Hadoop下使用MapRecue。用户只要继承MapReduceBase,提供分别实现Map和Reduce的两个类,并注册Job即可自动分布式运行。 ( √ )
  17. Hadoop是Java开发的,所以MapReduce只支持Java语言编写。 ( × )
  18. MapReduce 的 input split 一定是一个 block。(默认是) ( × )
  19. MapReduce适于PB级别以上的海量数据在线处理。(离线) ( × )
  20. MapReduce计算过程中,相同的key默认会被发送到同一个reduce task处理。( √ )

三、问答题

  1. 简述数据产生方式的变革
    ①运营式系统阶段 建立在数据库上的大量运营系统产生的结构化信息,数据产生是被动的
    ②用户原创内容阶段 大量上网用户本身就是内容的产生者,数据量急剧增加,数据产生是主动的
    ③感知式系统阶段 物联网发展,物联网的设备自动产生数据,短时间内生成更密集、更大量的数据
  2. 说说大数据与云计算、物联网的关系
    三者相辅相成
    大数据分析的很多技术来自云计算,大数据为云计算提供用武之地
    物联网产生大数据,物联网借助云计算和大数据技术实现物联网大数据的存储、分析和处理
  3. 简述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
  4. 简述名称节点、数据节点、第二名称节点
    名称节点(NameNode)负责管理分布式文件系统的命名空间,由FSImage和Editlog组成
    FsImage用于维护文件系统树和文件树中所有文件和文件夹的元数据,操作日志文件Editlog记录所有针对文件的创建、删除、重命名的操作
    数据节点(DataNode)负责数据的存储和读取
    第二名称节点(SecondaryNameNode)可以完成FSImage和Editlog的合并操作,减小Editlog文件大小,缩短名称节点启动时间。同时起到了NameNode冷备的作用
  5. 简述HDFS副本放置策略
    ①如果是在集群内发起的写操作,则把第一个副本放置在发起写操作请求的数据节点上,实现就近写入数据。如果是来自集群外部的写操作请求,则从集群内部挑选一台磁盘不满、cpu不太忙的数据结点,作为第一个副本的存放地
    ②第二个副本放在与第一个副本不同的机架的数据节点上
    ③第三个副本放在与第一个副本相同的机架的其他节点上
    ④如果有更多副本,则继续从集群中随机选择数据节点进行存放
  6. 叙述HDFS读数据流程
    当客户端需要读取文件时,首先向NameNode发起读请求,NameNode收到请求后,会将请求文件的数据块在DataNode中的具体位置(元数据信息)返回给客户端,客户端根据文件数据块的位置,直接找到相应的DataNode发起读请求
  7. 叙述HDFS写数据流程
    当客户端需要写文件时,首先是向NameNode发起写请求,将需要写入的文件名、文件大小等信息告诉NameNode。NameNode会将文件信息记录到本地,同事会验证客户端的写入权限,若验证通过,会向客户端返回文件数据块能够存放在DataNode上的存储位置信息,然后客户端直接向DataNode的相应位置写入数据块。被写入的数据块的DataNode也会将数据块备份到其他DataNode上
  8. 简述MapReduce(策略、理念、工作流程)
    策略:分而治之
    理念:计算向数据靠拢
    工作流程:一个大的MapReduce作业,首先会被拆分成许多个Map任务在多台机器上并行执行,每个Map任务通常运行在数据存储的节点上。当Map任务结束后,会生成许多中间结果。这些中间结果会被分发到多个Reduce任务在多台机器上并行执行,Reduce任务会对中间结果进行汇总计算得到最后结果,并输出到分布式文件系统中。
  9. 简述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启动/停止等请求
  10. 大数据的概念(4V特征)
    ①数据量大(Volume) 数据量大,TB,PB,乃至EB等数据量的数据需要分析处理。
    ②数据类型繁多(Variety)大数据数据类型丰富,包括结构化数据和非结构化数据,非结构化数据越来越多,包括网络日志、音频、视频、图片、地理位置信息等。
    ③处理速度快(Velocity)大数据时代很多应用都需要基于快速生成的数据给出实时分析结果
    ④价值密度低(Value)很多有价值的信息都是分散在海量数据的

四、应用题

  1. 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
  2. 修改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
  1. 已知当前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?"创建成功":"创建失败");}
}
  1. 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);}
}

答案仅供参考,如果有错误,可以在评论区指正或者私信也行

大数据练习题答案(仅供参考)相关推荐

  1. ITAT 第九届 模拟题 C语言程序设计 参考答案(个人答案 仅供参考)

    第九届全国信息技术应用水平大赛模拟题 C语言程序设计 注:模拟题题量总计88道,其中单选题60道,每道题1分:多选题20道,每道题2分:程序填充题6道,每道题5分:编程操作题2 道,每道题10分.试卷 ...

  2. 操作系统P,V(wait,signal原语)操作讲解,以及两个例题(答案仅供参考)

    操作系统的pv操作是很核心的概念. 临界区 : 我们把并发进程中与共享变量有关的程序段称为临界区. 信号量 : 信号量的值与相应资源的使用情况有关.当它的值大于0时,表示当前可用资源的数量:当它的值小 ...

  3. 【Java应用程序开发】【期末复习题】【2022秋】【答案仅供参考】

    文章目录 零.考试说明 一.单选题(175-2-2题,1') 二.多选题(16题,2') 三.判断题(20题,1') 四.简答题(18题,5') 五.编程题(9题,10') 零.考试说明 答题时长:9 ...

  4. 初级php基础知识问答题(答案仅供参考)

    php基础阶段内容 一. php 基本概念,常规语法 1.什么是php? Hypertext Preprocessor,超文本预处理器,它是个被广泛运用在网页程式撰写的语言,尤其是它能适用于网页程式的 ...

  5. 移动框架(大题)(仅供参考)

    我心想也就是三道大题,老师上课讲的比较重要的也就是AngluarJs的脏检查 路由等和ionic的CSS之类的大题填写,三道大题,按照往年惯例,都是填写,片段整体填写混在一起.以下仅提供照片,大家自己 ...

  6. 百战程序员试题与答案(仅供参考)

    JAVA基础篇 1.你学习编程的目的是什么?学习编程最快的办法是什么? 答案:我觉得多敲代码,多思考学的能快一点 2.程序员的职业规划是什么?我怎么能拿到10万年薪,30万年薪,50万年薪? 答案:努 ...

  7. Spark 练习测试题(答案仅供参考)

    选择题 1. spark 的四大组件下面哪个不是   (D) A.Spark Streaming      B MLlib      C Graph X    D Spark R 2. Hadoop框 ...

  8. JavaScript基础知识问答题(答案仅供参考)

     php高中班javascript答辩题目 什么是javascript? 答:Javascript是一种专门设计用来增强网页交互性的脚本语言,它也是一种解释型语言. Javascript与C语言的 ...

  9. 2022年,英文科技论文写作与学术报告期末考试答案(仅供参考)

最新文章

  1. 服务器架设笔记——打通MySQL和Apache
  2. 我为 VS Code 开发了一个 Deno 插件
  3. css3 混合,瞧瞧CSS3的混合模式
  4. win10 1709电脑无法显示局域网共享
  5. 如何使用Web of Science进行文献追踪?
  6. 三十六、Java集合中的HashMap
  7. QT的QDomElement类的使用
  8. 【python数据挖掘课程】二十五.Matplotlib绘制带主题及聚类类标的散点图
  9. 原来,爱情是与旁观者有关的。。。
  10. 子进程会继承父进程的哪些内容_【学习教程】Node.js创建子进程方法
  11. Linux内存管理:内存描述之内存节点node
  12. Java常量池学习总结-1
  13. 全景视频拼接(三)--并查集法及源码分析
  14. 引路蜂地图API:Gis.Location包定义
  15. 【图像增强】基于matlab可见边缘梯度比率图像增强【含Matlab源码 1404期】
  16. Java基础算法看这一篇就够了,简单全面一发入魂
  17. 基于VHDL的交通灯设计(实训要求)
  18. 【Microsoft Azure 的1024种玩法】七.Azure云端搭建部署属于自己的维基百科
  19. 清华本科结业生两年的工作经历-献给游走在黑暗里的清华人
  20. 2022年春招美团二面总结 凉经

热门文章

  1. jQuery 效果- 隐藏和显示
  2. Neo4J 统计根节点、叶节点个数
  3. 无标注数据是鸡肋还是宝藏?阿里工程师这样用它
  4. c#输入输出_C#基本输入/输出能力问题和答案
  5. 2020-10-30
  6. 数据库中的html代码放到div中放不进去
  7. perl脚本的简单调试方法
  8. 电信客户流失分析实战
  9. BIM软件汇总和信息互用
  10. LeetCode——桶的思想