Hadoop期末复习
选择题
-
以下选项中,哪个程序负责HDFS数据存储。 B
A、NameNode B、DataNode C、Secondary NameNode D、ResourceManager
-
下列哪项通常是集群的最主要的性能瓶颈? C
A、CPU B、 网络 C、磁盘 D、内存
-
下面哪项是Hadoop的作者?B
A、Martin Fowler B、Doug cutting C、Mark Elliot Zuckerberg D、Kent Beck
-
HDFS默认备份数量?D
A、0 B、1 C、2 D、3
-
下列描述说法错误的是? D
A、SecureCRT是一款支持SSH的终端仿真程序,它能够在Windows操作系统上远程连接Linux服务器执行操作。
B、Hadoop是一个用于处理大数据的分布式集群架构,支持在GNU/Linux系统以及Windows系统上进行安装使用。
C、VMware Workstation是一款虚拟计算机的软件,用户可以在单一的桌面上同时操作不同的操作系统。
D、 SSH是一个软件,专为远程登录会话和其他网络服务提供安全性功能的软件。
-
配置Hadoop集群时,下列哪个Hadoop配置文件需要进行修改?(多选) AC
A、hadoop-env.sh B、profile C、core-site.xml D、ifcfg-eth0
-
Hadoop2.x版本中的数据块大小默认是多少? B
A、 64M B、 128M C、 256M D、 512M -
关于Secondary NameNode哪项是正确?C
A、它是 NameNode 的热备
B、它对内存没有要求
C、它的目的是帮助 NameNode合并编辑日志,减少NameNode启动时间
D、SecondaryNameNode 应与NameNode部署到一个节点
-
客户端上传文件的时候哪项是正确的?(多选)BD
A、数据经过 NameNode 传递给 DataNode
B、客户端端将文件切分为多个Block,依次上传
C、客户端只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作
D、客户端发起文件上传请求,通过RPC与NameNode建立通讯。
-
MapReduce适用于(D)
A、任意应用程序
B、任意可以在Windows Server 2008上的应用程序
C、可以串行处理的应用程序
D、可以并行处理的应用程序
-
下面关于MapReduce模型中Map函数与Reduce函数的描述正确的是(A)
A、一个Map函数就是对一部分原始数据进行指定的操作。
B、一个Map操作就是对每个Reduce所产生的一部分中间结果进行合并操作。
C、Map与Map之间不是相互独立的。
D、Reducee与Reduce之间不是相互独立的。
-
MapReduce自定义排序规则需要重写下列那项方法(B)
A、readFields()
B、 compareTo()
C、 map()
D、reduce()
-
Zookeeper启动时会最多监听几个端口(B)
A、1
B、2
C、3
D、4
-
下列哪些操作可以设置一个监听器Watcher(D)
A、getData
B、getChildren
C、exists
D、setData
-
下列关于zookeeper描述正确的是:(A)
A、无论客户端连接的是哪个Zookeeper服务器,其看到的服务端数据模型都是一致的
B、从同一个客户端发起的事务请求,最终将会严格按照其发起顺序被应用到zookeeper中
C、在一个5个节点组成的Zookeeper集群中,如果同时有3台机器宕机,服务不受影响
D、如果客户端连接到Zookeeper集群中的那台机器突然宕机,客户端会自动切换连接到集群其他机器
-
下列选项中那些是Hadoop2.x版本独有的进程(C)
A、JobTracker
B、TaskTracker
C、NodeManager
D、NameNode
-
下列选项描述错误的是?A
A、Hadoop HA即集群中包含Secondary NameNode作为备份节点存在。
B、ResourceManager负责的是整个Yarn集群资源的监控、分配和管理工作
C、NodeManager负责定时的向ResourceManager汇报所在节点的资源使用情况以及接收并处理来自ApplicationMaster的启动停止容器(Container)的各种请求。
D、初次启动Hadoop HA集群时,需要将格式化文件系统后的目录拷贝至另外一台NameNode节点上。
-
Hive是建立在(C)之上的一个数据仓库
A、HDFS
B、MapReduce
C、Hadoop
D、HBase
-
Hive查询语言和SQL的一个不同之处在于(C)操作
A、Group by
B、Join
C、Partition
D、Union
-
Hive最重视的性能是可测量性、延展性、(B)和对于输入格式的宽松匹配性
A、较低恢复性
B、容错性
C、快速查询
D、可处理大量数据
-
以下选项中,哪种类型间的转换是被Hive查询语言所支持的(D)
A、Double—Number
B、BigInt—Double
C、Int—BigInt
D、String--Double
-
按粒度大小的顺序,Hive数据被分为:数据库、数据表、(C)、桶?
A、元祖
B、栏
C、分区
D、行
-
下面说法选项错误的是(多选)AD
A、在一个Agent中,同一个source可以有多个channel
B、在一个Agent中,同一个sink可以有多个channel
C、在一个Agent中,同一个source只能多1个channel
D、在一个Agent中,同一个sink只能有1个channel
-
下列选项参数是Sqoop指令的是?(多选)AD
A、import
B、output
C、input
D、export
-
下列语句描述错误的是(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 ' '____。
简答题
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