我一直在尝试从同一个包中的一个简单的java程序调用mapreduce作业.我试图在我的java程序中引用mapreduce jar文件并使用该runJar(String args[])方法调用它,同时传递mapreduce作业的输入和输出路径..但程序工作..
我如何运行这样一个程序,我只是使用传递输入,输出和jar路径到它的主要方法?是否可以通过它运行mapreduce作业(jar)?我想这样做是因为我希望一个接一个地运行几个mapreduce作业,我的java程序vl通过引用它的jar文件来调用每个这样的作业.如果这成为可能,我不妨只使用一个简单的servlet来做这样的调用并参考其输出文件以用于图表目的..
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author root
*/
import org.apache.hadoop.util.RunJar;
import java.util.*;
public class callOther {
public static void main(String args[])throws Throwable
{
ArrayList arg=new ArrayList();
String output="/root/Desktp/output";
arg.add("/root/NetBeansProjects/wordTool/dist/wordTool.jar");
arg.add("/root/Desktop/input");
arg.add(output);
RunJar.main((String[])arg.toArray(new String[0]));
}
}
Run Code Online (Sandbox Code Playgroud) 就是从调用MapReduce工作之间的区别main(),并从ToolRunner.run()?当我们说主要课程说,MapReduce extends Configured implements Tool如果我们只是从main方法中简单地完成工作,我们得到的额外特权是什么呢?谢谢.
我一直在尝试在RHEL 6中为wordcount运行一个简单的Mapreduce作业,但我一直都会遇到此错误.请帮忙.
13/01/13 19:59:01 INFO mapred.MapTask: io.sort.mb = 100
13/01/13 19:59:01 WARN mapred.LocalJobRunner: job_local_0001
java.lang.OutOfMemoryError: Java heap space
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:949)
at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:674)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:756)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:212)
13/01/13 19:59:02 INFO mapred.JobClient: map 0% reduce 0%
13/01/13 19:59:02 INFO mapred.JobClient: Job complete: job_local_0001
13/01/13 19:59:02 INFO mapred.JobClient: Counters: 0
Run Code Online (Sandbox Code Playgroud)