From edbe7eb26b557b7c733350e16f63835d31b84255 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E5=9C=86?= <374072213@qq.com> Date: Tue, 20 Jun 2023 20:55:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=90=E4=B8=BA=20->=20=E7=A7=B0=E4=B8=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ch10.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch10.md b/ch10.md index 9d922f9..30b7bf6 100644 --- a/ch10.md +++ b/ch10.md @@ -264,7 +264,7 @@ Reducer 调用时会收到一个键,和一个迭代器作为参数,迭代器 单个 MapReduce 作业可以解决的问题范围很有限。以日志分析为例,单个 MapReduce 作业可以确定每个 URL 的页面浏览次数,但无法确定最常见的 URL,因为这需要第二轮排序。 -因此将 MapReduce 作业链接成为 **工作流(workflow)** 中是极为常见的,例如,一个作业的输出成为下一个作业的输入。Hadoop MapReduce 框架对工作流没有特殊支持,所以这个链是通过目录名隐式实现的:第一个作业必须将其输出配置为 HDFS 中的指定目录,第二个作业必须将其输入配置为从同一个目录。从 MapReduce 框架的角度来看,这是两个独立的作业。 +因此将 MapReduce 作业链接称为 **工作流(workflow)** 中是极为常见的。例如,一个作业的输出成为下一个作业的输入。Hadoop MapReduce 框架对工作流没有特殊支持,所以这个链是通过目录名隐式实现的:第一个作业必须将其输出配置为 HDFS 中的指定目录,第二个作业必须将其输入配置为从同一个目录。从 MapReduce 框架的角度来看,这是两个独立的作业。 因此,被链接的 MapReduce 作业并没有那么像 Unix 命令管道(它直接将一个进程的输出作为另一个进程的输入,仅用一个很小的内存缓冲区)。它更像是一系列命令,其中每个命令的输出写入临时文件,下一个命令从临时文件中读取。这种设计有利也有弊,我们将在 “[物化中间状态](#物化中间状态)” 中讨论。