一、选择题
- 以下哪一项不属于Hadoop可以运行的模式__C____。
A. 单机(本地)模式
B. 伪分布式模式
C. 互联模式
D. 分布式模式
C. 互联模式 不属于Hadoop可以运行的模式。
Hadoop主要有四种运行模式:
A. 单机(本地)模式:在单个计算机上运行,适用于开发和测试。
B. 伪分布式模式:模拟真实分布式环境,但实际上所有组件都在单个计算机上运行。
C. 互联模式:不是Hadoop支持的一种运行模式,因此不属于Hadoop可以运行的模式。
D. 分布式模式:真正的分布式环境,将Hadoop组件分布在多台计算机上,可以处理大规模数据。
- Hadoop的作者是下面哪一位___B___。
A. Martin Fowler
B. Doug cutting
C. Kent Beck
D. Grace Hopper
- 下列哪个程序通常与 NameNode 在同一个节点启动___D__。
A. TaskTracker
B. DataNode
C. SecondaryNameNode
D. Jobtracker
- A. TaskTracker:TaskTracker是在工作节点上运行的组件,负责执行由JobTracker分配的任务。它不需要与NameNode在同一个节点上启动。
- B. DataNode:DataNode是负责存储实际数据块的组件,它不需要与NameNode在同一个节点上启动。
- C. SecondaryNameNode:SecondaryNameNode负责辅助NameNode,它通常不在同一节点上启动,而是在单独的节点上运行以提供备份和辅助功能。
- D. JobTracker:JobTracker是Hadoop中的一个主要组件,负责接收作业的提交,将作业拆分成任务,并将任务分配给TaskTracker执行。通常,JobTracker与NameNode运行在同一节点上,以便更有效地管理作业的执行。
- HDFS 默认 Block Size的大小是___B___。
A.32MB
B.64MB
C.128MB
D.256M
HDFS将大文件分割成多个固定大小的数据块存储,这个固定大小就是Block Size。在HDFS中,默认的Block Size是64MB(或者在较新的版本中也可以是128MB)。
- 下列哪项通常是集群的最主要瓶颈__C____。
A. CPU
B. 网络
C. 磁盘IO
D. 内存
在大数据集群中,磁盘IO往往是性能瓶颈之一。由于大量的数据存储和读写操作,磁盘IO速度的限制可能导致整个集群的性能下降。
- 下列关于MapReduce说法不正确的是____C__。
A. MapReduce是一种计算框架
B. MapReduce来源于google的学术论文
C. MapReduce程序只能用java语言编写
D. MapReduce隐藏了并行计算的细节,方便使用
C. MapReduce程序只能用java语言编写
- 这个说法不正确。MapReduce程序可以使用多种编程语言编写,不仅限于Java。Hadoop支持多种语言的API,如Streaming API可以支持Python,Ruby等编程语言。
- HDFS是基于流数据模式访问和处理超大文件的需求而开发的,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,适合的读写任务是 D__。
A.一次写入,少次读
B.多次写入,少次读
C.多次写入,多次读
D.一次写入,多次读
HDFS是基于流数据模式访问和处理超大文件的需求而开发的,适合的读写任务是:D. 一次写入,多次读
- HDFS适合一次写入多次读取的场景。数据一次写入HDFS后,可以多次读取,适合大数据处理和分析的应用场景。
- HBase依靠__A___存储底层数据。
A. HDFS
B. Hadoop
C. Memory
D. MapReduce
A. HDFS 存储底层数据
- HBase是建立在HDFS上的分布式数据库,它依赖HDFS来存储底层数据。 HBase将数据存储在HDFS上,提供高速随机访问和强大的扩展性。
- HBase依赖__D___提供强大的计算能力。
A. Zookeeper
B. Chubby
C. RPC
D. MapReduce
- D. MapReduce 提供强大的计算能力
- HBase可以利用MapReduce进行大规模数据分析和计算。MapReduce是一种用于大规模数据集的并行计算框架,能够在Hadoop集群上进行高效的数据处理和计算,为HBase提供了强大的计算能力。
解释其他选项:
A. Zookeeper:
- Zookeeper是一个分布式协调服务,用于管理和协调分布式系统中的节点。HBase通常使用Zookeeper来协调集群中的各个节点,管理集群的状态信息,以确保高可用性和稳定性。
B. Chubby:
- Chubby是Google开发的分布式锁服务,用于实现分布式系统的同步和协调。与Zookeeper类似,Chubby也用于分布式系统的协调和管理。
C. RPC (Remote Procedure Call):
- RPC是一种通信协议,允许程序在网络上请求服务而不必了解底层网络细节。在Hadoop生态系统中,RPC用于通信,包括HDFS、HBase等组件之间的通信
- HBase依赖___A___提供消息通信机制
A. Zookeeper
B. Chubby
C. RPC
D. Socket
- A. Zookeeper 提供消息通信机制
- Zookeeper是一个分布式协调服务,提供了分布式系统中节点之间的协调和通信机制。HBase可以利用Zookeeper来实现集群中各个节点之间的通信,包括分布式锁、集群状态的监控和管理等。
解释其他选项:
B. Chubby:
- Chubby是Google开发的分布式锁服务,主要用于分布式系统的同步和协调。Chubby不是HBase的直接依赖项,但类似于Zookeeper,它也可以用于实现分布式系统的通信和同步。
C. RPC (Remote Procedure Call):
- RPC是一种通信协议,允许程序在网络上请求服务而不必了解底层网络细节。在Hadoop生态系统中,RPC用于通信,包括HDFS、HBase等组件之间的通信。
D. Socket:
- Socket是用于实现网络通信的编程接口,可以实现不同设备间的通信。虽然Socket可以用于通信,但HBase更多地依赖于更高层次的协调服务(如Zookeeper)来提供稳定和可靠的消息通信机制。
总结:HBase依赖Zookeeper来提供稳定的消息通信机制和集群节点间的协调,Chubby和RPC也可以用于通信,但HBase通常使用Zookeeper作为消息通信机制的依赖。 Socket是通用的网络通信编程接口,可以用于通信,但不是HBase特定的依赖项。
- 关于 SecondaryNameNode 哪项是正确的?C
A.它是 NameNode 的热备
B.它对内存没有要求
C.它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间
D.SecondaryNameNode 应与 NameNode 部署到一个节点。
A. 它是 NameNode 的热备:
- 这是错误的。SecondaryNameNode不是NameNode的热备。它有不同的功能和角色。
B. 它对内存没有要求:
- 这是相对正确的。SecondaryNameNode不要求很高的内存,但它需要足够的内存来执行其任务,尤其是在合并编辑日志时可能需要较大内存。
C. 它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间:
- 这是相对正确的。SecondaryNameNode的主要目的是帮助NameNode合并编辑日志(也称为fsimage和edits),以减少NameNode启动时间。它定期将这些日志合并,然后将其发送给NameNode,以减少NameNode的启动时间。
D. SecondaryNameNode 应与 NameNode 部署到一个节点:
- 这是错误的。SecondaryNameNode通常不应该与NameNode部署在同一节点上。在现代Hadoop架构中,建议将SecondaryNameNode与NameNode分开部署,以提高系统的容错性和性能。将这两者分开可以确保在一个节点发生故障时不影响另一个节点的正常运行
- 下面与HDFS类似的框架是___C____?
A. NTFS
B. FAT32
C. GFS
D. EXT3
A. NTFS:
- NTFS(New Technology File System)是Microsoft Windows操作系统中使用的文件系统。它提供了对文件和目录的高级处理,但不是与HDFS类似的分布式文件系统。
B. FAT32:
- FAT32(File Allocation Table 32)也是Windows操作系统使用的一种文件系统。它用于管理文件和存储设备上的数据,但不是分布式文件系统,也不类似于HDFS。
C. GFS:
- GFS(Google File System)是与HDFS类似的分布式文件系统,由Google开发。它是HDFS的前身,用于在大规模集群上存储大量数据。HDFS受到了GFS的启发,因此与HDFS类似。
D. EXT3:
- EXT3(Third Extended File System)是Linux操作系统中常用的文件系统,但它不是分布式文件系统,也不类似于HDFS。
- 关于 SecondaryNameNode 下面哪项是正确的___C___。
A. 它是 NameNode 的热备
B. 它对内存没有要求
C. 它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间
D. SecondaryNameNode 应与 NameNode 部署到一个节点
- 大数据的特点不包括下面哪一项__D____。
A. 巨大的数据量
B. 多结构化数据
C. 增长速度快
D. 价值密度高
A. 巨大的数据量:
- 大数据的特点之一是数据量巨大,传统的数据处理技术难以处理如此大量的数据。
B. 多结构化数据:
- 大数据通常涉及多种数据类型和格式,包括结构化、半结构化和非结构化数据。
C. 增长速度快:
- 大数据的增长速度非常快,数据量在快速积累,这要求新的技术和方法来处理和分析这些数据。
D. 价值密度高:
- 这个说法与大数据的特点不符。通常,大数据的价值密度相对较低,因为大数据集中包含大量的冗余、噪音或非关键信息,需要进行处理和分析以提取有价值的信息
15.Doug Cutting所创立的项目的名称都受到其家人的启发,以下项目不是由他创立的项目是 D
A. Hadoop
B. Nutch
C. Lucene
D. Solr
A. Hadoop:
- Doug Cutting是Hadoop的共同创始人之一。Hadoop最初是以他儿子的玩具大象命名的,取名自他儿子的玩具大象名叫Hadoop。这个名字也反映了Hadoop的分布式、可伸缩性,类似大象一样坚固的特性。
B. Nutch:
- Doug Cutting是Nutch项目的创始人。Nutch是一个开源的网络搜索引擎项目。
C. Lucene:
- Doug Cutting也是Lucene项目的创始人之一。Lucene是一个全文搜索引擎库。
D. Solr:
- Solr是由Yonik Seeley开发的,而不是Doug Cutting创立的。
16.配置Hadoop时,JAVA_HOME包含在哪一个配置文件中 B
A. hadoop-default.xml
C. hadoop-site.xml
D. configuration.xsl
A. hadoop-default.xml:
- 这个文件包含了Hadoop的默认配置参数。它通常用于指定Hadoop的默认设置,但不包括
JAVA_HOME
。B. hadoop-env.sh:
- 正确答案。
hadoop-env.sh
是Hadoop的环境设置脚本,用于设置Hadoop的环境变量,包括JAVA_HOME
。在这里可以配置Java的路径,这样Hadoop就知道在哪里找到Java环境。C. hadoop-site.xml:
- 这个文件用于配置Hadoop的特定参数。通常在这里配置Hadoop集群的特定属性,但不包括
JAVA_HOME
。D. configuration.xsl:
- 这个文件不是Hadoop的配置文件,而是可能与XML配置相关的样式表。
17.Hadoop配置文件中,hadoop-site.xml显示覆盖hadoop-default.xml里的内容。在版本0.20中,hadoop-site.xml被分离成三个XML文件,不包括 A
A. conf-site.xml
B. mapred-site.xml
C. core-site.xml
D. hdfs-site.xml
A. conf-site.xml:
- 这不是标准的Hadoop配置文件。通常,Hadoop配置文件命名为
*-site.xml
格式,而不是conf-site.xml
。B. mapred-site.xml:
- 正确答案。在Hadoop 0.20及以后版本,
mapred-site.xml
用于配置MapReduce相关的属性,它是Hadoop配置的一部分。C. core-site.xml:
- 这个文件用于配置Hadoop核心属性。它包括诸如文件系统默认方案、Hadoop运行环境等的设置。
D. hdfs-site.xml:
- 这个文件用于配置HDFS(Hadoop分布式文件系统)的属性,如块大小、复制因子等。
18.HDFS默认的当前工作目录是/user/$USER,fs.default.name的值需要在哪个配置文件内说明 B
A. mapred-site.xml
B. core-site.xml
C. hdfs-site.xml
D. 以上均不是
A. mapred-site.xml:
- 这个配置文件主要用于配置MapReduce的属性,不涉及HDFS的配置。
B. core-site.xml:
- 正确答案。
core-site.xml
是Hadoop配置中的一个重要文件,用于配置Hadoop核心属性,包括文件系统默认方案和Hadoop运行环境的参数。C. hdfs-site.xml:
- 这个配置文件用于配置HDFS(Hadoop分布式文件系统)的属性,但不涉及
fs.default.name
的设置。D. 以上均不是:
- 错误选项。实际上,HDFS默认工作目录和
fs.default.name
的设置在core-site.xml
文件中。
19.关于Hadoop单机模式和伪分布式模式的说法,正确的是 D
A. 两者都起守护进程,且守护进程运行在一台机器上
B. 单机模式不使用HDFS,但加载守护进程
C. 两者都不与守护进程交互,避免复杂性
D. 后者比前者增加了HDFS输入输出以及可检查内存使用情况
A. 两者都起守护进程,且守护进程运行在一台机器上:
- 错误。单机模式和伪分布式模式都可以运行守护进程,但伪分布式模式模拟分布式环境,因此守护进程运行在一台机器上是不准确的。
B. 单机模式不使用HDFS,但加载守护进程:
- 部分正确。单机模式不使用真正的HDFS,但是会加载守护进程(如NameNode、DataNode等),但这些进程在单机模式下并不实际工作。
C. 两者都不与守护进程交互,避免复杂性:
- 错误。单机模式和伪分布式模式都涉及守护进程,尽管在单机模式下,它们可能不实际工作,但它们会被加载。
D. 后者比前者增加了HDFS输入输出以及可检查内存使用情况:
- 部分正确。伪分布式模式模拟了一个真实的分布式环境,可以进行HDFS输入输出,并且能够检查内存使用情况。相比之下,单机模式不涉及真实的HDFS输入输出,也不需要检查内存使用情况。
综上所述,正确答案是 D. 后者比前者增加了HDFS输入输出以及可检查内存使用情况。
20.下列关于Hadoop API的说法错误的是 A
A. Hadoop的文件API不是通用的,只用于HDFS文件系统
B. Configuration类的默认实例化方法是以HDFS系统的资源配置为基础的
C. FileStatus对象存储文件和目录的元数据
D. FSDataInputStream是java.io.DataInputStream的子类
A. Hadoop的文件API不是通用的,只用于HDFS文件系统:
- 错误。Hadoop的文件API是通用的,可以用于不仅仅是HDFS,还可以用于其他文件系统,如本地文件系统(file://)等。
B. Configuration类的默认实例化方法是以HDFS系统的资源配置为基础的:
- 部分正确。
Configuration
类的默认实例化方法会加载默认配置,这些配置可能包括HDFS系统的配置,也可能包括其他Hadoop组件的配置。但并非仅基于HDFS系统的配置。C. FileStatus对象存储文件和目录的元数据:
- 正确。
FileStatus
对象用于存储文件和目录的元数据,包括文件大小、权限、所有者等信息。D. FSDataInputStream是java.io.DataInputStream的子类:
- 正确。
FSDataInputStream
是java.io.DataInputStream
的子类,用于从Hadoop文件系统中读取数据。综上所述,错误的说法是 A. Hadoop的文件API不是通用的,只用于HDFS文件系统。
21.HDFS的NameNode负责管理文件系统的命名空间,将所有的文件和文件夹的元数据保存在一个文件系统树中,这些信息也会在硬盘上保存成以下文件: C
A.日志
B.命名空间镜像
C.两者都是
A. 日志: HDFS的NameNode会记录一些重要的操作和元数据更改,这些记录保存在日志文件中,以便在发生故障时进行恢复。
B. 命名空间镜像: NameNode会将命名空间的元数据保存为命名空间镜像,该镜像存储了文件系统树的结构以及相关的元数据信息。这个命名空间镜像是在磁盘上持久保存的,用于在NameNode启动时恢复文件系统的状态。
22.HDFS的namenode保存了一个文件包括哪些数据块,分布在哪些数据节点上,这些信息也存储在硬盘上。 B
A.正确
B.错误
23.Secondary namenode就是namenode出现问题时的备用节点 B
A.正确
B.错误
24.出现在datanode的VERSION文件格式中但不出现在namenode的VERSION文件格式中的是B
A. namespaceID
B. storageID
C. storageType
D. layoutVersion
25.Client在HDFS上进行文件写入时,namenode根据文件大小和配置情况,返回部分datanode信息,谁负责将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块 A
A. Client
B. Namenode
C. Datanode
D. Secondary namenode
27.HDFS无法高效存储大量小文件,想让它能处理好小文件,比较可行的改进策略不包括 D
A. 利用SequenceFile、MapFile、Har等方式归档小文件
B. 多Master设计
C. Block大小适当调小
D. 调大namenode内存或将文件系统元数据存到硬盘里
28.关于HDFS的文件写入,正确的是 C
A. 支持多用户对同一文件的写操作
B. 用户可以在文件任意位置进行修改
C. 默认将文件块复制成三份存放
D. 复制的文件块默认都存在同一机架上
29.Hadoop fs中的-get和-put命令操作对象是 C
A. 文件
B. 目录
C. 两者都是
30.Namenode在启动时自动进入安全模式,在安全模式阶段,说法错误的是 D
A. 安全模式目的是在系统启动时检查各个DataNode上数据块的有效性
B. 根据策略对数据块进行必要的复制或删除
C. 当数据块最小百分比数满足的最小副本数条件时,会自动退出安全模式
D. 文件系统允许有修改
A. 安全模式目的是在系统启动时检查各个DataNode上数据块的有效性: 这是安全模式的目的之一。在安全模式下,NameNode会检查各个数据块的有效性,确保数据块可以正常访问。
B. 根据策略对数据块进行必要的复制或删除: 在安全模式下,可以根据复制策略对数据块进行复制或删除,以确保数据块的副本数符合预定的要求。
C. 当数据块最小百分比数满足的最小副本数条件时,会自动退出安全模式: 这是安全模式自动退出的条件之一。当数据块的最小百分比数满足最小副本数条件时,系统会自动退出安全模式。
D. 文件系统允许有修改: 在安全模式期间,文件系统是只读的,不允许进行修改操作,以确保数据的一致性和安全
31.MapReduce框架提供了一种序列化键/值对的方法,支持这种序列化的类能够在Map和Reduce过程中充当键或值,以下说法错误的是 C
A. 实现Writable接口的类是值
B. 实现WritableComparable<T>接口的类可以是值或键
C. Hadoop的基本类型Text并不实现WritableComparable<T>接口
D. 键和值的数据类型可以超出Hadoop自身支持的基本类型
A. 实现Writable接口的类是值: 正确。实现Writable接口的类可以作为值。
B. 实现WritableComparable<T>接口的类可以是值或键: 正确。实现WritableComparable<T>接口的类可以作为键或值。
C. Hadoop的基本类型Text并不实现WritableComparable<T>接口: 错误。Hadoop的基本类型Text实现了Writable接口和WritableComparable接口。
D. 键和值的数据类型可以超出Hadoop自身支持的基本类型: 正确。键和值的数据类型可以是用户自定义的类型,不限于Hadoop自身支持的基本类型。
32.以下四个Hadoop预定义的Mapper实现类的描述错误的是 B
A. IdentityMapper<K, V>实现Mapper<K, V, K, V>,将输入直接映射到输出
B. InverseMapper<K, V>实现Mapper<K, V, K, V>,反转键/值对
C. RegexMapper<K>实现Mapper<K, Text, Text, LongWritable>,为每个常规表达式的匹配项生成一个(match, 1)对
D. TokenCountMapper<K>实现Mapper<K, Text, Text, LongWritable>,当输入的值为分词时,生成(taken, 1)对
A. IdentityMapper<K, V>实现Mapper<K, V, K, V>,将输入直接映射到输出: 正确。IdentityMapper直接映射输入到输出。
B. InverseMapper<K, V>实现Mapper<K, V, K, V>,反转键/值对: 错误。没有Hadoop预定义的InverseMapper,这个描述不正确。
C. RegexMapper<K>实现Mapper<K, Text, Text, LongWritable>,为每个常规表达式的匹配项生成一个(match, 1)对: 正确。RegexMapper用于生成常规表达式匹配项的键/值对。
D. TokenCountMapper<K>实现Mapper<K, Text, Text, LongWritable>,当输入的值为分词时,生成(token, 1)对: 正确。TokenCountMapper用于生成分词的键/值对。
33.下列关于HDFS为存储MapReduce并行切分和处理的数据做的设计,错误的是 B
A. FSDataInputStream扩展了DataInputStream以支持随机读
B. 为实现细粒度并行,输入分片(Input Split)应该越小越好
C. 一台机器可能被指派从输入文件的任意位置开始处理一个分片
D. 输入分片是一种记录的逻辑划分,而HDFS数据块是对输入数据的物理分割
A. FSDataInputStream扩展了DataInputStream以支持随机读: 正确。FSDataInputStream允许对HDFS文件进行随机读取。
B. 为实现细粒度并行,输入分片(Input Split)应该越小越好: 错误。输入分片应该适中,不宜过小也不宜过大,以充分利用集群资源和避免任务过多或过少。
C. 一台机器可能被指派从输入文件的任意位置开始处理一个分片: 正确。MapReduce任务可以在输入文件的任意位置开始处理一个分片。
D. 输入分片是一种记录的逻辑划分,而HDFS数据块是对输入数据的物理分割: 正确。输入分片是逻辑划分,而HDFS数据块是物理分割。
34.针对每行数据内容为"Timestamp Url"的数据文件,在用JobConf对象conf设置conf.setInputFormat(WhichInputFormat.class)来读取这个文件时,WhichInputFormat应该为以下B
A. TextInputFormat
B. KeyValueTextInputFormat
C. SequenceFileInputFormat
D. NLineInputFormat
A. TextInputFormat: 适用于文本文件,将文件的每一行作为记录。
B. KeyValueTextInputFormat: 适用于键值对形式的文本文件,每行被解析成键和值。
C. SequenceFileInputFormat: 适用于Hadoop的二进制序列文件格式。
D. NLineInputFormat: 适用于按行分割的文本文件,每次读取N行作为一个输入分片。
35.有关MapReduce的输入输出,说法错误的是 B
A. 链接多个MapReduce作业时,序列文件是首选格式
B. FileInputFormat中实现的getSplits()可以把输入数据划分为分片,分片数目和大小任意定义
C. 想完全禁止输出,可以使用NullOutputFormat
D. 每个reduce需将它的输出写入自己的文件中,输出无需分片
B. FileInputFormat中实现的getSplits()可以把输入数据划分为分片,分片数目和大小任意定义。
解释每个选项:
A. 链接多个MapReduce作业时,序列文件是首选格式: 正确。序列文件是一种通用的、可扩展的二进制文件格式,常用于链式MapReduce作业。
B. FileInputFormat中实现的getSplits()可以把输入数据划分为分片,分片数目和大小任意定义 : 错误。FileInputFormat的
getSplits()
方法用于将输入数据划分为分片,但分片数目和大小受到HDFS块大小等因素的影响。C. 想完全禁止输出,可以使用NullOutputFormat: 正确。NullOutputFormat用于禁止输出。
D. 每个reduce需将它的输出写入自己的文件中,输出无需分片: 正确。Reduce的输出默认写入HDFS的文件中,不需要分片。
选项B中的描述不准确,
getSplits()
方法会根据HDFS的块大小等划分输入数据为分片。
36.以下说法不正确的是 D
A. Hadoop Streaming使用Unix中的流与程序交互
B. Hadoop Streaming允许我们使用任何可执行脚本语言处理数据流
C. 采用脚本语言时必须遵从UNIX的标准输入STDIN,并输出到STDOUT
D. Reduce没有设定,上述命令运行会出现问题
A. Hadoop Streaming使用Unix中的流与程序交互: 正确。Hadoop Streaming通过标准输入输出与程序进行交互。
B. Hadoop Streaming允许我们使用任何可执行脚本语言处理数据流: 正确。Hadoop Streaming支持多种脚本语言,可以用于处理数据流。
C. 采用脚本语言时必须遵从UNIX的标准输入STDIN,并输出到STDOUT: 正确。Hadoop Streaming要求遵循UNIX标准输入输出方式。
D. Reduce没有设定,上述命令运行会出现问题: 错误。Hadoop Streaming作业中,Reduce阶段是可选的,可以没有Reduce设定。如果没有Reduce,那么就只有Map阶段,不会出现问题。
37.在高阶数据处理中,往往无法把整个流程写在单个MapReduce作业中,下列关于链接MapReduce作业的说法,不正确的是 D
A.Job和JobControl类可以管理非线性作业之间的依赖
B.ChainMapper和ChainReducer类可以用来简化数据预处理和后处理的构成
C.使用ChainReducer时,每个mapper和reducer对象都有一个本地JobConf对象
D.ChainReducer.addMapper()方法中,一般对键/值对发送设置成值传递,性能好且安全性高
A. Job和JobControl类可以管理非线性作业之间的依赖: 正确。JobControl类可以用于管理作业之间的依赖关系。
B. ChainMapper和ChainReducer类可以用来简化数据预处理和后处理的构成: 正确。ChainMapper和ChainReducer允许将多个Mapper或Reducer连接起来形成一个处理链。
C. 使用ChainReducer时,每个mapper和reducer对象都有一个本地JobConf对象: 正确。每个Mapper和Reducer在ChainReducer中都有一个本地JobConf对象。
D. ChainReducer.addMapper()方法中,一般对键/值对发送设置成值传递,性能好且安全性高: 错误。在Hadoop中,键/值对是以引用传递的方式传递的,而不是通过值传递。这个选项描述是错误的。
38.下面哪个程序负责 HDFS 数据存储。C
a)NameNode
b)Jobtracker
c)Datanode
d)secondaryNameNode
e)tasktracker
a) NameNode: NameNode负责管理HDFS的命名空间,记录文件的元数据信息。
b) Jobtracker: JobTracker负责接收来自客户端的MapReduce作业,分配任务给TaskTracker并监控任务的执行。
c) Datanode: Datanode负责实际存储HDFS中的数据块,以及处理读取和写入请求。
d) SecondaryNameNode: SecondaryNameNode辅助NameNode,用于合并编辑日志,减少NameNode启动时间,但不负责实际数据存储。
e) TaskTracker: TaskTracker负责执行MapReduce任务,它接收来自JobTracker的任务分配,并执行相应的Map或Reduce任务。
39.配置机架感知的下面哪项正确:ABC
a)如果一个机架出问题,不会影响数据读写
b)写入数据的时候会写到不同机架的 DataNode 中
c)MapReduce 会根据机架获取离自己比较近的网络数据
a) 如果一个机架出问题,不会影响数据读写: 这描述了容错能力,但与机架感知无直接关系。
b) 写入数据的时候会写到不同机架的 DataNode 中: 这是机架感知的目标,以确保数据冗余和可靠性。
c) MapReduce 会根据机架获取离自己比较近的网络数据: 这描述了MapReduce作业的优化,利用机架感知来降低网络传输延迟。
40.Client 端上传文件的时候下列哪项正确?B
a)数据经过 NameNode 传递给 DataNode
b)Client 端将文件切分为 Block,依次上传
c)Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作
在 HDFS 中,当 Client 端要上传文件时,它会将文件切分成适当大小的 Block,并将这些 Block 逐一上传到不同的 DataNode 上。这样可以实现数据的分布存储,提高数据的并行传输效率和容错性。 NameNode 负责记录每个 Block 的位置信息。
41.Cloudera 提供哪几种安装 CDH 的方法?ABCD
a)Cloudera manager
b)Tarball
c)Yum
d)Rpm
a) Cloudera Manager: Cloudera Manager 是一种强大的集成管理工具,可用于自动化、简化和管理 CDH 的安装、配置、监控和优化。
b) Tarball: CDH 软件也以 Tarball 形式提供,可以通过手动下载并解压缩进行安装。
c) Yum: Cloudera 提供了基于 Yum 的安装方式,可以通过配置 Yum 源来安装 CDH。
d) Rpm: CDH 组件也可以通过 RPM 包进行安装,这是一种常用的 Linux 软件包管理方式。
二、判断题
- Ganglia 不仅可以进行监控,也可以进行告警。( √)
Ganglia是一个监控系统,它可以用于实时监控集群中各种指标,并提供告警功能,以便在特定条件满足时通知管理员。
- Block Size 是不可以修改的。(× )
Block Size可以通过Hadoop的配置进行修改,以适应特定需求,通常以MB或GB为单位。
- Nagios 不可以监控 Hadoop 集群,因为它不提供 Hadoop 支持。(× )
Nagios可以通过特定的插件扩展来监控Hadoop集群,提供Hadoop相关的监控和报警。
- 如果 NameNode 意外终止,SecondaryNameNode 会接替它使集群继续工作。( ×)
SecondaryNameNode不会自动接替NameNode的功能。它主要用于辅助NameNode进行编辑日志合并,不会在NameNode意外终止时自动接管其功能。
- Cloudera CDH 是需要付费使用的。( √ )
Cloudera Distribution for Hadoop(CDH)有企业版和免费的开源版,但企业版需要付费获取更多高级功能和支持。
- Hadoop 是 Java 开发的,所以 MapReduce 只支持 Java 语言编写。(× )
Hadoop是用Java开发的,但MapReduce可以用多种编程语言编写,不仅限于Java。
- Hadoop 支持数据的随机读写。(× )
Hadoop主要支持顺序读写,不是随机读写。HDFS不适合频繁的随机读写操作。
- NameNode 负责管理 metadata,client 端每次读写请求,它都会从磁盘中读取或则会写入 metadata 信息并反馈 client 端。(× )
NameNode负责管理文件系统的metadata,但Client端每次请求不会直接访问NameNode,而是通过DataNode访问数据。
- Hadoop 自身具有严格的权限管理和安全措施保障集群正常运行。( × )
Hadoop提供基本的权限管理,但需要结合其他安全措施,如Kerberos等,以保障集群的安全运行。
- Slave 节点要存储数据,所以它的磁盘越大越好。( ×)
磁盘大小适应实际需求即可,不是越大越好。过大的磁盘可能会导致过多的数据分布在单个节点上,影响负载均衡。
- hadoop dfsadmin --report 命令用于检测 HDFS 损坏块。(× )
hadoop dfsadmin -report命令用于获取HDFS的集群报告,但不是用于检测损坏块的。
- Hadoop 默认调度器策略为 FIFO( √)
Hadoop的默认调度器是FIFO(First In, First Out),即先到先服务。
- 集群内每个节点都应该配 RAID,这样避免单磁盘损坏,影响整个节点运行。( ×)
RAID是一种磁盘冗余技术,可以提高数据的可靠性和冗余度,但并不是每个节点都必须配备。
14.因为 HDFS 有多个副本,所以 NameNode 是不存在单点问题的。( ×)
NameNode是HDFS的单点故障,即使有多个副本,如果NameNode出现问题,仍然会影响文件系统的访问。
- 每个 map 槽就是一个线程。( ×)
每个Map Task是一个线程,不是"map槽"。"map槽"通常指的是可用于运行Map Task的资源。
- Mapreduce 的 input split 就是一个 block。(× )
Input Split不一定是一个block,它是对输入数据进行逻辑划分的单位。
- DataNode 首次加入 cluster 的时候,如果 log 中报告不兼容文件版本,那需要 NameNode执行"Hadoop namenode -format"操作格式化磁盘。( ×)
DataNode首次加入集群时,不需要执行"Hadoop namenode -format"操作,这是初始化NameNode时的操作。
- NameNode 的 Web UI 端口是 50030,它通过 jetty 启动的 Web 服务。(× )
NameNode的Web UI默认端口是50070,而不是50030。
- Hadoop 环境变量中的 HADOOP_HEAPSIZE 用于设置所有 Hadoop 守护线程的内存。它默认是 200 GB。(× )
HADOOP_HEAPSIZE用于设置Hadoop守护进程的堆大小,并非默认为200 GB。