hadoop 文件系统

  1. 简述Hadoop核心组件 ?

Hadoop 的起源与 Google 大数据三大理论息息相关。HDFS 是基于 GFS 分布式文件系统实现的,MapReduce、Spark 的核心是 MapReduce 并行编程模型,而 HBase 也是基于 BigTable 实现的。

Hadoop 有以下 4 个基本模块:

Hadoop 基本功能库:支持其它 Hadoop 模块的通用程序包,
HDFS:一个分布式文件系统,能够以高吞吐量访问应用的数据。
YARN:一个作业调度和资源管理框架。
MapReduce:一个基于 YARN 的大数据并行处理程序。

Hadoop 核心组件
(1) HDFS
HDFS 是基于 GPS 设计思路来实现的,把原文件分割成很多块的小文件,以冗余的方式保存在不同节点上。HDFS 的 NameNode 负责记录具体数据的元数据信息,而 DataNode 是真正的数据节点,其中 Secondary NameNode 主要作用是分担主 NameNode 的一部分工作负载。NameNode 和 DataNode之间维持着心跳。如果 DataNode 不可用,会启用副本复制。

(2)Hbase
HBase 的核心思想是 BigTable,基于列式存储的分布式数据库。利用 HDFS 作为其文件存储系统,底层采用 LSM Tree 数据结构进行存储,因此写入性能很强,读取性能较差。

(3)Yarn
Yarn 采用 Master/Slaver 架构,其中 ResourceManager 为 Master,NodeManager 为 Slaver,RM 负责对各个NM上的资源进行统一管理和调度。

(4)MapReduce
MapReduce 的核心思想是“分而治之”,采用 Master/slave 结构,按照编程规范编写少量的业务逻辑代码即可实现一个强大的海量数据并发处理程序。MapReduce 把一个复杂的业务,任务分成若干个简单的任务分发到网络上的每个节点并行执行,把 Map 阶段的结果由 Reduce 进行汇总,最终大大缩短了数据处理的时间开销。

  1. 简述Hadoop的特点 ?

高可靠性。采用冗余数据存储方式,即使一个副本发生故障,其他副本也可以保证正常对外提供服务。高效性。作为并行分布式计算平台,Hadoop采用分布式存储和分布式处理两大核心技术,能够高效地处理PB级数据。

高可扩展性。Hadoop的设计目标是可以高效稳定地运行在廉价的计算机集群上,可以扩展到数以千计的计算机节点上。高容错性。采用冗余数据存储方式,自动保存数据的多个副本,并且能够自动将失败的任务进行重新分配。

成本低。Hadoop采用廉价的计算机集群,成本比较低,普通用户也很容易用自己的PC搭建Hadoop运行环境。运行在Linux平台上。Hadoop是基于Java语言开发的,可以较好地运行在Linux平台上,并且支持多种编程语言。

  1. 简述Hadoop 1.x,2.x,3.x的区别 ?

Hadoop 1.x阶段,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大;
Hadoop 2.x阶段,增加了Yarn。Yarn只负责资源的调度,MapReduce只负责运算;
Hadoop 3.x相比于Hadoop 2.x阶段在组成上没有变化

  1. 简述Hadoop集群工作时启动哪些进程?它们有什么作用 ?

1) NameNode
就是Master,Hadoop的主管、管理者
(1)管理HDFS的名称空间;
(2)配置副本策略;
(3)管理数据块(Block)映射信息;
(4)处理客户端读写请求。
2) DataNode
就是Slave。NameNode下达命令,DataNode执行实际的操作。
(1)存储实际的数据块;
(2)执行数据块的读/写操作。
3) Secondary NameNode
Secondary NameNode并非NameNode的热备。当NameNode挂掉的时候,它并不能马上替换NameNode
并提供服务。而是提供周期检查点和清理任务,帮助NN合并editslog,减少NN启动时间。
(1)辅助NameNode,分担其工作量,如定期合并Fsimage和Edits,并推送给NameNode
(2)在紧急情况下,可辅助恢复NameNode
4) ResourceManager(JobTracker)
整个集群资源(内存、CPU等)的老大。负责集群中所有资源的统一管理和分配,它接受来自各个节点
(NodeManager)的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序(即
ApplicationMaster)。
(1)与客户端交互,处理来自客户端的请求。
(2)启动和管理ApplicatinMaster,并在它运行失败时重新启动它。
(3)管理NodeManager,接受来自NodeManager的资源管理汇报信息,并向NodeManager下达管理命令
(比如杀死Contanier)等。
(4)资源管理与调度,接收来自ApplicationMaster的资源申请请求,并为之分配资源(核心)。
5) NodeManager(TaskTracker)
NodeManager是YARN中单个节点的代理(单个节点服务器资源老大),它需要与应用程序的ApplicationMaster和集群管理者ResourceManager交互;它从ApplicationMaster上接收有关Container的命 令并执行(比如启动、停止Contaner);向ResourceManager汇报各个Container运行状态和节点健康状 况,并领取有关Container的命令(比如清理Container)。
NodeManager管理的是Container而不是任务,一个Container中可能运行着各种任务,但是对NodeManager而言是透明的,它只负责Container相关操作,比如管理Container的生命周期,即启动Container、监控Container和清理Container等。
(1)管理单个节点上的资源
(2)处理来自ResourceManager的命令
(3)处理来自ApplicationMaster的命令

6) DFSZKFailoverController
高可用时它负责监控NameNode的状态,并及时的把状态信息写入Zookeeper。它通过一个独立线程周期 性的调用NameNode上的一个特定接口来获取NameNode的健康状态。ZKFC也有选择谁作为Active
NameNode的权利,因为最多只有两个节点,选择策略比较简单(先到先得,轮换)。
7) JournalNode
高可用情况下存放NameNode的editlog文件。

  1. 简述搭建Hadoop集群的xml文件有哪些 ?

core-site.xml

fs.defaultFS
hdfs://hadoop102:8020

hadoop.tmp.dir
/opt/module/hadoop-3.1.3/data

hadoop.http.staticuser.user
atguigu

hdfs-site.xml

dfs.namenode.http-address
hadoop102:9870

dfs.namenode.secondary.http-address
hadoop104:9868

yarn-site.xml

yarn.nodemanager.aux-services
mapreduce_shuffle

yarn.resourcemanager.hostname
hadoop103

yarn.nodemanager.env-whitelist
JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
P

mapred-site.xml

mapreduce.framework.name
yarn

  1. 简述解释“hadoop”和“hadoop 生态系统”两个概念 ?

Hadoop是指Hadoop框架本身;hadoop生态系统,不仅包含hadoop,还包括保证hadoop框架正常高效运行其他框架,比如zookeeper、Flume、Hbase、Hive、Sqoop等辅助框架

  1. 请列出正常工作的Hadoop集群中Hadoop都分别需要启动哪些进程,它们的作用分别是什么?

1)NameNode:它是hadoop中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问,保存有metadate。
2)SecondaryNameNode:它不是namenode的冗余守护进程,而是提供周期检查点和清理任务。帮助NN合并editslog,减少NN启动时间。
3)DataNode:它负责管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个datanode守护进程。
4)ResourceManager(JobTracker):JobTracker负责调度DataNode上的工作。每个DataNode有一个TaskTracker,它们执行实际工作。
5)NodeManager:(TaskTracker)执行任务。
6)DFSZKFailoverController:高可用时它负责监控NN的状态,并及时的把状态信息写入ZK。它通过一个独立线程周期性的调用NN上的一个特定接口来获取NN的健康状态。FC也有选择谁作为Active NN的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮换)。
7)JournalNode:高可用情况下存放namenode的editlog文件

  1. 简述Hadoop序列化和反序列化及自定义bean对象实现序列化? ?

1)序列化和反序列化
  (1)序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储(持久化)和网络传输。
  (2)反序列化就是将收到字节序列(或其他数据传输协议)或者是硬盘的持久化数据,转换成内存中的对象。
  (3)Java的序列化是一个重量级序列化框架(Serializable),一个对象被序列化后,会附带很多额外的信息(各种校验信息,header,继承体系等),不便于在网络中高效传输。所以,hadoop自己开发了一套序列化机制(Writable),精简、高效。
2)自定义bean对象要想序列化传输步骤及注意事项:
  (1)必须实现Writable接口
  (2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造
  (3)重写序列化方法
  (4)重写反序列化方法
  (5)注意反序列化的顺序和序列化的顺序完全一致
  (6)要想把结果显示在文件中,需要重写toString(),且用"\t"分开,方便后续用
  (7)如果需要将自定义的bean放在key中传输,则还需要实现comparable接口,因为mapreduce框中的shuffle过程一定会对key进行排序

  1. 简述Hadoop的checkpoint流程 ?

在hdfs-site.xml文件指定Secondary NameNode部署在哪个机器上。
当记录条数超过100w条,或者时间超过3600s(1小时),Secondary NameNode提醒NameNode做
Checkpoint。
步骤如下:
1) Secondary NameNode提醒NameNode开始做Checkpoint;
2) NameNode上的edit_inprogress文件滚动生成edit_sum文件;
3) edit_inprogress滚动生成edit文件,将滚动前的编辑日志edit和镜像文件fsimage拷贝到Secondary NameNode;
4) Secondary NameNode 加载编辑日志和镜像文件到内存并合并;
5)生成新的镜像文件fsimage.chkpoint,拷贝fsimage.chkpoint到NameNode,NameNode将
fsimage.chkpoint重新命名成fsimage
FsImage :
元数据序列化后在磁盘存储的地方。包含HDFS文件系统的所有目录跟文件inode序列化信息。

Memory:
元数据在内存中存储的地方。
Edit文件:
1)Edit 记录客户端更新元数据信息的每一步操作(可通过Edits运算出元数据)。
2)一旦元数据有更新跟添加,元数据修改追加到Edits中然后修改内存中的元数据,这样一旦NameNode
节点断电,通过 FsImage 跟 Edits 的合并生成元数据。
3)Edits文件不要过大,系统会定期的由 Secondary Namenode 完成 FsImage 和 Edits 的合并

  1. 简述Hadoop的默认块大小是多少?为什么要设置这么大 ?

默认块大小:
Hadoop 2.7.2版本及之前默认64MB,Hadoop 2.7.3版本及之后默认128M
块大小:
HDFS的块设置太小,会增加寻址时间,程序一直在找块的开始位置,而且NameNode需要大量内存来存 储元数据,不可取。
如果块设置的太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。导致程序在处 理这块数据时,会非常慢。
如果寻址时间约为10ms,而传输速率为100MB/s,为了使寻址时间仅占传输时间的1%,我们要将块大小 设置约为100MB。默认的块大小128MB。
块的大小: 10ms100100M/s = 100M ,
HDFS块的大小设置主要取决于磁盘传输速率

  1. 简述Hadoop Block划分的原因 ?

目的:减少磁盘寻道的时间。
不设置block:因为数据是分散的存放磁盘上的,读取数据时需要不停的进行磁盘寻道,开销比较大。
使用block:一次可以读取一个block中的数据,减少磁盘寻道的次数和时间

  1. 简述Hadoop常见的压缩算法 ?

Hadoop中常用的压缩算法有bzip2、gzip、lzo、snappy,其中lzo、snappy需要操作系统安装native库才可以支持
MapReduce数据压缩解析1)输入端采用压缩
在有大量数据并计划重复处理的情况下,应该考虑对输入进行压缩。然而,你无须显示指定使用的编解 码方式。Hadoop自动检查文件扩展名,如果扩展名能够匹配,就会用恰当的编解码方式对文件进行压 缩和解压。否则,Hadoop就不会使用任何编解码器。
2) mapper输出端采用压缩
当map任务输出的中间数据量很大时,应考虑在此阶段采用压缩技术。这能显著改善内部数据Shuule过 程,而Shuule过程在Hadoop处理过程中是资源消耗最多的环节。如果发现数据量大造成网络传输缓慢, 应该考虑使用压缩技术。可用于压缩mapper输出的快速编解码器包括LZO或者Snappy。
3) reducer输出采用压缩
在此阶段启用压缩技术能够减少要存储的数据量,因此降低所需的磁盘空间。当mapreduce作业形成作 业链条时,因为第二个作业的输入也已压缩,所以启用压缩同样有效。
压缩方式对比
1) Gzip压缩
优点:压缩率比较高,而且压缩/解压速度也比较快;hadoop本身支持,在应用中处理gzip格式的文件 就和直接处理文本一样;大部分linux系统都自带gzip命令,使用方便。

缺点:不支持split。
应用场景:当每个文件压缩之后在130M以内的(1个块大小内),都可以考虑用gzip压缩格式。例如说 一天或者一个小时的日志压缩成一个gzip文件,运行mapreduce程序的时候通过多个gzip文件达到并发。
hive程序,streaming程序,和java写的mapreduce程序完全和文本处理一样,压缩之后原来的程序不需 要做任何修改。
2) Bzip2压缩
优点:支持split;具有很高的压缩率,比gzip压缩率都高;hadoop本身支持,但不支持native;在linux 系统下自带bzip2命令,使用方便。
缺点:压缩/解压速度慢;不支持native。
应用场景:适合对速度要求不高,但需要较高的压缩率的时候,可以作为mapreduce作业的输出格式; 或者输出之后的数据比较大,处理之后的数据需要压缩存档减少磁盘空间并且以后数据用得比较少的情 况;或者对单个很大的文本文件想压缩减少存储空间,同时又需要支持split,而且兼容之前的应用程序
(即应用程序不需要修改)的情况 。
3) Lzo压缩
优点:压缩/解压速度也比较快,合理的压缩率;支持split,是hadoop中最流行的压缩格式;可以在
linux系统下安装lzop命令,使用方便。
缺点:压缩率比gzip要低一些;hadoop本身不支持,需要安装;在应用中对lzo格式的文件需要做一些 特殊处理(为了支持split需要建索引,还需要指定inputformat为lzo格式)。
应用场景:一个很大的文本文件,压缩之后还大于200M以上的可以考虑,而且单个文件越大,lzo优点 越越明显。
4) Snappy压缩
优点:高速压缩速度和合理的压缩率。
缺点:不支持split;压缩率比gzip要低;hadoop本身不支持,需要安装;
应用场景:当Mapreduce作业的Map输出的数据比较大的时候,作为Map到Reduce的中间数据的压缩格 式;或者作为一个Mapreduce作业的输出和另外一个Mapreduce作业的输入

  1. 简述Hadoop作业提交到YARN的流程 ?

1)作业提交
第 1 步:Client 调用 job.waitForCompletion 方法,向整个集群提交 MapReduce 作业。第 2 步:Client 向 RM 申请一个作业 id。
第 3 步:RM 给 Client 返回该 job 资源的提交路径和作业 id。
第 4 步:Client 提交 jar 包、切片信息和配置文件到指定的资源提交路径。第 5 步:Client 提交完资源后,向 RM 申请运行 MrAppMaster。2)作业初始化
第 6 步:当 RM 收到 Client 的请求后,将该 job 添加到容量调度器中。第 7 步:某一个空闲的 NM 领取到该 Job。
第 8 步:该 NM 创建 Container,并产生 MRAppmaster。第 9 步:下载Client 提交的资源到本地。
3)任务分配
第 10 步:MrAppMaster 向 RM 申请运行多个 MapTask 任务资源。
第 11 步:RM 将运行 MapTask 任务分配给另外两个NodeManager,另两个 NodeManager分别领取任务并创建容器。
4)任务运行
第 12 步:MR向两个接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动
MapTask,MapTask 对数据分区排序。
第13 步:MrAppMaster 等待所有MapTask 运行完毕后,向RM 申请容器,运行ReduceTask。第 14 步:ReduceTask 向 MapTask 获取相应分区的数据。
第 15 步:程序运行完毕后,MR 会向 RM 申请注销自己。
5)进度和状态更新
YARN 中的任务将其进度和状态(包括counter)返回给应用管理器, 客户端每秒(通过
mapreduce.client.progressmonitor.pollinterval设置)向应用管理器请求进度更新, 展示给用户。
6)作业完成

除了向应用管理器请求作业进度外, 客户端每 5 秒都会通过调用 waitForCompletion()来检查作业是否完成。时间间隔可以通过 mapreduce.client.completion.pollinterval 来设置。作业完成之后, 应用管理器和
Container 会清理工作状态。作业的信息会被作业历史服务器存储以备之后用户核查

  1. 简述Hadoop的Combiner的作用 ?

对每一个MapTask的输出进行局部汇总,以减小网络传输量
Combiner理解
Combiner是MapReduce程序中Mapper和Reducer之外的一种组件,它属于优化方案,由于带宽限制,应 该尽量限制map和reduce之间的数据传输数量。它在Map端把同一个key的键值对合并在一起并计算,计 算规则与reduce一致,所以Combiner也可以看作特殊的Reducer。
Combiner和Reducer的区别在于运行的位置:
Combiner是在每一个MapTask所在的节点运行;
Reducer是接收全局所有Mapper的输出结果。
在哪里使用Combiner
map输出数据根据分区排序完成后,在写入文件之前会执行一次combine操作(前提是作业中设置了这 个操作);
如果map输出比较大,溢出文件个数大于3(此值可以通过属性min.num.spills.for.combine配置)时,在
merge的过程(多个spill文件合并为一个大文件)中前还会执行Combiner操作。
注意事项
不是每种作业都可以做combiner操作的,只有满足以下条件才可以:
Combiner只应该用于那种Reduce的输入key/value与输出key/value类型完全一致,因为Combine本 质上就是reduce操作。
计算逻辑上,Combine操作后不会影响计算结果,像求和,最大值就不会影响,求平均值就影响了。

  1. 简述Hadoop的运行模式 ?

1)单机模式
安装简单,在一台机器上运行服务,几乎不用做任何配置,但仅限于调试用途。没有分布式文件系统, 直接读写本地操作系统的文件系统。
2)伪分布式模式
在单节点上同时启动namenode、datanode、jobtracker、tasktracker、secondary namenode等进程,模拟分布式运行的各个节点。配置已经很接近完全分布式。
3)完全分布式模式
正常的Hadoop集群,由多个各司其职的节点构成

  1. 简述Hadoop小文件处理问题-小文件的产生原因 ?

Hadoop不适用于大量小文件,而是需要更少的大文件。这可能是您之前听过的声明。但是,为什么Hadoop会出现大量小文件的问题?而且,“小”究竟是什么意思呢?在本系列的第一部分中,我将回答这些问题。后续部分将讨论解决或解决小文件问题。

什么是小文件?
小文件可以定义为任何明显小于Hadoop块大小的文件。Hadoop块大小通常设置为64,128, 256 MB,越来越大。在本博客的其余部分提供示例时,我们将使用128MB的块大小。如果一个文件的大小不是块大小的75%,那么它就是一个小文件。然而,小文件问题并不仅仅影响小文件。如果Hadoop集群中的大量文件稍微大于块大小的增量,那么您将遇到与小文件相同的挑战。

例如,如果您的块大小为128MB,但加载到Hadoop的所有文件都是136MB,那么您将拥有大量小的8MB块。好消息是解决小块问题就像选择合适的(较大的)块大小一样简单。解决小文件问题要复杂得多。注意我从来没有提到行数。虽然行数可以影响MapReduce性能,但在确定如何将文件写入HDFS时,它远不如文件大小重要。

为什么会出现小文件?
小文件问题是我们经常在Hadoop项目中看到的问题。公司可能在Hadoop中拥有小文件的原因有很多,包括:

公司越来越渴望能够实时获得数据,导致Hadoop摄取过程每小时/每周/每周运行,每个周期只生成10MB的新数据。
源系统生成数千个小文件,这些文件无需修改即可直接复制到Hadoop中。
MapReduce作业的配置使用超过必要数量的reducer,每个reduceup输出自己的文件。同样,如果数据中的偏差导致大部分数据转到一个减速器,那么剩余的减速器将处理非常少的数据并产生小的输出文件。
为什么Hadoop有一个小文件问题?
Hadoop存在小文件问题有两个主要原因:NameNode内存管理和MapReduce性能。namenode内存问题Hadoop中的每个目录,文件和块都表示为NameNode内存中的对象。根据经验,每个对象需要150个字节的内存。如果你有2000万个文件,每个文件需要1个块,你的NameNode需要6GB的内存。这显然是非常可行的,但随着您的扩展,您最终会达到NameNode可以处理的文件(块)数量的实际限制。十亿个文件需要300GB的内存,并假设每个文件都在同一个文件夹中!让我们考虑300GB NameNode内存要求的影响…

当NameNode重新启动时,它必须从本地磁盘上的缓存中读取每个文件的元数据。这意味着从磁盘读取300GB的数据 - 可能会导致启动时间延迟。
在正常操作中,NameNode必须不断跟踪并检查群集中每个数据块的存储位置。这是通过监听数据节点来报告其所有数据块来完成的。数据节点必须报告的块越多,它将消耗的网络带宽就越多。即使节点之间存在高速互连,这种规模的简单块报告也可能会造成破坏性。
优化很明显。如果可以减少群集中的小文件数,则可以减少NameNode内存占用,启动时间和网络影响。

MapReduce的性能问题
拥有大量小文件会降低MapReduce处理的性能,无论是Hive,Pig,Cascading,Pentaho MapReduce还是Java MapReduce。第一个原因是大量的小文件意味着大量的随机磁盘IO。磁盘IO通常是MapReduce性能的最大限制因素之一。一次大的顺序读取总是胜过通过几次随机读取相同数量的数据。如果您可以将数据存储在更少,更大的块中,则可以减轻磁盘IO的性能影响。

性能下降的第二个原因有点复杂,需要了解MapReduce如何处理文件和调度资源。我将在此解释中使用MapReduce版本1术语,因为它比使用Yarn更容易解释,但相同的概念适用于Yarn。当MapReduce作业启动时,它会为每个正在处理的数据块计划一个映射任务。存储在Hadoop中的每个文件至少有一个块。如果您有10,000个文件,每个文件包含10 MB的数据,则MapReduce作业将安排10,000个map任务。通常配置Hadoop,以便每个map任务在其自己的JVM中运行。

您的Hadoop集群只有这么多资源。在MapReduce v1中,为避免节点过载,请指定节点可以处理的最大并发map数。通常,map的最大数量在5到20范围内。因此,要同时运行10,000个map,您必须拥有500到2000个节点。大多数Hadoop集群都小于此,导致JobTracker在等待打开的插槽时对map任务进行排队。如果您有一个包含总共100个插槽的20个节点群集,则您的队列将变得非常大,并且您的过程将花费很长时间。不要忘记,您的工作可能不是竞争集群资源的唯一工作。

如果您拥有800个128 MB的文件而不是10,000个10MB文件,那么您只需要800个map任务。这将需要一个数量级减少JVM维护时间,并将导致更好的磁盘IO。即使处理128 MB的单个map任务将花费比处理10 MB的map任务处理更长的时间,但是当处理800个更大的文件时,所有处理时间的总和几乎总是要快几个数量级。

  1. 简述Hadoop为什么要从2.x升级到3.x ?

Apache Hadoop 3.x在以前的主要发行版本(hadoop-2.x)上进行了许多重大改进。
1、最低要求的Java版本从Java 7增加到Java 8
现在,已针对Java 8的运行时版本编译了所有Hadoop JAR。仍在使用Java 7或更低版本的用户必须升级到Java 8。
2、支持HDFS中的纠删码
纠删码是一种持久存储数据的方法,可节省大量空间。与标准HDFS副本机制的3倍开销相比,像Reed-
Solomon(10,4) 这样的标准编码的空间开销是1.4倍。
由于纠删码在重建期间会带来额外的开销,并且大多数情况下会执行远程读取,因此传统上已将其用于 存储较冷,访问频率较低的数据。
在部署此功能时应考虑纠删码机制的网络和CPU开销。
关于HDFS中纠删码更详细的介绍,可查看我之前写的这篇文章: 深入剖析 HDFS 3.x 新特性-纠删码
3、Shell脚本重写
Hadoop Shell脚本已被重写,以修复许多长期存在的错误并包括一些新功能。Hadoop的开发人员尽管一直在寻求兼容性,但是某些更改可能会破坏现有的安装。
4、MapReduce 任务本地优化
MapReduce 增加了对 map 输出收集器的本地执行的支持,对于 shuule 密集型工作,这可以使性能提高
30%或更多。
5、支持两个以上的 NameNode
在之前的版本中,HDFS的高可用最多支持两个NameNode。在HDFS 3.x 版本中,通过将编辑复制到法定数量的三个JournalNode,该体系结构能够容忍系统中任何一个节点的故障。
但是,某些部署需要更高的容错度。这个新特性启用了这一点,该功能允许用户运行多个备用
NameNode。例如,通过配置三个NameNode和五个JournalNode,群集可以忍受两个节点的故障,而不 仅仅是一个节点的故障。
6、多个服务的默认端口已更改
以前,多个Hadoop服务的默认端口在Linux临时端口范围内(32768-61000)。这意味着在启动时,服务 有时会由于与另一个应用程序的冲突而无法绑定到端口。
这些冲突的端口已移出临时范围,具体的端口更改如下:
NameNode 的端口:50070 --> 9870, 8020 --> 9820, 50470 --> 9871;
Secondary NameNode 的 端 口 :50091 --> 9869, 50090 --> 9868; DataNode 的端口:50020 --> 9867, 50010 --> 9866, 50475 --> 9865, 50075 --> 9864;
Hadoop KMS 的端口:16000 --> 9600(HBase的HMaster端口号与Hadoop KMS端口号冲突。两者都使用16000,因此 Hadoop KMS 更改为9600)。
7、支持Microsoh Azure数据湖和阿里云对象存储系统文件系统连接器
Hadoop现在支持与Microsoh Azure数据湖和Aliyun对象存储系统集成,作为与Hadoop兼容的替代文件系统。
8、数据内节点平衡器
单个DataNode可管理多个磁盘。在正常的写操作过程中,磁盘将被均匀填充。但是,添加或替换磁盘可 能会导致DataNode内部出现严重偏差。原有的HDFS平衡器无法处理这种情况。新版本的HDFS中有平衡 功能处理,该功能通过hdfs diskbalancer CLI调用。
9、基于HDFS路由器的联合

基于HDFS路由器的联合添加了一个RPC路由层,该层提供了多个HDFS名称空间的联合视图。这简化了现 有HDFS客户端对联合群集的访问。
10、YARN资源类型
YARN资源模型已被通用化,以支持用户定义的CPU和内存以外的可计数资源类型。例如,集群管理员可 以定义资源,例如GPU,软件许可证或本地连接的存储。然后可以根据这些资源的可用性来调度YARN任 务。

  1. 简要描述如何安装配置一个Apache开源版Hadoop,描述即可,列出步骤更好 ?

–解压hadoop包,到指定安装文件夹
–配置linux基本网络环境、jdk环境、防火墙环境
–修改主机名,方便后面UI的访问
–修改hadoop/etc/hadoop/conf下的配置文件,根据部署的模式和需要进行配置
–格式化namenode,对数据缓存的的路径进行格式化
–启动hadoop进程

  1. 简述Hadoop节点的动态上线下线的大概操作 ?

–节点上线

1.关闭新增节点的防火墙
2.在 NameNode节点的hosts文件中加入新增数据节点的hostname
3.在每个新增数据节点的hosts文件中加入NameNode的hostname
4.在NameNode节点上增加新增节点的SSH免密码登录的操作
5.在NameNode节点上的dfs.hosts中追加上新增节点的hostname,
6.在其他节点上执行刷新操作:hdfs dfsadmin -refreshNodes
7.在 NameNode 节点上,更改slaves文件,将要上线的数据节点hostname追加
到slaves文件中
8.启动DataNode节点

9.查看NameNode的监控页面看是否有新增加的节点

–节点下线

1.修改/conf/hdfs-site.xml文件
2.确定需要下线的机器,dfs.osts.exclude文件中配置好需要下架的机器,这个是阻
止下架的机器去连接NameNode
3.配置完成之后进行配置的刷新操作./bin/hadoop dfsadmin -refreshNodes,这个
操作的作用是在后台进行block块的移动
4.当执行三的命令完成之后,需要下架的机器就可以关闭了,可以查看现在集
群上连接的节点,正在执行 Decommission,会显示:
Decommission Status : Decommission in progress 执行完毕后,会显示:
Decommission Status : Decommissioned

5.机器下线完毕,将他们从 excludes 文件中移除

  1. 简述Hadoop常用端口号 ?

Ø dfs.namenode.http-address:50070
Ø dfs.datanode.http-address:50075
Ø SecondaryNameNode辅助名称节点端口号:50090
Ø dfs.datanode.address:50010
Ø fs.defaultFS:8020 或者9000
Ø yarn.resourcemanager.webapp.address:8088
Ø 历史服务器web访问端口:19888

  1. 简述Hadoop参数调优 ?

1.1 NameNode 内存生产配置
1)NameNode 内存计算
每个文件块大概占用 150byte,一台服务器 128G 内存为例,能存储多少文件块呢?
128 * 1024 * 1024 * 1024 / 150Byte ≈ 9.1 亿
2)Hadoop2.x 系列,配置 NameNode
内存 NameNode 内存默认 2000m,如果服务器内存 4G,NameNode 内存可以配置 3g。在 hadoop-env.sh 文件中配置如下。
HADOOP_NAMENODE_OPTS=-Xmx3072m
1
3)Hadoop3.x 系列,配置 NameNode 内存
(1)hadoop-env.sh 中描述 Hadoop 的内存是动态分配的
(2)查看 NameNode 占用内存
jmap -heap 进程id
1
查看发现 hadoop102 上的 NameNode 和 DataNode 占用内存都是自动分配的(大概900多兆),且相等。 不是很合理。
经验参考:
具体修改:hadoop-env.sh
export HDFS_NAMENODE_OPTS=“-Dhadoop.security.logger=INFO,RFAS -Xmx1024m”
export HDFS_DATANODE_OPTS=“-Dhadoop.security.logger=ERROR,RFAS -Xmx1024m”
分发配置文件,重启集群并查看namenode和datanode的最大内存
1.2 NameNode 心跳并发配置
1)hdfs-site.xml

dfs.namenode.handler.count
21

企业经验:print int(20*math.log(3))
1.3 开启回收站配置
开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、 备份等作用。
1)回收站工作机制
2)开启回收站功能参数说明
(1)默认值 fs.trash.interval = 0,0 表示禁用回收站;其他值表示设置文件的存活时间。
(2)默认值 fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为 0,则该 值设置和 fs.trash.interval 的参数值相等。
(3)要求 fs.trash.checkpoint.interval <= fs.trash.interval。
3)启用回收站
修改 core-site.xml,配置垃圾回收时间为 1 分钟。

fs.trash.interval
1

4)查看回收站
回收站目录在 HDFS 集群中的路径:/user/atguigu/.Trash/….
5)注意:通过网页上直接删除的文件也不会走回收站。
6)通过程序删除的文件不会经过回收站,需要调用 moveToTrash()才进入回收站
Trash trash = New Trash(conf);
trash.moveToTrash(path);
7)只有在命令行利用 hadoop fs -rm 命令删除的文件才会走回收站。
hadoop fs -rm -r /output
8)恢复回收站数据
hadoop fs -mv /user/chen/.Trash/Current/output /output

  1. 简述Hadoop常用命令中,启动hadoop所有进程的命令正确的是() ?
    A:start-all.sh
    B:start-yarn.s
    C:start-dfs.sh
    D:start-yarn.sh

A

  1. 简述Hadoop生态圈中ZooKeeper的作用描述错误的选项是() ?
    A:ZooKeeper是一个开源的分布式应用程序协调服务
    B:基于ZooKeeper可以实现同步服务
    C:ZooKeeper可以实现配置维护、命名服务
    D:ZooKeeper负责文件系统底层读写

D

  1. 简述关于 HDFS 安全模式说法正确的是() ?
    A:在安全模式下只能写不能读
    B:在安全模式下只能读不能写
    C:在安全模式下读写都不允许
    D:在安全模式下读写都可以

B

  1. 简述Hadoop-2.6.5 集群中的 HDFS 的默认的数据块的大小是() ?
    A:32M
    B:64M
    C:128M
    D:256M

C

  1. 简述Hadoop 2.x中,DataNode中默认的块配置的大小是()MB ?
    A:128
    B:64
    C:256
    D:1025

A

  1. 简述下列关于NameNode描述正确的是() ?
    A:负责Flink任务的调度
    B:负责Hadoop集群的高可用
    C:负责Hadoop底层文件读写功能
    D:管理文件系统名称空间和对集群中存储的文件的访问

D

  1. 简述A 负责Flink任务的调度 B 负责Hadoop集群的高可用 C 负责Hadoop底层文件读写功能 D 管理文件系统名称空间和对集群中存储的文件的访问 ?
    A:TaskNode
    B:SecondaryNameNode
    C:DataNode
    D:ResourceManager

A

  1. 简述关于安全模式的描述错误的是() ?
    A:NameNode在启动时会自动进入安全模式
    B:NameNode只有在安全启动模式下才会进入安全模式
    C:安全模式是一种状态,文件系统不允许有任何修改
    D:进入安全模式后,系统会显示NameNode in safe mode,说明系统正在处于安全模式

B

  1. 简述关于Hadoop常用命令中,touchz和Linux系统的touch命令的描述正确的是() ?
    A:没区别
    B:touchz不能新建文件
    C:touchz不可用于更新文件的修改日期
    D:touch不可用于更新文件的修改日期

C

  1. 简述Google三驾马车是Hadoop等分布式系统的基石,其中论文()不属于三驾马车之一 ?
    A:GFS
    B:MapReduce
    C:OpenTSDB
    D:BigTable

C

  1. 简述现有一个安装 2.6.5 版本的 Hadoop 集群,在不修改默认配置的情况下,存储 200 个每个 200M 的文本文件,请问最终会在集群中产生多少个数据块(包括副本) ?
    A
    200
    B
    40000
    C
    400
    D
    1200

D
在默认情况下,HDFS 集群默认存储文件 3 份,并且大文件会按照 128M 的数据块大小进行切割分散存储。所以题目中每个文件分为两块,总数据块有(200 * 2)= 400个。再加上会存储三份,所以 400 * 3 = 1200

  1. 假设有Hadoop系统中有DataNode节点1、2、3,且DataNode节点1、2、3上有Block1,Client请求上传文件file1至Hadoop系统,下面描述该Hadoop系统写流程错误的是() ?
    A:Client第一次请求NameNode上传文件file1
    B:当NameNode返回可以上传后,Client第二个请求会请求file1上传到哪个DataNode节点上
    C:当Client第三次请求时,DataNode数据管道搭建完毕后,会由NameNode应答Client
    D:当Client第三次请求时,DataNode数据管道搭建完毕后,会由多个DataNode节点等依次逐级应答Client

C
A.正确,请求目的是询问是否可以上传文件file1
B.正确,拿到具体上传DataNode节点信息
C.错误,写完后会由DataNode依次逐级应答Client
D.正确

  1. 简述关于 Hadoop 技术描述错误的是() ?
    A:HDFS 是一个分布式文件存储系统
    B:HDFS 不适合低延时数据访问的场景
    C:HDFS 适合存储大量的小文件
    D:HDFS 存储空间由数据节点数决定

C

  1. 简述关于MapReduce的描述错误的是() ?
    A:MapReduce框架由一个单独的master JobTracker 和每个集群设备一个slave TaskTracker共同组成
    B:master负责调度构成一个作业的所有任务,这些任务分布在不同的slave上
    C:master监控slave上任务的执行,重新执行已经失败的任务。而slave仅负责执行由master指派的任务
    D:slave不仅负责执行由master指派的任务,还会重新执行失败的任务

D

  1. 简述下列关于Hadoop命令中,命令执行成功返回0,执行失败返回-1,下列命令返回-1的是() ?
    A:hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2
    B:hdfs dfs -mv hdfs:///testData file:///tmp/testData
    C:hadoop fs -put localfile hdfs://host:port/hadoop/hadoopfile
    D:hadoop fs -put localfile /user/hadoop/hadoopfile

B
A.返回0,/user/hadoop/file1文件移动至/user/hadoop/file2
B.返回-1,mv命令无法在不同文件系统(hdfs与操作系统文件系统)间传输文件
C.返回0,传输localfile至hdfs://host:port/hadoop/hadoopfile
D.返回0,传输localfile至/user/hadoop/hadoopfile

  1. 简述以下选项中不参与hdfs写流程的组件是 ?
    A:Client
    B:DistributedFileSystem
    C:NameNode
    D:YARN

D

  1. 简述下列哪一个组件不是Hadoop系统的组件之一() ?
    A:NameNode
    B:Client
    C:DataNode
    D:JobManager

D

  1. 简述有关Hadoop的高可用下列描述错误的是() ?
    A:Hadoop集群中有Active NameNode和StandbyNameNode;其中Active NameNode和StandbyNameNode节点互为主备
    B:Active NameNode提供读写服务,StandbyNameNode节点只提供读服务
    C:主备切换控制器ZKFC,ZKFailoverController作为独立运行的进程,对NameNode的主备切换进行总体控制
    D:ZKFailoverController主要以心跳的方式检测NameNode的健康状况,在Active NameNode故障时借助Zookeeper实现自动的主备选举和切换

B

  1. 简述关于安全模式命令,正确的是() ?
    A:退出安全模式:hadoop dfsadmin -safemode leave
    B:退出安全模式:hadoop dfs -safemode leave
    C:进入安全模式:hadoop dfs -safemode enter
    D:进入安全模式:hadoop dfsadmin enter

A

  1. 简述下列关于Hadoop架构组件描述错误的是() ?
    A:NameNode管理多个DataNode节点以及客户端请求
    B:Client是用户提交计算作业的入口
    C:MySQL和YARN也是Hadoop生态的常用的生产环境必要组件
    D:DataNode负责处理客户端计算作业的读写请求

C

  1. 简述请问以下哪个命令组成是错误的() ?
    A:sbin/stop-dfs.sh
    B:sbin/hdfs dfsadmin -report
    C:bin/hadoop namenode -format
    D:bin/hadoop fs -cat /hadoopdata/my.txt

B
A 选项 sbin/stop-dfs.sh 用于停止集群。
B 选项错误,sbin(shell bin),都是 .sh 脚本。正确命令为:bin/hadoop dfsadmin -report 数据节点状态列表,dfsadmin 命令用于管理 HDFS集群。
C 选项 bin/hadoop namenode -format 用于格式化 NameNode,初始化集群。
D 选项 bin/hadoop fs -cat /hadoopdata/my.txt 用于查看 my.txt 文件数据。

  1. 在 Hadoop 集群的配置文件中有如下两个配置,请问假如集群中有一个节点宕机,主节点 namenode 需要多长时间才能感知到() ?

dfs.heartbeat.interval
3

heartbeat.recheck.interval
2000

A:26秒
B:34秒
C:30秒
D:20秒

B
dfs.heartbeat.interval:datanode 会按照此间隙(单位s)向 namenode 发送心跳,默认发送 10 次。
heartbeat.recheck.interval:namenode 按照此间隙(单位ms)检查 datanode 的相关进程,默认检查 2 次。
HDFS 集群掉线超时时长的计算公式是:timeout = 10 * dfs.heartbeat.interval + 2 * heartbeat.recheck.interval / 1000
接下来代入参数,套着公式进行计算 10 * 3 + 2 * 2000 / 1000 = 34 秒

  1. 简述下列关于SecondaryNameNode描述错误的是() ?
    A:SecondaryNameNode是NameNode的冗余守护进程
    B:SecondaryNameNode提供周期检查点
    C:SecondaryNameNode帮助NameNode合并editslog,减少NameNode启动时间
    D:SecondaryNameNode会执行清理任务

A

  1. 简述关于Hadoop命令,下列描述错误的是() ?
    A:hadoop fs,不仅可用于Hadoop文件系统也可以用于其他文件系统
    B:hadoop dfs,专门针对hdfs分布式文件系统
    C:相比于hdfs dfs,更推荐使用hadoop dfs
    D:当使用hadoop dfs时内部会被转为hdfs dfs命令

C

  1. 简述有关Hadoop 1.x和Hadoop 2.x的区别点描述错误的是() ?
    A:资源调度方式的改变
    B:高可用模式
    C:Hadoop 联邦架构
    D:Hadoop DataNode并发读

D
A.正确,Hadoop 2.x使用YARN代替JobTracker作为集群的调度工具
B.正确,Hadoop 2.x 弥补了Hadoop 1.x没有高可用模式的空白
C.正确,Hadoop 联邦架构是解决NameNode内存瓶颈问题的水平横向扩展方案
D.错误,Hadoop集群中DataNode是可以并发读的

  1. 简述下列关于MapReduce过程描述错误的是() ?
    A:reducer启动数据copy线程,copy线程copy的数据先放到内部缓冲区,之后溢写
    B:在一个reducer端先将多个map端的数据溢写到本地磁盘,之后再将多个文件合并成一个文件
    C:执行完reduce任务,最后的结果留在hdfs上
    D:merge阶段最后会生成一个文件,将此文件转移到内存中,rebalance阶段结束

D
A.正确
B.正确,最后返回给Client前reducer会溢写合并最后返回结果
C.正确,任务结果会存储在hdfs中
D.错误,shuffle阶段结束

  1. 简述下列关于MapReduce过程描述错误的是() ?
    A:在进行map计算之前,MapReduce会根据输入文件计算输入分片(input split),每个输入分片(input split)针对一个map任务
    B:map过程中map函数效率相对好控制,而且一般map操作都是本地化操作也就是在数据存储节点上进行
    C:需要计算每一个map的结果需要发到哪个reduce端,partition数等于mapper数。默认采用HashPartition
    D:merge操作会合并所有的本地文件,并且该文件会有一个对应的索引文件

C

  1. 简述下面关于Hadoop系统中使用CombineFileInputFormat解决小文件问题的描述错误的是() ?
    A:CombineFileInputFormat是使用Hadoop API(抽象类CombineFileInputFormat)来解决小文件的问题
    B:抽象类CombineFileInputFormat的基本思想是通过使用一个定制的InputFormat允许将小文件合并到Hadoop的分片或块中
    C:要使用抽象类CombineFileInputFormat,需要实现3个定制类:CustomCFIF、PairOfStringLong、CustomRecordReader
    D:PairOfStringLong要扩展CombineFileInputFormat,创建子类来支持定制格式的输入

D

  1. 简述有关Hadoop生态中各个角色对在高可用上的作用下列描述错误的是() ?
    A:YARN集群:为主备切换控制器提供主备选举支持
    B:共享存储系统:共享存储系统保存了NameNode在运行过程中所产生的HDFS的元数据,Active NameNode和Standby NameNode通过共享存储系统实现元数据同步
    C:DataNode节点:DataNode节点的HDFS的Block和DataNode之间的映射关系,在故障主备切换时,DataNode会主动上报Block和DataNode的映射关系
    D:NameNode节点:一台处于 Active 状态,为主 NameNode,另外一台处于 Standby 状态,为备 NameNode,只有主 NameNode 才能对外提供读写服务

A

  1. 简述关于Hadoop系统中添加节点的描述错误的是 ?
    A:新加节点上不需要有Hadoop环境
    B:在NameNode节点上修改HADOOP_HOME/conf/master文件,加入NameNode主机名
    C:在NameNode节点上修改HADOOP_HOME/conf/slaves文件,加入新节点名
    D:建立新加节点无密码的SSH连接,运行启动命令为:/usr/local/hadoop$bin/start-all.sh

A

  1. 简述不参与Hadoop系统读过程的组件是 ?
    A:flink
    B:NameNode
    C:DataNode
    D:读流程中生成的临时文件

A

  1. 简述关于 HDFS 安全模式说法正确的是() ?
    A:在安全模式下只能写不能读
    B:在安全模式下只能读不能写
    C:在安全模式下读写都不允许
    D:在安全模式下读写都可以

B

  1. 简述Hadoop生态圈中ZooKeeper的作用描述错误的选项是() ?
    A:ZooKeeper是一个开源的分布式应用程序协调服务
    B:基于ZooKeeper可以实现同步服务
    C:ZooKeeper可以实现配置维护、命名服务
    D:ZooKeeper负责文件系统底层读写

D

  1. 简述下列关于Hadoop命令中,命令执行成功返回0,执行失败返回-1,下列命令返回-1的是 ?
    A:hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2
    B:hdfs dfs -mv hdfs:///testData file:///tmp/testData
    C:hadoop fs -put localfile hdfs://host:port/hadoop/hadoopfile
    D:hadoop fs -put localfile /user/hadoop/hadoopfile

B

  1. 关于DataNode描述中,不正确的是 ?
    A:DataNode负责管理连接到节点的存储(一个集群中可以有多个节点)。
    B:为了减轻NameNode的负担,DataNode会在启动时的上报来更新其在NameNode上的映射表
    C:DataNode之间不会相互通信,NameNode只会与DataNode进行通信
    D:Hadoop集群中存储数据的节点,每个节点都会运行一个DataNode守护进程

C

  1. 简述关于Hadoop常用命令中,touchz和Linux系统的touch命令的描述正确的是 ?
    A:没区别
    B:touchz不能新建文件
    C:touchz不可用于更新文件的修改日期
    D:touch不可用于更新文件的修改日期

C

  1. 简述Hadoop和Hadoop生态圈的描述中,正确的是 ?
    A:与Hadoop相比,Hadoop生态圈是指Hadoop框架本身
    B:Hadoop生态圈,不仅包含Hadoop,还包括保证Hadoop框架正常高效运行的其他框架
    C:常见的Hadoop生态圈组件有ZooKeeper、Flume、Redis、Hive、Flink等
    D:Hadoop含义范围大于Hadoop生态圈

B

  1. 简述关于安全模式的描述错误的是() ?
    A:NameNode在启动时会自动进入安全模式
    B:NameNode只有在安全启动模式下才会进入安全模式
    C:安全模式是一种状态,文件系统不允许有任何修改
    D:进入安全模式后,系统会显示NameNode in safe mode,说明系统正在处于安全模式

B

  1. 简述有关Hadoop系统小文件问题的描述错误的是 ?
    A:Hadoop上大量HDFS元数据信息存储在NameNode内存中,因此过多的小文件必定会压垮NameNode的内存
    B:Hadoop中小文件问题无法在Client解决,只能在DataNode上做文件合并
    C:使用Hadoop的CombineFileInputFormat可实现小文件的合并
    D:Client上传文件时,可以执行一定的策略先合并

B
A.正确,元信息存储于NameNode的内存中,太多会导致NameNode节点负载过高
B.错误,对于过多的小文件,Client可以先合并
C.正确
D.正确,Client端可以在一定程度解决部分小文件合并问题 1.19209

  1. 简述Hadoop-2.6.5 集群中,HDFS 默认副本块(含原数据块)的个数是 ?
    A:1
    B:2
    C:3
    D:4

C

  1. Google三驾马车是Hadoop等分布式系统的基石,其中论文()不属于三驾马车之一 ?
    A:GFS
    B:MapReduce
    C:OpenTSDB
    D:BigTable

C

  1. 简述关于安全模式命令,正确的是 ?
    A:退出安全模式:hadoop dfsadmin -safemode leave
    B:退出安全模式:hadoop dfs -safemode leave
    C:进入安全模式:hadoop dfs -safemode enter
    D:进入安全模式:hadoop dfsadmin enter

A

  1. 简述以下不属于Hadoop中NameNode的功能点的选项是 ?
    A:负责管理Hadoop中文件块Block的数据
    B:响应客户端请求
    C:管理DataNode上文件块Block的均衡
    D:维持副本数量

A

  1. 简述Hadoop系统中查看指定目录/path最大的五个文件(文件夹算总体的一个文件)的指令为 ?
    A:hadoop fs -du /path | sort -nr | head -n 5
    B:hadoop fs -du /path | head -n 5
    C:hadoop fs -du /path | sort -nr
    D:hadoop fs -du /path | sort -n 5 | head -nr

A

  1. Hadoop常用命令中,找出某个已存在在Hadoop系统中,且绝对路径为/tmp/1.txt文件中含有字符’111’的行的命令为() ?
    A:hdfs dfs -cat 1.txt | grep 111
    B:cat 1.txt | grep 111
    C:hdfs dfs -cat /tmp/1.txt | grep 111
    D:hdfs -cat /tmp/1.txt | grep 111

C

  1. 简述下列进程中哪些不是Hadoop集群中Hadoop分别需要启动的 ?
    A:TaskNode
    B:SecondaryNameNode
    C:DataNode
    D:ResourceManager

A

  1. 简述Hadoop常用命令中,查看指定目录下的所有文件及子目录的命令是 ?
    A:hdfs dfs –ls [文件目录]
    B:hdfs dfs –du [文件目录]
    C:hdfs dfs –ls -R [文件目录]
    D:hdfs dfs –du -R [文件目录]

C

  1. 简述下列哪个属性是 hdfs-site.xml 中的配置 ?
    A:dfs.replication
    B:fs.defaultFS
    C:mapreduce.framework.name
    D:yarn.resourcemanager.address

A
dfs.replication 是 hdfs.site.xml 中的配置,配置数据块的副本数
fs.defaultFS 是 core.site.xml 中的配置,配置默认文件系统的名称
yarn.resourcemanager.address 是 yarn-site.xml 中的配置,配置 ResourceManager 对客户端暴露的地址
mapreduce.framework.name 是 mapred.site.xml 中的配置,配置 yarn 运行引擎

  1. 简述下列关于ResourceManager描述错误的是 ?
    A:ResourceManager也叫JobTracker
    B:ResourceManager负责调度DataNode上的工作
    C:ResourceManager只负责调度DataNode,具体的工作由ResourceManager上的TaskTracker执行实际工作
    D:ResourceManager不只负责调度DataNode,还执行实际的读写任务

D

  1. 简述下面关于 HDFS 中 SecondaryNameNode 描述正确的一项是 ?
    A:它是 NameNode 的热备
    B:它对内存没有要求
    C:它的目的是帮助 NameNode 合并 editlog,减少 NameNode 启动时间
    D:SecondaryNameNode 应与 NameNode 部署到一个节点

C

  1. 简述关于MapReduce的描述错误的是 ?
    A:MapReduce是一个使用简单的软件框架,基于MapReduce的应用程序能够运行在成千上万个商用机器组成的大型集群上,并以一种可靠的方式并行处理上T级别的数据集
    B:一个MapReduce作业通常会把输入的数据集切分为若干独立的数据块,由map任务以完全串行的方式处理它们
    C:MapReduce框架会对map的输出先进行排序, 然后把结果输入给reduce任务
    D:整个MapReduce框架负责任务的调度和监控,以及重新执行已经失败的任务

D

  1. 下面关于Hadoop系统中使用CombineFileInputFormat解决小文件问题的描述错误的是()
    A:CombineFileInputFormat是使用Hadoop API(抽象类CombineFileInputFormat)来解决小文件的问题
    B:抽象类CombineFileInputFormat的基本思想是通过使用一个定制的InputFormat允许将小文件合并到Hadoop的分片或块中
    C:要使用抽象类CombineFileInputFormat,需要实现3个定制类:CustomCFIF、PairOfStringLong、CustomRecordReader
    D:PairOfStringLong要扩展CombineFileInputFormat,创建子类来支持定制格式的输入

D

  1. 简述部署Hadoop集群的核心文件为 ?
    A:hadoop-env.sh
    B:core-site.xml
    C:mapred-site.xml
    D:hdfs-site.xml

ABCD
A.Hadoop环境变量的配置脚本
B.指定NameNode地址、CheckPoint设置、Hadoop产生文件的地址等
C.设置Hadoop的MR(Map/Reduce)运行在YARN上
D.指定Hadoop保存数据的副本数量、DataNode和NameNode的存储位置

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我思故我在7896

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值