摘要:YARN集群实现Hadoop平台上运行的应用程序的进程调度,它 包括一个资源管理器进程,该进程控制并分配整个集群中的处理资源,以及一个或多个在不同主机上运行的节点管理器,这些节点管理器执行应用程序中的任务。判断题:以完全分布式模式部署的Hadoop集群具有所有主节点和从节点HDF,以及在同一主机上运行的YARN进程。

了解Hadoop集群架构

本节内容

这一小时你将学到:

  • HDFS和YARN集群
  • Hadoop集群结构
  • 不同的Hadoop集群部署模式

您将了解Hadoop平台中涉及的进程以及它们在Hadoop集群框架中的操作方式。在Hadoop的主从集群结构中,您将学习区分主从节点进程。您还将了解Hadoop的不同部署模式。您会对在接下来的一小时内对部署Hadoop有了更深入的了解。

本节内容全部选自《萨姆斯24小时自学Hadoop》,翻译:赵老师

HDFS集群进程

Hadoop分布式文件系统(HDFS)包括一组管理和协调Hadoop的分布式文件系统的Java进程。如前所述,HDFS可以作为独立于其他流程(如YARN)的独立集群存在。HDFS具有主从集群结构,这意味着不同的HDFS进程,

称之为守护进程或服务,在集群节点上运行并被分类为主节点或从节点。

注释

守护进程是一种在Linux或Unix操作系统上运行的程序。守护进程在后台运行,并响应诸如客户端请求之类的事件。Linux中的守护进程相当于Windows中的服务

在进一步讨论之前,可能有必要讨论一些与HDFS相关的关键概念,

主从集群结构

主从是一种通信模型,其中一个进程控制一个或多个其他进程。在某些系统中,主进程是在运行时或处理过程中从一组合格进程中选择的,而在其他情况下,如HDFS,主进程和从进程是预先指定的,在集群的生存期内是静态角色。

文件、块和元数据

我会在第4小时“了解Hadoop分布式文件系统(HDFS)”中详细介绍HDFS。然而,现在需要在非常高的层次上解释一些HDFS概念。这些包括文件、块和元数据。HDFS是一个虚拟文件系统,其中文件由分布在集群的一个或多个节点上的块组成。

在将数据上传到文件系统(一个称为摄取的过程)时,文件会根据配置的块大小不加区别地被分割。然后,这些块在集群节点之间分布和复制,以实现容错和本地处理数据的额外机会(回想一下“将计算引入数据”的设计目标)。

注释

容错是指即使系统的某些组件发生故障或出现故障,系统仍能继续正常运行的能力

有关文件系统及其虚拟目录、文件和组成文件的物理块的信息存储在文件系统元数据中。当你看完这本书时,你会学到更多关于这些概念的知识。

主节点(namenode)

主节点是管理文件系统元数据的HDFS主节点进程。namenode将元数据保存在常驻内存中,以便高效地为客户机读写请求提供服务。namenode还负责确保文件系统元数据的持久性和一致性,它通过日志记录功能来实现这一点,所有这些都将在第4小时中详细介绍。现在,您只需要知道namenode是HDF操作所必需的强制过程。

所有Hadoop服务器进程(守护进程)都提供Web用户界面(UI)。namenode在运行namenode守护程序的主机的端口50070上为这个UI提供服务,如图2.1所示。

辅助主节点和备用主节点

secondarynamenode和standby namenode是可选的进程,可以加快文件系统元数据恢复,或者在发生namenode故障时提供故障转移进程。同样,我将在第4小时中详细介绍这些进程,现在只需意识到它们是可选的HDFS主节点守护进程。

图2.1 HDFS 主节点WEB界面

HDFS集群概述

一个典型的Hadoop集群由一个namenode、一个备用namenode或secondarynamenode组成,尽管这些都不是必需的,以及许多数据节点。

我将在本小时稍后介绍一些可选的部署模式,其中服务的组成和位置可能有所不同,但图2.2表示典型HDFS集群中涉及的守护进程。

图2.2 HDFS集群进程

YARN 集群进程

YARN管理和协调Hadoop中的数据处理,通常是来自HDFS或写入HDFS的数据。这里提供一个关于YARN的基础知识,以介绍YARN集群中涉及的守护进程和进程。YARN将在第6小时“了解Hadoop中的数据处理”中详细介绍。

YARN集群结构是一个主从集群框架,和hdfs一样,其中一个主节点守护程序称为资源管理器(resourcemanager),一个或多个从节点守护程序称为nodemanager,运行在集群中的工作节点或从节点上,现在我们来介绍一下。

资源管理器

ResourceManager负责向集群上运行的应用程序授予集群计算资源。资源以称为容器的单位授予,容器是CPU核心和内存的预定义组合。容器分配(包括最小和最大阈值)可在集群上配置。将在第20小时特别介绍“了解高级集群配置”。但是,配置选项和配置全书里面都有包含。

当应用程序完成并释放其保留资源以及集群上运行的应用程序的状态时,ResourceManager还跟踪集群上的可用容量。与namenode类似,resourcemanager在运行此守护程序的主机的端口8088上提供嵌入式Web UI,这对于显示集群上运行、完成或失败的应用程序的状态非常有用,如图2.3所示。

图2.3 Yarn ResourceManager Web用户界面。

客户机将应用程序提交给ResourceManager,然后ResourceManager将集群中可用节点管理器上的第一个容器分配为名为applicationmaster的应用程序代理进程,applicationmaster然后协调运行应用程序所需的所有其他容器

节点管理器守护进程nodemanager

nodeManager是从节点yarn守护程序,用于管理从节点主机上的容器。容器执行应用程序中涉及的任务,正如Hadoop解决大问题的方法是“分而治之”,一个大问题被分解成一组任务,其中许多任务可以并行运行,可以回顾“无共享”的概念。这些任务在运行节点管理器进程的主机上的容器中运行。

大多数容器只运行任务。但是,我已经提到的一个特殊容器applicationmaster对应用程序有一些额外的责任。

The ApplicationMaster

如前所述,applicationmaster是ResourceManager为应用程序分配的第一个在节点管理器上运行的容器。它的工作是规划应用程序,包括根据正在处理的数据量确定所需的资源,并为应用程序阶段(例如,map reduce应用程序的map和reduce阶段)。ApplicationMaster代表应用程序从ResourceManager请求这些资源。ResourceManager将相同或其他节点管理器上的资源授予ApplicationMaster,以便在特定应用程序的生命周期内使用。applicationmaster还监视任务、阶段(可以并行执行的任务组)和依赖项的进度。摘要信息将提供给ResourceManager,以在其用户界面中显示,如前所示。

YARN集群概述

回想一下,yarn是一个独立的集群框架,可以作为一个完全功能的集群部署,而不需要HDFS。yarn支持高可用性实现模式,在这种模式下,ResourceManager有一个备用设备,以备系统发生故障时使用。不过,这是可选的。YARN主从结构和集群过程如图2.4所示。

图2.4YARN集群进程

Hadoop集群架构

当您组合两个核心子系统时,您拥有一个Hadoop集群,如图2.5所示。通常,您将在单独的主机上托管NameNode和ResourceManager。如果备用名称节点或资源管理器进程也在不同的主机上实现,那么您也可以选择宿主它们。

图2.5 Hadoop集群进程

注意hadoop从节点进程(datanode和nodemanager)位于同一位置。这为数据本低化提供了最大可能。

Hadoop支持三种不同的部署模式。现在我们来讨论一下。

全分布式模式

与主节点进程相比,完全分布式模式在不同的主机上部署从节点进程。图2.5是一个完全分布式Hadoop集群的示例。此部署模式有多种排列;例如,一台主机可以同时运行namenode和resourcemanager守护进程,一台或多台主机同时运行datanode和nodemanager守护进程。全分布式模式是生产系统的典型部署模式。

伪分布式模式

伪分布式模式具有所有Hadoop守护进程(Java进程),它们在单个主机上运行在单独的Java虚拟机(JVM)中,以模拟完全分布式集群将如何运行。伪分布式模式对于仅使用一台机器的情况下在测试模拟典型集群中发生的交互非常有用。各种商业Hadoop分发服务器提供的许多沙盒或快速启动环境都是虚拟机,其中Hadoop实例以伪分布式模式运行。图2.6显示了一个以伪分布式模式运行的Hadoop集群的示例。

图2.6 一个以伪分布式模式运行的Hadoop集群

注释

Java虚拟机(JVM)是跨平台运行时引擎,它可以执行从源代码编译成Java字节码的指令。这与为目标平台编译成机器代码的程序形成了对比,例如,为在Linux x64平台上运行而编译的C程序。Java字节码在运行JRE(Java运行时环境)的不同目标平台之间理论上是跨平台的和可移植的。所有主要的Hadoop进程、任务和DAMEON都是用Java编写的,并在Java虚拟机中运行。

作业本地模式

localjobrunner模式在单个JVM中运行所有map reduce组件。第7小时将介绍map reduce,“编程map reduce应用程序”,但是localjobrunner允许map reduce开发人员与集成开发环境(如Eclipse)集成,并能够在此环境中执行单元测试和调试、跟踪或单步执行。localjobrunner使用本地文件系统,而不是hdfs作为其文件系统。图2.7显示了Eclipse IDE的屏幕截图。

图2.7 Eclipse JAVA集成环境

总结

在这一小时中,您了解了有关组成Hadoop集群的核心进程的更多信息,包括守护进程(或服务)以及HDFS和YARN子系统操作中涉及的进程。HDFS集群管理和协调Hadoop的分布式文件系统,包括管理文件系统元数据的Namenode进程和在不同主机上运行的一个或多个Datanode进程,这些主机管理块存储、访问和复制。YARN集群实现Hadoop平台上运行的应用程序的进程调度,它 包括一个资源管理器进程,该进程控制并分配整个集群中的处理资源,以及一个或多个在不同主机上运行的节点管理器,这些节点管理器执行应用程序中的任务。NodeManager进程还可以根据ResourceManager的请求托管ApplicationMaster进程,这是一个为请求资源和管理应用程序处理而创建的委托进程。

应了解主节点和从节点进程之间的区别,以及从节点hdfs和yarn进程(分别是data node和nodemanager)通常是如何共同定位的,以便在可能的情况下实现处理的数据本地化。最后,了解了Hadoop不同部署模式,包括完全分布式部署模式(在不同主机上具有主从节点进程)、伪分布式部署模式(在单个主机上运行所有进程)和本地JobRunner模式(运行map reduce framework并在单个JVM中使用本地文件系统进行存储)。LocalJobRunner通常用于map reduce开发以及单元测试,这一般是升级到其他节点进行集成测试和部署之前。

下个小时你将卷起袖子展开Hadoop!

问与答

HDF中涉及哪些守护进程,它们各自的角色是什么?

HDFS集群中涉及的守护进程包括负责存储和管理文件系统元数据的主节点和负责块存储和访问的数据节点。

哪些守护进程和流程涉及到YARN,它们各自的作用是什么?

参与yarn的守护进程包括resourcemanager(跟踪和管理集群处理能力和高级应用程序状态)和nodemanager(为应用程序执行任务)。节点管理器还可以为名为applicationmaster的应用程序托管成为委托子流程,该子流程代表应用程序与资源管理器协商资源,并协调应用程序的任务和阶段处理。

在Hadoop集群中共同定位从节点进程有什么好处?

在从属节点上同时定位datanode和nodemanager守护进程增加了数据本地化的机会,从而可以安排任务在任务的输入数据块所在的位置执行。

判断题:以完全分布式模式部署的Hadoop集群具有所有主节点和从节点HDF,以及在同一主机上运行的YARN进程。

False. A Fully Distributed Mode cluster has master and slave node processes running on different hosts.

Which two of the following are slave node daemons in a Hadoop cluster?

A. ApplicationMaster

B. NodeManager

C. DataNode

D. ResourceManager

D.全部

1. The HDFS master node daemon, the NameNode, manages the filesystem ______.

2.True or False: NodeManagers execute tasks at the request of an ApplicationMaster, which is a delegate process for a specific application hosted on one NodeManager in the cluster.

1. metadata.

2. True.

翻译:赵老师

内容来源:《萨姆斯24小时自学Hadoop》

相关文章