Datopia 与 Hadoop Yarn

HadoopHadoopBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

引言

在一个名为 Datopia 的奇幻之地,信息如同纯净的知识溪流般流淌,那里住着一个充满好奇的生物 Datina。Datina 的唯一目标就是理解数据领域的复杂运作,并利用其潜力。有一天,Datina 偶然发现了一种神秘的力量,名为 Hadoop,这是一种能够处理海量数据的强大工具。然而,要充分发挥其能力,Datina 需要掌握执行 Yarn 命令和操作 jar 文件的技巧。

本实验的目标是引导 Datina 在 Hadoop 生态系统中使用 Yarn 命令和 jar 文件。通过完成这个实验,Datina 将获得高效管理和执行应用程序所需的技能,从而在 Datopia 的土地上释放 Hadoop 的真正潜力。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hadoop(("`Hadoop`")) -.-> hadoop/HadoopHDFSGroup(["`Hadoop HDFS`"]) hadoop(("`Hadoop`")) -.-> hadoop/HadoopMapReduceGroup(["`Hadoop MapReduce`"]) hadoop(("`Hadoop`")) -.-> hadoop/HadoopYARNGroup(["`Hadoop YARN`"]) hadoop(("`Hadoop`")) -.-> hadoop/HadoopHiveGroup(["`Hadoop Hive`"]) hadoop/HadoopHDFSGroup -.-> hadoop/hdfs_setup("`HDFS Setup`") hadoop/HadoopHDFSGroup -.-> hadoop/fs_ls("`FS Shell ls`") hadoop/HadoopMapReduceGroup -.-> hadoop/mappers_reducers("`Coding Mappers and Reducers`") hadoop/HadoopYARNGroup -.-> hadoop/yarn_setup("`Hadoop YARN Basic Setup`") hadoop/HadoopYARNGroup -.-> hadoop/yarn_app("`Yarn Commands application`") hadoop/HadoopYARNGroup -.-> hadoop/yarn_log("`Yarn Commands log`") hadoop/HadoopYARNGroup -.-> hadoop/yarn_jar("`Yarn Commands jar`") hadoop/HadoopYARNGroup -.-> hadoop/yarn_node("`Yarn Commands node`") hadoop/HadoopHiveGroup -.-> hadoop/hive_setup("`Hive Setup`") subgraph Lab Skills hadoop/hdfs_setup -.-> lab-289011{{"`Datopia 与 Hadoop Yarn`"}} hadoop/fs_ls -.-> lab-289011{{"`Datopia 与 Hadoop Yarn`"}} hadoop/mappers_reducers -.-> lab-289011{{"`Datopia 与 Hadoop Yarn`"}} hadoop/yarn_setup -.-> lab-289011{{"`Datopia 与 Hadoop Yarn`"}} hadoop/yarn_app -.-> lab-289011{{"`Datopia 与 Hadoop Yarn`"}} hadoop/yarn_log -.-> lab-289011{{"`Datopia 与 Hadoop Yarn`"}} hadoop/yarn_jar -.-> lab-289011{{"`Datopia 与 Hadoop Yarn`"}} hadoop/yarn_node -.-> lab-289011{{"`Datopia 与 Hadoop Yarn`"}} hadoop/hive_setup -.-> lab-289011{{"`Datopia 与 Hadoop Yarn`"}} end

探索 Hadoop 环境

在这一步中,我们将熟悉 Hadoop 环境,并确保所有必要的组件都已正确配置。

首先,切换到 hadoop 用户:

su - hadoop

然后,验证 Hadoop 版本:

hadoop version

你应该会看到类似以下的输出:

Hadoop 3.3.6
...

列出可用的 Jar 文件

在这一步中,我们将学习如何列出 Hadoop 环境中可用的 jar 文件。这些 jar 文件包含预构建的应用程序和实用工具,可以通过 Yarn 命令执行。

ls $HADOOP_HOME/share/hadoop/mapreduce/*.jar

输出将显示位于 $HADOOP_HOME/share/hadoop/mapreduce 目录下的 jar 文件列表。这些 jar 文件可以与 Yarn 命令一起使用,以运行各种应用程序和实用工具。

/home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-app-3.3.6.jar
/home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-common-3.3.6.jar
/home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-core-3.3.6.jar
...

使用 Yarn 运行 Jar 文件

在这一步中,我们将学习如何使用 yarn jar 命令运行 jar 文件。我们将以 hadoop-mapreduce-examples jar 文件为例。

现在,运行 hadoop-mapreduce-examples jar 文件中的 WordCount 示例:

yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /home/hadoop/input /home/hadoop/output

提示:你可以通过 hadoop fs -cat /home/hadoop/input/* 读取文件内容。

输入文件的内容:

hello world
hello labex
hello Hadoop
hello Java

在上述命令中,我们指定了 jar 文件 hadoop-mapreduce-examples-3.3.6.jar、要运行的应用程序 wordcount,以及输入和输出路径 /home/hadoop/input/home/hadoop/output

运行命令后,你应该会看到类似以下的输出:

hadoop:~/ $ hadoop fs -cat /home/hadoop/output/*                     [19:54:17]
Hadoop	1
Java	1
hello	4
labex	1
world	1

监控 Yarn 应用程序

在这一步中,我们将学习如何使用各种命令监控和管理 Yarn 应用程序。

列出正在运行的 Yarn 应用程序:

yarn application -list

终端中的示例输出:

UBMITTED, ACCEPTED, RUNNING, FINISHED, FAILED, KILLED] and tags: []):1
                Application-Id	    Application-Name	    Application-Type	      User	     Queue	             State	       Final-State	       Progress	                       Tracking-URL
application_1711070937750_0001	          word count	           MAPREDUCE	    hadoop	   default	          FINISHED	         SUCCEEDED	           100%	http://iZj6cdxwclh8pms0k1vyyhZ:19888/jobhistory/job/job_1711070937750_0001

获取应用程序状态:

yarn application -status <application_id>

终端中的示例输出:

hadoop:~/ $ yarn application -status application_1711070937750_0001   [9:31:46]
2024-03-22 09:33:12,186 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032
2024-03-22 09:33:12,521 INFO conf.Configuration: resource-types.xml not found
2024-03-22 09:33:12,522 INFO resource.ResourceUtils: Unable to find 'resource-types.xml'.
Application Report :
	Application-Id : application_1711070937750_0001
	Application-Name : word count
	Application-Type : MAPREDUCE
	User : hadoop
	Queue : default
	Application Priority : 0
	Start-Time : 1711071042168
	Finish-Time : 1711071057334

终止正在运行的应用程序:

yarn application -kill <application_id>

终端中的示例输出:

hadoop:~/ $ yarn application -kill application_1711070937750_0001     [9:33:14]
2024-03-22 09:34:45,075 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032
Application application_1711070937750_0001 has already finished

提示:你可以通过 yarn application -list -appStates ALL 列出所有应用程序。

yarn application 命令允许你列出、监控和管理 Yarn 应用程序。你可以检索应用程序状态,甚至可以使用相应的子命令终止正在运行的应用程序。

总结

在这个实验中,我们踏上了 Datopia 的旅程,Datopia 是一个充满好奇的生物,它希望解锁 Hadoop Yarn 命令和 jar 文件的真正潜力。通过完成这个实验,Datina 掌握了列出可用 jar 文件、使用 yarn jar 命令运行应用程序以及监控和管理 Yarn 应用程序的宝贵技能。

通过动手实践,Datina 学会了如何导航 Hadoop 环境,执行像 WordCount 这样的预构建应用程序,并使用各种 Yarn 命令监控正在运行的应用程序。这些技能不仅使 Datina 能够充分利用 Hadoop 的力量,还为数据领域的进一步探索和掌握奠定了基础。

这个实验挑战了我,要求我创建一个引人入胜且信息丰富的学习体验,将技术概念与奇妙的叙事相结合。通过设计一个虚构的世界和一个易于理解的角色,我旨在使学习过程更加愉快和易于接受,特别是对于初学者。此外,我专注于提供清晰的说明、示例代码片段和详细的解释,以确保学习旅程的顺利进行。

您可能感兴趣的其他 Hadoop 教程