Yarn 启动历史服务器

在 Hadoop 生态系统中,Yarn 是一个用于集群资源管理和作业调度的框架。它可以让我们高效地管理集群资源,并运行各种类型的作业。其中一个重要的组件是历史服务器,它记录了集群上运行的所有应用程序的运行状态和性能指标。本文将介绍如何使用 Yarn 启动历史服务器,并提供相应的代码示例。

什么是历史服务器?

历史服务器是 Yarn 的一个可选组件,用于收集和展示集群上应用程序的历史数据。它可以记录每个应用程序的运行状态、资源使用情况、任务执行情况等信息,并将其以可视化的形式展示出来。通过历史服务器,我们可以深入了解集群的性能指标,帮助我们优化和调试应用程序。

如何启动历史服务器?

启动历史服务器是一个简单的过程,只需要在 Yarn 配置文件中进行一些设置即可。下面是具体的步骤:

步骤 1: 修改 Yarn 配置文件

首先,我们需要编辑 Yarn 的配置文件 yarn-site.xml。可以通过以下命令找到该文件:

cd $HADOOP_HOME/etc/hadoop

然后,打开 yarn-site.xml 文件,并添加以下配置:

<property>
  <name>yarn.timeline-service.enabled</name>
  <value>true</value>
</property>

<property>
  <name>yarn.timeline-service.hostname</name>
  <value>localhost</value>
</property>

<property>
  <name>yarn.timeline-service.http-cross-origin.enabled</name>
  <value>true</value>
</property>

上述配置中,yarn.timeline-service.enabled 设置为 true,表示启用历史服务器。yarn.timeline-service.hostname 设置为 localhost,表示历史服务器运行在本地。yarn.timeline-service.http-cross-origin.enabled 设置为 true,表示允许跨域请求。

步骤 2: 启动历史服务器

在配置完成后,我们可以使用以下命令启动历史服务器:

$HADOOP_HOME/bin/yarn --daemon start historyserver

这将启动历史服务器,并将其作为一个守护进程在后台运行。

步骤 3: 访问历史服务器页面

启动完成后,我们可以通过浏览器访问历史服务器页面。默认情况下,历史服务器监听在端口号 19888。打开浏览器,并访问以下 URL:

http://localhost:19888/jobhistory

这将打开历史服务器的主页面,并展示集群上运行的应用程序的列表。通过点击每个应用程序,我们可以查看其详细信息,包括任务执行情况、资源使用情况等。

代码示例

下面是一个使用 Yarn 启动历史服务器的代码示例:

# 修改 yarn-site.xml 文件
cd $HADOOP_HOME/etc/hadoop
vim yarn-site.xml

yarn-site.xml 文件中,添加以下配置:

<property>
  <name>yarn.timeline-service.enabled</name>
  <value>true</value>
</property>

<property>
  <name>yarn.timeline-service.hostname</name>
  <value>localhost</value>
</property>

<property>
  <name>yarn.timeline-service.http-cross-origin.enabled</name>
  <value>true</value>
</property>

保存并退出编辑器。然后,使用以下命令启动历史服务器:

$HADOOP_HOME/bin/yarn --daemon start historyserver

最后,通过浏览器访问以下 URL,查看历史服务器页面:

http://localhost:19888/jobhistory

关系图

下面是历史服务器与其他组件之间的关系图:

erDiagram
    Yarn }|..| History Server : 启动历史服务器
    Yarn }|..| ResourceManager : 集群资源管理
    Yarn }|..| NodeManager : 节点资源管理
    History Server }|..| HDFS : 存储历史数据
    Node