华为云耀云服务器L实例-大数据学习-MapReduce&Yarn的实操

发布时间 2023-12-29 18:03:44作者: 技术僧
 华为云耀云服务器L实例-大数据学习-MapReduce&Yarn的实操

 

 

产品官网:https://www.huaweicloud.com/product/hecs-light.html

 

 

今天我们采用可靠更安全、智能不卡顿、价优随心用、上手更简单、管理特省心华为云耀云服务器L实例为例,继续介绍MapReduce和YARN的实操。

 

MapReduce 和 YARN(Yet Another Resource Negotiator)是Apache Hadoop生态系统的两个关键组件,用于支持大规模分布式计算。以下是对它们的简单介绍:

 

MapReduce:

● 定义: MapReduce 是一种编程模型,用于处理和生成大规模数据集。它分为两个主要阶段:Map 阶段和 Reduce 阶段。

● Map 阶段: 输入数据被分割成小块,每个块由一个 Mapper 处理。Mapper 生成中间键值对(key-value pairs)作为输出,其中 key 用于分组相关的数据。

● Shuffle and Sort 阶段: 中间数据被传送到 Reduce 阶段,经过分区、排序和分组,确保具有相同 key 的数据被传递到相同的 Reduce 任务。

● Reduce 阶段: Reduce 任务处理中间数据,最终生成最终的输出。

● 应用: MapReduce 可以用于处理大规模的数据,例如在分布式存储系统(如Hadoop分布式文件系统)中运行。

 

 

YARN (Yet Another Resource Negotiator):

● 定义: YARN 是Hadoop的资源管理器,负责集群中的资源分配和作业调度。它扩展了Hadoop的能力,使得不仅可以运行MapReduce作业,还可以运行其他类型的分布式应用程序。

● 角色:

ResourceManager: 主要负责集群资源的分配和调度。

NodeManager: 在集群中的每个节点上运行,负责管理节点上的资源,接受来自 ResourceManager 的指令并执行相应的任务。

● 应用: YARN 使得 Hadoop 集群可以同时运行多个应用程序,而不仅仅是 MapReduce 作业。这使得 Hadoop 集群更加通用,可以支持多种不同类型的工作负载。

 

总体而言,MapReduce 和 YARN 是 Hadoop 的核心组件,它们使得处理和分析大规模数据变得更加容易和可扩展。

 

以下是在华为云耀云服务器L实例实操MapReduce 和 YARN步骤。请确保已经按照前文教程在服务器上配置好

 

在部署并成功启动YARN集群后,我们就可以在YARN上运行各类应用程序了。

YARN作为资源调度管控框架,其本身提供资源供许多程序运行,常见的有:

MapReduce程序

Spark程序

Flink程序

 

(1)创建words.txt文件

```bash

hadoop hdfs hadoop hdfs

hadoop mapreduce hadoop yarn

hadoop itcast hadoop

hadoop yarn mapreduce

```

 

 

(2)  内容保存到Linux中为words.txt文件,并上传到HDFS

```bash

hadoop fs -mkdir -p /input/wordcount

hadoop fs -mkdir /output

hadoop fs -put words.txt /input/wordcount/

```

 

(3)  执行如下命令,提交示例MapReduce程序WordCount到YARN中执行

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount hdfs://node1:8020/input/wordcount/ hdfs://node1:8020/output/wc1

注意:

参数wordcount,表示运行jar包中的单词计数程序(Java Class)

参数1是数据输入路径(hdfs://node1:8020/input/wordcount/)

参数2是结果输出路径(hdfs://node1:8020/output/wc1), 需要确保输出的文件夹不存在

 

 

(4)提交交程序后,可以在YARN的WEB UI页面看到运行中的程序(http://node1:8088/cluster/apps)

 

(5)执行完成后,可以查看HDFS上的输出结果

_SUCCESS文件是标记文件,表示运行成功,本身是空文件

part-r-00000,是结果文件,结果存储在以part开头的文件中

 

(6)执行完成后,可以借助历史服务器查看到程序的历史运行信息

 

 

(7)提交求圆周率示例程序

可以执行如下命令,使用蒙特卡罗算法模拟计算求PI(圆周率)

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar pi 3 1000

参数pi表示要运行的Java类,这里表示运行jar包中的求pi程序

参数3,表示设置几个map任务

参数1000,表示模拟求PI的样本数(越大求的PI越准确,但是速度越慢)