在部署并成功启动YARN集群后,我们就可以在YARN上运行各类应用程序了
YARN作为资源调度管控框架,其本身提供资源供许多应用程序运行,常见的有:
MapReduce程序
Spark程序
Flink程序
提交MapReduce程序至YARN运行
Hadoop官方内置了一些预置的MapReduce程序代码,只需要通过命令即可使用
常见的有2个MaoReduce内置程序
wordcount:单词计数程序
统计指定文件内各个单词出现的次数
pi:求圆周率
通过蒙特卡罗(统计模拟法)求圆周率
这些内置的示例MapReduce程序代码,都在:
$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar这个文件内部
可以通过命令hadoop jar 命令来运行它,提交MapReduce程序到YARN中
语法:hadoop jar 程序文件 java类名 [程序参数]…[程序参数]
提交wordcount示例程序
单词技术示例程序的功能很简单:
给定数据输入的路径(HDFS),给定结果输出的路径(HDFS)
将输入路径内的数据中的单词进行计数,将结果写到输出路径
可以先准备一份数据文件,之后上传到HDFS中
将上面的内容保存到Linux中命名为words.txt,并上传到HDSF
hadoop fs -mkdir -p /input/wordcount
hadoop fs -mkdir /output
hadoop fs -put word.txt /input/wordcount/
执行以下命令,提交示例MapReduce程序WordCount到YARN中执行
参数wordcpunt,表示运行jar包中的单词计数程序(java class)
参数1是数据输入路径(hdfs://root1:8020/input/wordcount/)
参数2是结果输出路径(hdfs://root1:8020/output/wc)
提交程序后,可以在YARN的WEB UI页面看到运行中的程序(http://root1:8088)
执行完之后,可以在HDFS中查看结果
_SUCCESS文件是标记文件,表示运行成功
part-r-00000,是结果文件,结果存储在以part开头的文件中
点击logs
可以看见详细的运行日志
配置文件中配置了日志聚合功能,并且设置了历史服务器,才能在网页中显示出来
提交圆周率示例程序
可以执行如下命令,使用蒙特卡罗算法模拟计算求PI(圆周率)
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar pi 3 1000
参数pi表示要运行的java类,这里表示运行java类,这里表示运行jar包中的求pi程序
参数3,表示设置几个map任务
参数1000,表示模拟求PI的样本数(越大求的PI越准确,但是速度慢)