hadoop课后题带答案(期末考试复习)

csdn上没标答案粗体,为了方便复习,资源文档链接放这https://download.csdn.net/download/qq_53891711/87591420

一、填空题

1.大数据的4V特征包含大量、多样、高速和价值。
2.Hadoop三大组件包含HDFS、MapReduce和Yarn。
3.Hadoop2.x版本中的HDFS是由NameNode、DataNode和Secondary NameNode组成。
4.Hadoop发行版本分为开源社区版和商业版。
5.目前Apache Hadoop发布的版本主要有Hadoop1.x、Hadoop2.x和Hadoop3.x。
6.Hadoop集群的部署方式分别是独立模式、伪分布式模式和完全分布式模式。
7.加载环境变量配置文件需要使用source /etc/profile命令。
8.格式化HDFS集群命令是hadoop namenode -format。
9.脚本一键启动Hadoop集群服务命令是start-all.sh。
10.Hadoop默认开设HDFS端口号50070和监控YARN集群端口号8088。
11.NameNode用于维护文件系统名称并管理客户端对文件的访问,DataNode存储真实的数据块。
12.NameNode与DataNode通过心跳监测机制互相通信。
13.NameNode以元数据形式维护着fsimage和EditLog文件。
14.在MapReduce中,Map阶段负责将任务分解,Reduce阶段将任务合并。
15.MapReduce工作流程分为分片、格式化数据源、执行MapTask、执行Shuffle过程、执行ReduceTask、写入文件。
16.Partitioner组件目的是将key均匀分布在ReduceTask上。
17.Zookeeper集群主要有Leader、Follower、Observer三种角色。
18.Znode有两种节点,分别是永久节点、临时节点。
19.Zookeeper引入Watch机制实现分布式的通知功能。
20.YARN的核心组件包括ResourceManager、NodeManager、ApplicationMaster。
21.ResourceManager内部包含了两个组件,分别是调度器(Scheduler)和应用程序管理器(Application Manager)。
22.数据仓库是面向主题的、集成的、非易失的和时变的数据集合,用于支持管理决策。
23.Hive默认元数据存储在Derby数据库数据库中。
24.Hive建表时设置分割字符命令row format delimited fields terminated by char。
25.Hive查询语句select ceil(2,34)输出内容是3。
26.Hive创建桶表关键字clustered by,且Hive默认分桶数量是-1。
27.Flume分为两个版本,分别是Flume-og、Flume-ng。
28.Flume的核心是把数据从数据源通过数据采集器(Source)收集过来,再将收集的数据通过缓冲通道(Channel)汇集到指定的接收器(Sink)。
29.Flume采用三层架构,分别为agent,collector和storage,每一层均可以水平扩展。
30.Flume的负载均衡接受器处理器支持使用round_robin(轮询)和random(随机)机制进行流量分配,其默认选择机制为round_robin。
31.Azkaban是由Linkedin公司开源的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。
32.Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的UI界面维护和跟踪工作流。
33.Azkaban工作流管理器的特点是所有的任务资源文件都需要打成一个zip包上传。
34.Azkaban工作流管理器由3个核心部分组成,具体分别是Relational Database、AzkabanWebServer、AzkabanExecutorServer。
35.Azkaban提供3种部署模式,轻量级的独立服务器模式、重量级的双服务器模式和分布式多执行器模式。
36.Sqoop主要用于在Hadoop和关系型数据库之间进行传输数据。
37.Sqoop底层利用MapReduce技术以批处理方式加快了数据传输速度,并且具有较好的容错性功能。
38.从数据库导入HDFS时,指定以制表符作为字段分隔符参数是–fields-terminated-by ‘\t’。
39.MapTask作为MapReduce工作流程前半部分,它主要经历5个阶段,分别是Read、Map、Collect、Spill和Combine 。

二、判断题

1.Cloudera CDH是需要付费使用的。(×)
2.JobTracher是HDFS的重要角色。(×)
3.在Hadoop集群中,NameNode负责管理所有DataNode。(√)
4.在Hadoop1.x版本中,MapReduce程序是运行在YARN集群上。(×)
5.Hadoop使用Java语言开发的。(√)
6.Hadoop是Java语言开发的,因此在搭建Hadoop集群时,需要为集群安装JDK环境变量。(√)
7.伪分布式模式下的Hadoop功能与完全分布式模式下的Hadoop功能相同。(√)
8.启动Hadoop集群服务之前需要格式化文件系统。(√)
9.Hadoop存在多个副本,且默认备份数量是3。(√)
10.配置Hadoop集群只需要修改cor-site.xml配置文件就可以。(×)
11.Secondary NameNode是NameNode的备份,可以有效解决Hadoop集群单点故障问题。(×)
12.NameNode负责管理元数据,客户端每次读写请求时,都会从磁盘中读取或写入元数据信息并反馈给客户端。(√)
13.NameNode本地磁盘保存了数据块的位置信息。(×)
14.Map阶段处理数据时,是按照key的哈希值与ReduceTask数量取模进行分区的规则。(√)
15.分区数量是ReduceTask的数量。(√)
16.在MapReduce程序中,必须开发Map和Reduce相应的业务代码才能执行程序。(×)
17.Zookeeper对节点的Watch监听通知是永久性的。(×)
18.Zookeeper集群宕机数超过集群一半,则Zookeeper服务器失效。(√)
19.Zookeeper可以作为文件存储系统,因此可以将大规模数据文件存在此系统中。(×)
20.ResourceManager负责监控ApplicationManager,并在ApplicationManager运行失败的时候重启它,因此ResourceManager负责ApplicationManager内部任务的容量。(×)
21.NodeManager是每个节点上的资源和任务管理器。(√)
22.Hadoop HA是集群中启动两台或两台以上机器充当NameNode,避免一台NameNode节点发生故障导致整个集群不可使用的情况。(√)
23.Hadoop HA是两台NameNode同时执行NameNode角色的工作。(×)
24.在Hadoop HA中Zookeeper集群为每个NameNode都分配了一个故障恢复控制器,该控制器用于监控NameNode的健康状态。(√)
25.Hive使用length()函数可以求出输出的数量。(×)
26.创建外部表时要加载数据文件,数据文件会移动到数据仓库指定的目录下。(×)
27.Hive是一款独立的数据仓库工具,因此在启动前无须启动任何服务。(×)
28.Hive默认不支持动态分区功能,需要手动设置动态分区参数开启功能。(√)
29.Hive分区字段不能与已存在字段重复,且分区字段是一个虚拟字段,它不存放任何数据,该数据来源于装载分区表时所指定的数据文。(√)
30.Flume Agent是一个JVM进程,它承载着数据从外部源流向下一个目标的三个核心组件是Source、Channel和Sink。(√)
31.Taildir Source用于观察指定的文件,可以实时监测到添加到每个文件的新行,如果文件正在写入新行,则此采集器将重试采集它们以待写入完成。(√)
32.Flume采集方案的名称、位置以及sources、channels、sinks参数配置信息可以任意定义。(×)
33.在整个数据传输的过程中,Flume将流动的数据封装到一个event(事件)中,它是Flume内部数据传输的基本单元。(√)
34.Azkaban可以通过查看executorServerLog__*.out日志文件和logs目录下的日志文件查看Azkaban Executor服务器的启动情况。(√)
35.Azkaban是对job进行调度管理的,而每一个job任务都是编写在一个文本文件中,且对文本文件没有限制。(×)
36.Azkaban要建立job之间的依赖关系需要使用command参数。(×)
37.Sqoop是关系数据库与Hadoop之间的数据桥梁,这个桥梁的重要组件是Sqoop连接器。(√)
38.Sqoop从Hive表导出MySQL表时,首先需要在MySQL中创建表结构。(√)
39.-target-dir参数是指定HDFS目标目录地址,因此需要提前创建目标文件。(×)
40.Hadoop 是一个用于处理大数据的分布式集群架构,支持在GNU/Linux系统以及Windows系统上进行安装使用。(√)

三、选择题

1.下列选项中,哪个程序负责HDFS数据存储?(B)
A.NameNode
B.DataNode
C.Secondary NameNode
D.ResourceManager
2.下列选项中,哪项通常是集群的最主要的性能瓶颈?(C)
A.CPU
B.网络
C.磁盘
D.内存
3.下面哪项是Hadoop的作者?(B)
A.Martin Fowler
B.Doug cutting
C.Mark Elliot Zuckerberg
D.Kent Beck
4.HDFS默认备份数量是多少?(D)
A.0
B.1
C.2
D.3
5.下列描述说法错误的是(D)。
A.SecureCRT是一款支持SSH的终端仿真程序,它能够在Windows操作系统上远程连接Linux服务器执行操作。
B.Hadoop是一个用于处理大数据的分布式集群架构,支持在GNU/Linux系统以及windows系统上进行安装使用。
C.VMware Workstation是一款虚拟计算机的软件,用户可以在单一的桌面上同时操作不同的操作系统。
D.SSH是一个软件,专为远程登录会话和其他网络服务提供安全性功能的软件。(×协议)
6.Hadoop2.x版本中的数据块大小默认是多少?(B)
A.64M
B.128M
C.256M
D.512M
7.关于Secondary NameNode的描述哪项是正确的?(C)
A.它是NameNode的热备。
B.它对内存没有要求。
C.它的目的是帮助NameNode合并编辑日志,减少NameNode启动时间。
D.SecondaryNameNode应与NameNode部署到一个节点。
8.MaoReduce适用于下列哪个选项?(D)
A.任意应用程序
B.任意可以在Windows Sever 2008上的应用程序
C.可以串行处理的应用程序
D.可以并行处理的应用程序
9.下面关于MapReduce模型中Map函数与Reduce函数的描述正确的是?(A)
A.一个Map函数就是对一部分原始数据进行指定的操作
B.一个Map操作就是对每个Reduce所产生的一部分中间结果进行合并操作
C.Map与Map之间不是互相独立的
D.Reduce与Reduce之间不是互相独立的
10.MapReduce自定义排序规则需要重写下列哪项方法?(B)
A.readFields()
B.compareTo()
C.map()
D.reduce()
11.Zookeeper启动时会最多监听几个端口?(B)
A.1
B.2
C.3
D.4
12.下列哪些操作可以设置一个监听器Watcher?(D)
A.getData
B.getChildren
C.exists
D.setData
13.下列关于zookeeper描述正确的是(A)。
A.无论客户端连接的是哪个Zookeeper服务器,其看到的服务端数据模型都是一致的
B.从同一个客户端发起的事务请求,最终将会严格按照其发起顺序被应用到zookeeper中
C.在一个5个节点组成的Zookeeper集群中,如果同时有3台机器宕机,服务器不受影响
D.如果客户端连接到Zookeeper集群中的那台机器突然宕机,客户端会自动切换连接到集群其他机器
14.下列选项中哪些是Hadoop2.x版本独有的进程?(C)
A.JobTracker
B.TaskTracker
C.NodeManager
D.NameNode
15.下列选项描述错误的是?(A)
A.Hadoop HA即集群中包含Secondary NameNode作为备份节点存在
B.ResourceManager负责的是整个YARN集群资源的监控、分配和管理工作
C.NodeManager负责定时地向ResourceManager汇报所在节点的资源使用情况以及接受并处理来自ApplicationManager的启动停止容器的各种请求
D.初次启动Hadoop HA集群时,需要将格式化文件系统后的目录复制至另外一台NameNode节点上
16.Hive是建立在(C)之上的一个数据仓库。
A.HDFS
B.MapReduce
C.Hadoop
D.HBase
17.Hive查询语言和SQL的一个不同之处在于(C)操作。
A.Group by
B.Join
C.Partition
D.Union
18.Hive最重视的性能是可测量性、延展性、(B)和对于输入格式的宽松匹配性。
A.较低恢复性
B.容错性
C.快速查询
D.可处理大量数据
19.以下选项中,哪种类型间转换是被Hive查询语言所支持的?(D)
A.Double—Number
B.BigInt—Double
C.Int—BigInt
D.String—Double
20.按粒度大小的顺序,Hive数据被分为数据库、数据表、(C)和桶。
A.元组
B.栏
C.分区
D.行
21.下列语句描述错误的是(C)。
A.可以通过CLI方式,Java API方式调用Sqoop
B.Sqoop底层会将Sqoop命令转换为MapReduce任务,并通过Sqoop连接器进行数据的导入导出操作
C.Sqoop是独立的数据迁移工具,可以在任何系统上执行
D.如果在Hadoop分布式集群环境下,连接MySQL服务器参数不能是localhos或127.0.0.1

四、简答题

1.简述大数据研究的意义。
发散型题目,略
2.简述Hadoop的发行版本。
Hadoop发行版本分为开源社区版和商业版,社区版是指由Apache软件基金会维护的版本,是官方维护的版本体系。商业版Hadoop是指由第三方商业公司在社区版Hadoop基础上进行了一些修改、整合以及各个服务组件兼容性测试而发行的版本,例如比较著名的有Cloudera公司的CDH版本
3.简述SSH协议解决的问题。
SSH为Secure Shell的缩写,它是一种网络安全协议,专为远程登录会话和其他网络服务提供安全性的协议。通过使用SSH服务,可以把传输的数据进行加密,有效防止远程管理过程中的信息泄露问题。
4.简述Hadoop集群部署方式以及各方式使用场景。
(1)独立模式:又称为单机模式,在该模式下,无需运行任何守护进程,所有的程序都在单个JVM上执行。独立模式下调试Hadoop集群的MapReduce程序非常方便,所以一般情况下,该模式在学习或者开发阶段调试使用。
(2)伪分布式模式:Hadoop程序的守护进程运行在一台节点上,通常使用伪分布式模式用来调试Hadoop分布式程序的代码,以及程序执行是否正确,伪分布式模式是完全分布式模式的一个特例。
(3)完全分布式模式:Hadoop的守护进程分别运行在由多个主机搭建的集群上,不同节点担任不同的角色,在实际工作应用开发中,通常使用该模式构建企业级Hadoop系统。
5.简述HDFS上传文件工作流程。
详情答案见3.2.2小节
6.简述NameNode文件管理分布式文件系统的命名空间。
在NameNode内部是以元数据的形式,维护着两个文件,分别是FsImage镜像文件和EditLog日志文件。其中,FsImage镜像文件用于存储整个文件系统命名空间的信息,EditLog日志文件用于持久化记录文件系统元数据发生的变化。当NameNode启动的时候,FsImage镜像文件就会被加载到内存中,然后对内存里的数据执行记录的操作,以确保内存所保留的数据处于最新的状态,这样就加快了元数据的读取和更新操作。
7.简述HDFS Block与MapReduce split之间的联系。
Block:HDFS中最小的数据存储单位,默认是128M;Split:MapReduce中最小的计算单元,默认与Block一一对应。两者的对应关系是任意的,可有用户控制。
8.简述Shuffle工作流程。
详情答案见4.2.4小节
9.简述Watch机制的特点。
一次性触发、事件封装、异步发送、先注册再触发
10.简述Zookeeper集群选举机制。
详情答案见5.4.2小节
11.简述YARN集群的工作流程。
参考答案见6.2.2小节
12.简述Hadoop HA集群的启动步骤。
(1)启动集群各个节点的Zookeeper服务;
(2)启动集群各个节点监控NameNode的管理日志的JournalNode;
(3)在node-01节点格式化NameNode,并将格式化后的目录拷贝到node-02中;
(4)在node-01节点上格式化ZKFC;
(5)在node-01节点上启动HDFS;
(6)在node-01节点上启动YARN。
13.简述Hive的特点。
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
14.简述Hive中内部表与外部表区别。
创建表阶段:外部表创建表的时候,不会移动数到数据仓库目录中(/user/hive/warehouse),只会记录表数据存放的路径,内部表会把数据复制或剪切到表的目录下。
删除表阶段:外部表在删除表的时候只会删除表的元数据信息不会删除表数据,内部表删除时会将元数据信息和表数据同时删除
15.简述Flume的工作原理。
参考答案见8.1.2小节
16.简述Azkaban中的project、job和flow元素的关系。
project可以理解为Azkaban的某个项目,在项目中包含了许多需要执行的任务,即为job,各个job之间形成依赖关系,就组成了工作流flow。
17.简述Azkaban的组成部分,以及各个部分的功能。
Azkaban分为三部分,mysql服务器:用于存储项目、日志或者执行计划之类的信息;web服务器:使用Jetty对外部提供web服务,使用户通过WEB UI操作Azkaban系统;executor服务器:负责具体的工作流的提交、执行。
18.简述Sqoop导入与导出数据工作原理
在导入数据之前,Sqoop使用JDBC检查导入的数据表,检索出表中的所有列以及列的SQL数据类型,并将这些SQL类型映射为Java数据类型,在转换后的MapReduce应用中使用这些对应的Java类型来保存字段的值,Sqoop的代码生成器使用这些信息来创建对应表的类,用于保存从表中抽取的记录。
在导出数据之前,Sqoop会根据数据库连接字符串来选择一个导出方法,对于大部分系统来说,Sqoop会选择JDBC。Sqoop会根据目标表的定义生成一个Java类,这个生成的类能够从文本中解析出记录数据,并能够向表中插入类型合适的值,然后启动一个MapReduce作业,从HDFS中读取源数据文件,使用生成的类解析出记录,并且执行选定的导出方法。

五、编程题

1.通过Java API实现上传文件至HDFS中。
详情答案见3.4.2小节
2.现有数据文本number.txt,内容如下所示,请编写MapReduce程序将该文本文件中重复的数据删除。
代码参考4.4.2小节
3.现有一组数据,内容如下所示,请编写MapReduce程序提取出最大10个数,并倒序输出。
代码参考4.8小节
4.利用Java API调用Zookeeper,实现创建节点、获取节点、修改节点、判断节点是否存在以及删除节点。
代码参考5.7.2小节
5.创建字段为id、name的用户表,并且以性别gender为分区字段的分区表。
create table t_user (id int, name string)
partitioned by (gender string)
row format delimited fields terminated by ‘,’;
6.利用Sqoop将test数据库中的user表中id>5的用户导入到HDFS中的/user目录(user表字段:id,name)。
$ sqoop import
–connect jdbc:mysql://hadoop01:3306/test
–username root
–password 123456
–target-dir /user
–query 'SELECT id,name FROM user WHERE id>5
–num-mappers 1

7.利用Sqoop将test数据库中的emp表导入Hive表hive,emp_test表中。
$ sqoop import
–connect jdbc:mysql://hadoop01:3306/test
–username root
–password 123456
–table emp
–hive-table hive_emp_test
–create-hive-table
–hive-import
–num-mappers 1

祝考试必过!!!

猜你喜欢

转载自blog.csdn.net/qq_53891711/article/details/129651298