Hadoop期末复习
阅读原文时间:2023年07月11日阅读:4

Hadoop期末复习

  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. 配置Hadoop集群时,下列哪个Hadoop配置文件需要进行修改?(多选) AC

    A、hadoop-env.sh B、profile C、core-site.xml D、ifcfg-eth0

  7. Hadoop2.x版本中的数据块大小默认是多少? B

    A、 64M B、 128M C、 256M D、 512M

  8. 关于Secondary NameNode哪项是正确?C

    A、它是 NameNode 的热备

    B、它对内存没有要求

    C、它的目的是帮助 NameNode合并编辑日志,减少NameNode启动时间

    D、SecondaryNameNode 应与NameNode部署到一个节点

  9. 客户端上传文件的时候哪项是正确的?(多选)BD

    A、数据经过 NameNode 传递给 DataNode

    B、客户端端将文件切分为多个Block,依次上传

    C、客户端只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作

    D、客户端发起文件上传请求,通过RPC与NameNode建立通讯。

  10. MapReduce适用于(D

    A、任意应用程序 

    B、任意可以在Windows Server 2008上的应用程序

    C、可以串行处理的应用程序 

    D、可以并行处理的应用程序

  11. 下面关于MapReduce模型中Map函数与Reduce函数的描述正确的是(A

    A、一个Map函数就是对一部分原始数据进行指定的操作。

    B、一个Map操作就是对每个Reduce所产生的一部分中间结果进行合并操作。

    C、Map与Map之间不是相互独立的。

    D、Reducee与Reduce之间不是相互独立的。

  12. MapReduce自定义排序规则需要重写下列那项方法(B

    A、readFields()

    B、 compareTo()

    C、 map()

    D、reduce()

  13. Zookeeper启动时会最多监听几个端口(B

    A、1

    B、2

    C、3

    D、4

  14. 下列哪些操作可以设置一个监听器Watcher(D

    A、getData

    B、getChildren

    C、exists

    D、setData

  15. 下列关于zookeeper描述正确的是:(A

    A、无论客户端连接的是哪个Zookeeper服务器,其看到的服务端数据模型都是一致的

    B、从同一个客户端发起的事务请求,最终将会严格按照其发起顺序被应用到zookeeper中

    C、在一个5个节点组成的Zookeeper集群中,如果同时有3台机器宕机,服务不受影响

    D、如果客户端连接到Zookeeper集群中的那台机器突然宕机,客户端会自动切换连接到集群其他机器

  16. 下列选项中那些是Hadoop2.x版本独有的进程(C

    A、JobTracker 

    B、TaskTracker 

    C、NodeManager 

    D、NameNode

  17. 下列选项描述错误的是?A

    A、Hadoop HA即集群中包含Secondary NameNode作为备份节点存在。

    B、ResourceManager负责的是整个Yarn集群资源的监控、分配和管理工作

    C、NodeManager负责定时的向ResourceManager汇报所在节点的资源使用情况以及接收并处理来自ApplicationMaster的启动停止容器(Container)的各种请求。

    D、初次启动Hadoop HA集群时,需要将格式化文件系统后的目录拷贝至另外一台NameNode节点上。

  18. Hive是建立在(C)之上的一个数据仓库

    A、HDFS

    B、MapReduce

    C、Hadoop

    D、HBase

  19. Hive查询语言和SQL的一个不同之处在于(C)操作

    A、Group by

    B、Join

    C、Partition

    D、Union

  20. Hive最重视的性能是可测量性、延展性、(B)和对于输入格式的宽松匹配性

    A、较低恢复性

    B、容错性

    C、快速查询

    D、可处理大量数据

  21. 以下选项中,哪种类型间的转换是被Hive查询语言所支持的(D

    A、Double—Number

    B、BigInt—Double

    C、Int—BigInt

    D、String--Double

  22. 按粒度大小的顺序,Hive数据被分为:数据库、数据表、(C)、桶?

    A、元祖

    B、栏

    C、分区

    D、行

  23. 下面说法选项错误的是(多选)AD

    A、在一个Agent中,同一个source可以有多个channel

    B、在一个Agent中,同一个sink可以有多个channel

    C、在一个Agent中,同一个source只能多1个channel

    D、在一个Agent中,同一个sink只能有1个channel

  24. 下列选项参数是Sqoop指令的是?(多选)AD

    A、import

    B、output

    C、input

    D、export

  25. 下列语句描述错误的是(C

    A、可以通过CLI方式、Java API方式调用Sqoop

    B、Sqoop底层会将Sqoop命令转换为MapReduce任务,并通过Sqoop连接器进行数据的导入导出操作。

    C、Sqoop是独立的数据迁移工具,可以在任何系统上执行。

    D、如果在Hadoop分布式集群环境下,连接MySQL服务器参数不能是localhost或127.0.0.1。

1、Cloudera CDH是需要付费使用的。X

2、JobTracker是HDFS重要角色。X

3、在Hadoop集群中,NameNode负责管理所有DataNode。√

4、在Hadoop1.x版本中,MapReduce程序是运行在Yarn集群之上。X

5、Hadoop是由Java语言开发的。√

6、Hadoop是Java语言开发的,因此在搭建Hadoop集群时,需要为集群安装JDK环境变量。√

7、伪分布式模式下的Hadoop功能与完全分布式模式下的Hadoop功能相同。√

8、启动Hadoop集群服务之前需要格式化文件系统。√

9、Hadoop存在多个副本,且默认备份数量是3。√

10、配置Hadoop集群只需要修改core-site.xml配置文件就可以。X

11、Secondary NameNode是NameNode的备份,可以有效解决Hadoop集群单点故障问题。X

12、NameNode负责管理元数据,客户端每次读写请求时,都会从磁盘中读取或写入元数据信息并反馈给客户端。。√

13、NameNode本地磁盘保存了数据块的位置信息。X

14、Map阶段处理数据时,是按照Key的哈希值与ReduceTask数量取模进行分区的规则。√

15、分区数量是ReduceTask的数量。√

16、在MapReduce程序中,必须开发Map和Reduce相应的业务代码才能执行程序。X

17、Zookeeper对节点的Watch监听通知是永久性的。X

18、Zookeeper集群宕机数超过集群数一半,则Zookeeper服务失效。√

19、Zookeeper可以作为文件存储系统,因此可以将大规模数据文件存在该系统中。X

20、ResourceManager负责监控ApplicationMaster,并在ApplicationMaster运行失败的时候重启它,因此ResouceManager负责ApplicationMaster内部任务的容错。X

21、NodeManager是每个节点上的资源和任务管理器。√

22、Hadoop HA是集群中启动两台或两台以上机器充当NameNode,避免一台NameNode节点发生故障导致整个集群不可用的情况。√

23、Hadoop HA是两台NameNode同时执行NameNode角色的工作。X

24、在Hadoop HA中,Zookeeper集群为每个NameNode都分配了一个故障恢复控制器,该控制器用于监控NameNode的健康状态。√

25、Hive使用length()函数可以求出输出的数量。X

26、再创建外部表的同时要加载数据文件,数据文件会移动到数据仓库指定的目录下。X

27、Hive是一款独立的数据仓库工具,因此在启动前无需启动任何服务。X

28、Hive默认不支持动态分区功能,需要手动设置动态分区参数开启功能。√

29、Hive分区字段不能与已存在字段重复,且分区字段是一个虚拟的字段,它不存放任何数据,该数据来源于装载分区表时所指定的数据文。√

30、Flume Agent是一个JVM进程,它承载着数据从外部源流向下一个目标的三个核心组件是Source、Channel和Sink。√

31、Taildir Source用于观察指定的文件,可以实时监测到添加到每个文件的新行,如果文件正在写入新行,则此采集器将重试采集它们以等待写入完成。√

32、Flume采集方案的名称、位置、以及sources、channels、sinks参数配置信息可以随定义。X

33、在整个数据传输的过程中,Flume将流动的数据封装到一个event(事件)中,它是Flume内部数据传输的基本单元。 √

34、Sqoop是关系型数据库与Hadoop之间的数据桥梁,这个桥梁的重要组件是Sqoop连接器。√

35、Sqoop从Hive表导出MySQL表时,首先需要在MySQL中创建表结构。√

36、--target-dir参数是指定HDFS目标目录地址,因此需要提前创建目标文件。X

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

1、Hadoop集群部署方式分别是__ 独立模式、伪分布式模式、完全分布式模式

2、加载环境变量配置文件需要使用_ source /etc/profile_命令。

3、格式化HDFS集群命令是__ hadoop namenode -format___。

4、脚本一键启动Hadoop集群服务命令是__start-all.sh_。

5、Hadoop默认开设HDFS文件系统端口号___50070____和监控Yarn集群端口号___8088___。

1、 ___NameNode___用于维护文件系统名称并管理客户端对文件的访问,DataNode____存储真实的数据块。

2、 NameNode与DataNode通过___心跳监测____机制互相通信。

3、 NameNode以元数据形式维护着______fsimage、EditLog_文件。

1、在MapReduce中,Map______阶段负责将任务分解,Reduce______阶段将任务合并。

2、MapReduce工作流程分为分片、格式化数据源、执行MapTask、执行Shuffle过程、执行ReduceTask、写入文件

3、Partitioner组件目的是______将key均匀分布在ReduceTask上_____。

1、Zookeeper集群主要有Leader、Follower、Observer_____三种角色。

2、Znode有两种节点,分别是__永久节点、临时节点___。

3、Zookeeper引入Watch_____机制实现分布式的通知功能。

4、System类中所提供的属性和方法都是____的,想要引用这些属性和方法,直接使用System类调用即可。

5、已知 sb 为 StringBuffer 的一个实例,且 sb.toString() 的值为 "abcde ", 则执行sb. reverse()后,sb.toString()的值为_____。

1、Yarn的核心组件包含___ResourceManager、NodeManager、ApplicationMaster_____。

2、ResourceManager内部包含了两个组件,分别是调度器(Scheduler)应用程序管理器(Application Manager)_。

1、数据仓库是面向__主题的、集成的、非易失的____和时变的数据集合,用于支持管理决策。

2、Hive默认元数据存储在 Derby数据库_____数据库中。

3、Hive建表时设置分割字符命令______row format delimited fields terminated by char____

4、Hive查询语句select ceil(2.34)输出内容是___3___。

5、Hive创建桶表关键字_____clustered by,且Hive默认分桶数量是___-1____。

1、Flume分为两个版本,分别是___Flume-og、Flume-ng___。

2、Flume的核心是把数据从数据源通过___数据采集器(Source)_收集过来,再将收集的数据通过___缓冲通道(Channel)汇集到指定的接收器(Sink)

3、Flume采用三层架构,分别为_____agent,collector和storage_____,每一层均可以水平扩展。

4、Flume的负载均衡接收器处理器支持使用_____round_robin(轮询)和random(随机)机制进行流量分配,其默认选择机制为round_robin__。

1、Sqoop主要用于在Hadoop、关系型数据库_之间进行传输数据。

2、Sqoop底层利用___MapReduce___技术以___批处理___方式加快了数据传输速度,并且具有较好的容错性功能。

3、从数据库导入HDFS时,指定以制表符作为字段分隔符参数是_________ --fields-terminated-by '\t'____。

1、简述大数据研究的意义。

发散型题目

2、简述Hadoop版本区别。

Hadoop发行版本分为开源社区版和商业版,社区版是指由Apache软件基金会维护的版本,是官方维护的版本体系。商业版Hadoop是指由第三方商业公司在社区版Hadoop基础上进行了一些修改、整合以及各个服务组件兼容性测试而发行的版本,例如比较著名的有Cloudera公司的CDH版本。

1、简述什么是SSH以及SSH协议解决的问题。

SSH为Secure Shell的缩写,它是一种网络安全协议,专为远程登录会话和其他网络服务提供安全性的协议。通过使用SSH服务,可以把传输的数据进行加密,有效防止远程管理过程中的信息泄露问题。

2、简述Hadoop集群部署方式以及各方式使用场景。

1)独立模式:又称为单机模式,在该模式下,无需运行任何守护进程,所有的程序都在单个JVM上执行。独立模式下调试Hadoop集群的MapReduce程序非常方便,所以一般情况下,该模式在学习或者开发阶段调试使用。

(2)伪分布式模式:Hadoop程序的守护进程运行在一台节点上,通常使用伪分布式模式用来调试Hadoop分布式程序的代码,以及程序执行是否正确,伪分布式模式是完全分布式模式的一个特例。

(3)完全分布式模式:Hadoop的守护进程分别运行在由多个主机搭建的集群上,不同节点担任不同的角色,在实际工作应用开发中,通常使用该模式构建企业级Hadoop系统。

1、简述HDFS上传文件工作流程

详情答案见3.2.2小节。

2、简述NameNode管理分布式文件系统的命名空间。

在NameNode内部是以元数据的形式,维护着两个文件,分别是FsImage镜像文件和EditLog日志文件。其中,FsImage镜像文件用于存储整个文件系统命名空间的信息,EditLog日志文件用于持久化记录文件系统元数据发生的变化。当NameNode启动的时候,FsImage镜像文件就会被加载到内存中,然后对内存里的数据执行记录的操作,以确保内存所保留的数据处于最新的状态,这样就加快了元数据的读取和更新操作。

1、简述HDFS Block与MapReduce split之间的联系。

Block:HDFS中最小的数据存储单位,默认是128M;Split:MapReduce中最小的计算单元,默认与Block一一对应。

两者的对应关系是任意的,可有用户控制。

2、简述Shuffle工作流程。

详情答案见4.2.4小节

1、简述Watch机制的特点。

一次性触发、事件封装、异步发送、先注册再触发

2、简述Zookeeper集群选举机制。

详情答案见5.4.2小节

1、简述Yarn集群的工作流程。

参考答案见6.2.2小节

2、简述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。

1、简述Hive的特点是什么。

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

2、简述Hive中内部表与外部表区别。

创建表阶段:

外部表创建表的时候,不会移动数到数据仓库目录中(/user/hive/warehouse),只会记录表数据存放的路径,内部表会把数据复制或剪切到表的目录下。

删除表阶段:

外部表在删除表的时候只会删除表的元数据信息不会删除表数据,内部表删除时会将元数据信息和表数据同时删除

1、简述Flume工作原理。

参考答案见8.1.2小节

1、简述Sqoop导入与导出数据工作原理。

参考答案:

在导入数据之前,Sqoop使用JDBC检查导入的数据表,检索出表中的所有列以及列的SQL数据类型,并将这些SQL类型映射为Java数据类型,在转换后的MapReduce应用中使用这些对应的Java类型来保存字段的值,Sqoop的代码生成器使用这些信息来创建对应表的类,用于保存从表中抽取的记录。

在导出数据之前,Sqoop会根据数据库连接字符串来选择一个导出方法,对于大部分系统来说,Sqoop会选择JDBC。Sqoop会根据目标表的定义生成一个Java类,这个生成的类能够从文本中解析出记录数据,并能够向表中插入类型合适的值,然后启动一个MapReduce作业,从HDFS中读取源数据文件,使用生成的类解析出记录,并且执行选定的导出方法。

1、通过Java API实现上传文件至HDFS中。

详情答案见3.4.2小节

1、 现有数据文本文件number.txt,内容如下所示,请将该文本文件内容重复的数据删除。

118569

118569

335816

123456

963807

963807

118555

118569

代码参考4.4.2小节

2、现有一组数据,内容如下所示,请利用MapReduce将下列数据求出最大10个数,并倒序输出。

10 3 8 7 6 5 1 2 9 4

11 12 17 14 15 20

19 18 13 16

代码参考4.8小节

1、 利用Java API调用Zookeeper,实现创建节点、获取节点、修改节点、判断节点是否存在以及删除节点。

代码参考5.7.2小节

1、创建字段为id、name的用户表,并且以性别gender为分区字段的分区表。

参考答案:

create table t_user (id int, name string)
partitioned by (gender string)
row format delimited fields terminated by ',';

1、利用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

2、利用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