- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我需要将我的 Map Reduce jar 文件拆分为两个作业,以便获得两个不同的输出文件,一个来自两个作业的每个 reducer。
我的意思是第一个作业必须生成一个输出文件,该文件将作为链中第二个作业的输入。
我在 hadoop 版本 0.20(目前我使用的是 0.18)中阅读了一些关于 ChainMapper 和 ChainReducer 的内容:这些可能对我的需求有好处吗?
任何人都可以建议我一些链接在哪里可以找到一些示例以便使用这些方法吗?或者也许有另一种方法可以解决我的问题?
谢谢,
卢卡
最佳答案
有很多方法可以做到这一点。
级联作业
为第一个作业创建 JobConf 对象“job1”,并将所有参数设置为“input”作为输入目录,“temp”作为输出目录。执行此作业:JobClient.run(job1)
。
紧接着,为第二个作业创建 JobConf 对象“job2”,并设置所有参数,其中“temp”作为输入目录,“output”作为输出目录。执行此作业:JobClient.run(job2)
。
两个 JobConf 对象
创建两个 JobConf 对象并在其中设置所有参数,就像 (1) 一样,只是您不使用 JobClient.run。
然后以jobconfs为参数创建两个Job对象:
作业 job1=新作业(jobconf1);作业 job2=new Job(jobconf2);
使用 jobControl 对象,指定作业依赖项,然后运行作业:
JobControl jbcntrl=new JobControl("jbcntrl");
jbcntrl.addJob(job1);
jbcntrl.addJob(job2);
job2.addDependingJob(job1);
jbcntrl.run();
ChainMapper 和 ChainReducer
如果您需要类似于 Map+ | 的结构减少 | Map*,您可以使用 Hadoop 0.19 及更高版本附带的 ChainMapper 和 ChainReducer 类。请注意,在这种情况下,您只能使用一个 reducer,但可以在它之前或之后使用任意数量的映射器。
关于hadoop - map 缩小 : ChainMapper and ChainReducer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3059736/
我有两个映射器类。所以使用ChainMapper.addMapper方法添加Mapper,使用ChainReducer.setReducer方法设置Reducer。 ChainMapper.addMa
这个问题在这里已经有了答案: Hadoop mapreduce : Driver for chaining mappers within a MapReduce job (4 个答案) 关闭 3 年
我已经阅读过与此相关的以前的帖子,但没有得到任何有意义的信息。 我的用例是: 汇总印象和点击数据 将点击数据和未点击数据分开放在不同的文件中。 我已经为此编写了映射器和缩减器,但缩减器的输出是包含点击
我需要将我的 Map Reduce jar 文件拆分为两个作业,以便获得两个不同的输出文件,一个来自两个作业的每个 reducer。 我的意思是第一个作业必须生成一个输出文件,该文件将作为链中第二个作
我想链接多个 mapreduce 作业,即前一个 mapreduce 作业的输出是下一个 mapreduce 作业的输入。因为我的输出非常大,磁盘 IO 过载非常重,我想找到替代解决方案来减少 IO
与通常的链式任务(映射 -> 减少 -> 映射 -> 减少)。是否有使用其中任何一个的规范示例或 killer 级应用程序?或者,是否有一些知名的系统/应用程序使用它们中的任何一个? 最佳答案 我认为
我是一名优秀的程序员,十分优秀!