我有JobControl控制n个作业链。for(inti=0;i我只想在每个作业开始之前清理输出目录;但在作业初始化时不得清除目录。我目前的解决方案是将清除代码放入映射阶段,这会大大减慢执行速度。publicvoidmap(LongWritablekey,Textvalue,Contextcontext)throwsIOException,InterruptedException{FileSystemfs=FileSystem.get(context.getConfiguration());if(fs.exists(newPath(context.getConfiguration().
我在centos6上安装了pig,我是pig新手。我使用$pig-xlocal在本地模式下打开了pig。仅在执行DUMP时出错。错误消息是:错误2998:未处理的内部错误。org.apache.hadoop.mapred.jobcontrol.JobControl.addJob(Lorg/apache/hadoop/mapred/jobcontrol/Job;)Ljava/lang/String;我已经设置了JAVA_HOME,Java版本是1.7。但是没有安装hadoop。=================grunt>A=load'/etc/passwd'usingPigStorag
是否有一种使用JobControl指定一系列依赖作业的优雅方法?还包括一些循环,并且由于有许多顺序作业(8),如果将所有这些都放在一个驱动程序类中,将它们全部添加到作业控制中,将会造成相当大的困惑。怎么做? 最佳答案 Map1->Reduce1->Map2->Reduce2->Map3...您可以通过编写多个驱动程序方法,以这种方式轻松地将作业链接在一起,每个方法一个。调用第一个驱动程序方法,它使用JobClient.runJob()来运行作业并等待它完成。该作业完成后,调用下一个驱动程序方法,该方法创建一个新的JobConf对象,
我正在尝试使用JobControl将多个Mappers和Reducers连接在一起,但在调用JobConf.setMapperClass时遇到以下错误:setMapperClass(java.lang.Class)inorg.apache.hadoop.mapred.JobConfcannotbeappliedto(java.lang.Class)似乎java提示我的Mapper实现,它基于mapreduce.Mapper,而JobControl采用mapred.Mapper。(我在这方面是对的吗?)现在我的问题是:我应该继续使用mapreduce.Mapper吗?并放弃JobCont
我需要链接两个MapReduce作业。我使用JobControl将job2设置为依赖于job1。它有效,输出文件已创建!但它不会停止!在shell中它保持这种状态:12/09/1119:06:24WARNmapred.JobClient:UseGenericOptionsParserforparsingthearguments.ApplicationsshouldimplementToolforthesame.12/09/1119:06:25INFOinput.FileInputFormat:Totalinputpathstoprocess:112/09/1119:06:25INFOu