在 Hadoop 中链接多个 MapReduce 作业

2023-12-04

在许多应用 MapReduce 的现实生活中,最终的算法最终都是几个 MapReduce 步骤。

即Map1、Reduce1、Map2、Reduce2等等。

因此,您可以将最后一次归约的输出作为下一个映射的输入。

一旦管道成功完成,您(通常)就不想保留中间数据。另外,由于此中间数据​​通常是某种数据结构(如“映射”或“集合”),因此您不想在写入和读取这些键值对上花费太多精力。

在 Hadoop 中执行此操作的推荐方法是什么?

是否有一个(简单的)示例展示如何以正确的方式处理这些中间数据,包括事后的清理?


我认为雅虎开发者网络上的本教程将帮助您解决此问题:链接作业

您使用JobClient.runJob()。第一个作业的数据输出路径将成为第二个作业的输入路径。这些需要作为参数传递给您的作业,并使用适当的代码来解析它们并设置作业的参数。

我认为上述方法可能是现在较旧的 mapred API 的做法,但它应该仍然有效。新的mapreduce API 中会有类似的方法,但我不确定它是什么。

至于在作业完成后删除中间数据,您可以在代码中执行此操作。我以前做过的方法是使用类似的东西:

FileSystem.delete(Path f, boolean recursive);

其中路径是数据在 HDFS 上的位置。您需要确保仅在没有其他作业需要时才删除此数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Hadoop 中链接多个 MapReduce 作业 的相关文章

随机推荐

  • Android:使多行编辑文本可滚动,在垂直滚动视图中禁用

    我正在开发一个应用程序 其中我在某个点上进行了结构 根据我的应用程序要求 我在 xml 中创建了水平滚动视图 然后在 java 中创建了垂直滚动视图 如下所示 Vertical Scroll view in Linear layout Sc
  • 如何在不使用 fetch 的情况下知道本地仓库与远程仓库不同?

    我有数十个存储库 如果发生任何差异 我的脚本应该更新它们 新提交 新标签 新分支 在我的情况下 对于数十个存储库来说 获取有点慢 我想知道是否有任何快速命令可以满足我的要求 您可以使用git ls remote管道命令无需获取即可获取遥控器
  • Android 蓝牙连接另一个蓝牙设备

    我正在做基于蓝牙的应用程序 我想连接其他设备 例如诺基亚设备和打印机 我参考了android蓝牙文档http developer android com guide topics connectivity bluetooth html 它演
  • * 和 + 正则表达式之间的区别

    谁能告诉我两者之间的区别 and 下例中的运算符 lt gt lt gt 它们每个都是量词 星号量词 表示前面的表达式可以匹配零次或多次 就像 0 而加量词 表示前面的表达式必须匹配至少一次或多次 并且它与 1 回顾一下 a gt a 0
  • 后台工作者如何

    我正在尝试在我的程序中实现后台工作人员 这样当我运行程序并开始检索我需要的数据时它就不会冻结 我不太清楚后台工作者是如何工作的 后台工作人员是在后台运行的线程 它们在不中断 阻塞主线程的情况下工作 您可以阅读更多内容here 简而言之 在
  • 将模块导入 Python Azure Function

    我正在尝试创建一个简单的 Azure 函数 它接收 HTTP 事件 获取该请求正文中的 JSON 对象 并将该对象保存为 CosmosDB 集合中的文档 然而 我似乎对导入 python 模块很着迷 init py import json
  • 如何为 play2 的表单定义 StopOnFirstFail dsl?

    在这个问题中 如果一个表单字段有多个验证器 如何让play一一验证它们 而不是全部验证 Julien 给了我一个名为stopOnFirstFail解决我的问题 def stopOnFirstFail T constraints Constr
  • 使用AWS SES从node.js上传邮件中的.jpg图像附件

    下面是来自的代码https github com andrewpuch aws ses node js examples其中有一个发送示例和带有附件的电子邮件 我修改了代码以从 aws s3 获取图像文件并将其作为附件以邮件形式发送 当我为
  • 如何在 Python 中使用 HTTPPasswordMgrWithDefaultRealm()

    我需要编写一些使用 ftp 代理的 python ftp 代码 代理不需要身份验证 但我连接的 ftp 服务器需要身份验证 我有以下代码 但收到 I O 错误 ftp 错误 501 USER 格式 proxy user auth metho
  • 查找特定的正整数[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想找到整数n 以便当1 z 1 x 1 n时有1000种组合 这是我的代码 int counter 0 double n 1 while true for double i 1
  • 销售订单视图上的自定义选项卡

    如何在不修改核心代码的情况下向 Magento 中的销售订单视图添加新选项卡 我在网上看到了一些教程 但他们希望您在 app design adminhtml default default template 中添加 修改文件 这是核心目录
  • 在循环内如何将绘图存储在列表中?

    我正在循环内工作 我想将绘图保存在列表中 以便我可以将它们一起绘制在 pdf 中 问题在于列表未正确填充并使用上次运行的结果重新更新 所以 最终我得到的是一个包含五个完全相同的元素的列表 我知道这些循环可能看起来毫无用处 但我只是让它们创建
  • 有没有办法使用 Spotify API 暂停?

    我希望能够暂停当前曲目 但似乎找不到任何方法 文档在这里 http developer spotify com download spotify apps api reference 我正在使用以下内容来播放曲目 m player play
  • NSStream、UTF8String 和 NSString...混乱的转换

    我正在构建一个数据包 通过 NSStream 发送到服务器 我试图用 ascii 代码 167 分隔两条数据 这就是服务器的构建方式 所以我需要尝试保持在这些范围内 unichar asciiChar 167 yields self set
  • “{ }”的 Visual Studio Code 格式

    我在Ubuntu上 Visual Studio Code 中的 C 自动 lints 就像 if condition true DoStuff 相反 我想做 if condition true DoStuff 我怎么做 我已经安装了C C
  • 在启用 cookie 的网站上使用 urlretrieve 的多线程网络抓取工具

    我正在尝试编写我的第一个 Python 脚本 经过大量谷歌搜索 我认为我已经完成了 然而 我需要一些帮助才能冲过终点线 我需要编写一个脚本来登录启用 cookie 的站点 抓取一堆链接 然后生成一些进程来下载文件 我的程序以单线程运行 所以
  • 同一项目的单独丰富代码片段范围

    我正在为我的网上商店创建丰富的片段 我使用的项目类型之一是 组织 类型 问题是我已经在网上商店的页眉中指定了组织名称和图像 并在页脚中指定了地址 介于两者之间的是网上商店的其余部分 其中包含所有产品 评论等 当我测试我的丰富网页摘要时htt
  • .NET MethodInfo 缓存可以清除或禁用吗?

    Per MSDN 呼叫Type GetMethods 将反映的方法信息存储在MemberInfo缓存 因此不必再次执行昂贵的操作 我有一个扫描程序集 类型的应用程序 寻找与给定规范匹配的方法 问题在于 由于 NET 依赖于方法元数据 因此内
  • sql server 中的顺序分组依据

    对于该表 ID Status Value 1 1 4 2 1 7 3 1 9 4 2 1 5 2 7 6 1 8 7 1 9 8 2 1 9 0 4 10 0 3 11 0 8 12 1
  • 在 Hadoop 中链接多个 MapReduce 作业

    在许多应用 MapReduce 的现实生活中 最终的算法最终都是几个 MapReduce 步骤 即Map1 Reduce1 Map2 Reduce2等等 因此 您可以将最后一次归约的输出作为下一个映射的输入 一旦管道成功完成 您 通常 就不