Hadoop 管理员面试问题

21-12-23 banq

生产 Hadoop 部署支持哪些操作系统?
主要支持的操作系统是 Linux。但是,通过一些额外的软件,Hadoop可以部署在 Windows 上。

namenode的作用是什么?
namenode 是Hadoop 集群的“大脑”,负责根据复制策略管理系统上的分布块。namenode 还根据客户端请求提供数据的特定地址。

当客户端尝试读取数据文件时,名称节点上会发生什么?
namenode 将在编辑文件中查找有关文件的信息,然后从文件系统内存快照中检索剩余信息。由于名称节点需要支持大量客户端,因此主名称节点只会向数据位置发回信息。数据节点本身负责检索。

Hadoop 集群(主要和次要名称节点和数据节点)的硬件要求是什么?
对数据节点没有要求。但是,namenode 需要指定数量的 RAM 来将文件系统映像存储在内存中 基于主 namenode 和辅助 namenode 的设计,整个文件系统信息将存储在内存中。因此,两个名称节点都需要有足够的内存来包含整个文件系统映像。

Hadoop 代码可以在什么模式下运行?
Hadoop可以采用单机模式、伪分布式模式或全分布式模式进行部署。Hadoop 专为部署在多节点集群上而设计。但是,它也可以部署在单台机器上并作为单个进程进行测试

Hadoop 管理员将如何在生产中部署 Hadoop 的各种组件?
在master节点上部署namenode和jobtracker,在多个slave节点上部署datanodes和tasktracker。系统上只需要一个 namenode 和 jobtracker。数据节点的数量取决于可用的硬件

部署辅助名称节点的最佳实践是什么
在单独的独立机器上部署辅助名称节点。辅助名称节点需要部署在单独的机器上。它不会以这种方式干扰主要的 namenode 操作。辅助名称节点必须与主名称节点具有相同的内存要求。

是否有部署 Hadoop 的标准程序?
不,各种发行版之间存在一些差异。但是,它们都要求在机器上安装 Hadoop jar。所有Hadoop发行版都有一些共同的要求,但不同供应商的具体程序会有所不同,因为它们都有一定程度的专有软件

辅助名称节点的作用是什么?
辅助名称节点执行合并编辑日志和当前文件系统快照的 CPU 密集型操作。由于具有 CPU 密集型操作和元数据备份的额外要求,辅助名称节点被分离为一个进程

不运行辅助名称节点有什么副作用?
集群性能会随着时间的推移而下降,因为编辑日志会越来越大。如果辅助名称节点根本没有运行,编辑日志将显着增长,并且会减慢系统速度。此外,系统将长时间进入安全模式,因为 namenode 需要组合编辑日志和当前文件系统检查点图像。

如果数据节点失去网络连接几分钟会发生什么?
namenode 将检测到 datanode 没有响应,并将开始从剩余副本复制数据。当 datanode 重新上线时,额外的副本将由 namenode 主动维护复制因子。namenode 监控所有数据节点的状态并跟踪哪些块位于该节点上。当数据节点不可用时,它将触发从现有副本复制数据。但是,如果数据节点恢复正常,则会删除过度复制的数据。注意:数据可能会从原始数据节点中删除。

如果其中一个数据节点的 CPU 速度慢得多会怎样?
任务执行将与最慢的工人一样快。但是,如果启用了推测执行,最慢的工作线程将不会产生如此大的影响,因为 Hadoop 是专门为与商品硬件一起设计的。推测执行有助于抵消缓慢的工作人员。将创建同一任务的多个实例,作业跟踪器将考虑第一个结果,并终止该任务的第二个实例。

什么是投机执行?
如果启用了推测执行,则作业跟踪器将在多个节点上发出同一任务的多个实例,并将获取最先完成的任务的结果。任务的其他实例将被杀死。
推测执行用于抵消集群中慢速工人的影响。jobtracker 创建同一任务的多个实例并获取第一个成功任务的结果。其余任务将被丢弃。

 创建Hadoop集群需要多少机架才能确保集群可靠运行?
为了确保可靠运行,建议至少有 2 个机架配置了机架放置 Hadoop 具有内置的机架感知机制,允许根据配置在不同机架之间分配数据。

namenode 有什么特殊要求吗?
是的,namenode 保存有关系统中所有文件的信息,需要格外可靠。namenode 是单点故障。它需要格外可靠,并且元数据需要在多个地方复制。请注意,社区正在努力解决 namenode 的单点故障问题。
如果您有一个 128M 大小的文件并且复制因子设置为 3,那么您可以在集群上找到多少个块与该文件对应(假设默认的 apache 和 cloudera 配置)?
6
根据配置设置,文件会按照默认的块大小 64M 分成多个块。128M / 64M = 2。每个块将根据复制因子设置(默认为 3)进行复制。2 * 3 = 6 。

什么是分布式副本(distcp)?
Distcp 是一个 Hadoop 实用程序,用于启动 MapReduce 作业以复制数据。主要用途是复制大量数据。Hadoop 环境中的主要挑战之一是跨多个集群复制数据,distcp 将允许利用多个数据节点并行复制数据。

什么是复制因子?
复制因子控制每个单独的块可以复制多少次——
根据复制因子在 Hadoop 集群中复制数据。高复制因子保证了发生故障时的数据可用性。

主节点上运行哪些守护进程?
NameNode、辅助 NameNode 和 JobTracker
Hadoop由五个独立的守护进程组成,每个守护进程都在自己的 JVM 中运行。NameNode、Secondary NameNode 和 JobTracker 运行在 Master 节点上。DataNode 和 TaskTracker 运行在每个 Slave 节点上。

什么是机架意识?
机架感知是名称节点根据机架定义决定如何放置块的方式。Hadoop 将尽量减少同一机架内数据节点之间的网络流量,并且只会在必要时联系远程机架。由于机架感知,namenode 能够控制它

jobtracker 在 Hadoop 集群中的作用是什么?
jobtracker负责在slave节点上调度任务,收集结果,重试失败的任务。作业跟踪器是 map-reduce 执行的主要组件。它控制将作业划分为更小的任务,将任务提交给单独的 tasktracker,跟踪作业的进度并将结果报告给调用代码。

Hadoop集群如何容忍datanode故障?
由于 Hadoop 设计为在商品硬件上运行,因此预计会出现数据节点故障。Namenode 跟踪所有可用的数据节点并积极维护所有数据的复制因子。
namenode 主动跟踪所有 datanode 的状态,如果 datanode 变得无响应,则立即采取行动。namenode 是HDFS的中央“大脑”,并在检测到断开连接的那一刻开始复制数据。

namenode恢复的过程是什么?
可以通过两种方式恢复名称节点:从备份元数据启动新名称节点或将辅助名称节点提升为主名称节点。
namenode恢复过程对于保证数据的可靠性非常重要,可以通过使用备份数据启动一个新的namenode或将secondary namenode提升为primary来实现。

Web-UI 显示一半的数据节点处于退役模式。这意味着什么?从网络中删除这些节点是否安全?
这意味着 namenode 正在尝试通过将副本移动到剩余的 datanode 来从这些 datanode 检索数据。如果管理员在退役完成之前删除这些数据节点,则数据可能会丢失。
由于复制策略,在完成退役过程之前,由于数据节点被大量删除,可能会丢失一些数据。退役是指名称节点试图通过将副本移动到剩余的数据节点来从数据节点检索数据。

Hadoop 集群添加新的数据节点后,Hadoop 管理员需要做什么?
由于新节点上不会有任何数据,因此管理员需要启动平衡器以在所有节点之间均匀地重新分配数据。
Hadoop 集群会自动检测新的数据节点。但是,为了优化集群性能,建议启动 rebalancer 以在数据节点之间均匀地重新分配数据。

如果Hadoop管理员需要更改,他需要更改哪个配置文件?
Hadoop 集群中的每个节点都有自己的配置文件,并且需要在每个文件中进行更改。原因之一是每个节点的配置可能不同。

Map Reduce 作业在刚刚重新启动的集群上失败。他们在重新启动之前工作。可能有什么问题?
集群处于安全模式。管理员需要等待namenode退出安全模式再重新启动作业
这是Hadoop管理员在集群上没有secondary namenode并且集群很长时间没有重新启动时的一个非常常见的错误。namenode 将进入安全模式并结合编辑日志和当前文件系统时间戳

Map Reduce 作业花费的时间太长。可以做些什么来提高集群的性能?
Hadoop 集群出现性能问题的最常见原因之一是任务分布不均。任务数量必须与集群上的可用插槽数量相匹配
Hadoop 不是硬件感知系统。确保资源供需匹配是开发人员和管理员的责任。

你多久需要重新格式化namenode?
绝不。namenode 一开始只需要格式化一次。重新格式化namenode将导致整个数据丢失
namenode 是唯一需要格式化一次的系统。它将为文件系统元数据创建目录结构并为整个文件系统创建 namespaceID。

提高复制级别后,我仍然看到数据复制不足。可能有什么问题?
由于数据量大,数据复制需要时间。在Hadoop的管理员应该留出足够的时间进行数据复制
根据数据大小,数据复制将需要一些时间。Hadoop 集群仍然需要复制数据,如果数据量足够大,复制需要几分钟到几个小时的情况并不少见。