下面是我的代码,它连接到hadoop机器,执行一组验证,并在另一个目录上写入。
public class Main{
public static void main(String...strings){
System.setProperty("HADOOP_USER_NAME", "root");
String in1 = "hdfs://myserver/user/root/adnan/inputfile.txt";
String out = "hdfs://myserver/user/root/cascading/temp2";
Properties properties = new Properties();
AppProps.setApplicationJarClass(properties, Main.class);
HadoopFlowConnector flowConnector = new HadoopFlowConnector(properties);
Tap inTap = new Hfs(new TextDelimited(true, ","), in1);
Tap outTap = new Hfs(new TextDelimited(true, ","), out);
Pipe inPipe = new Pipe("in1");
Each removeErrors = new Each(inPipe, Fields.ALL, new BigFilter());
GroupBy group = new GroupBy(removeErrors, getGroupByFields(fieldCols));
Every mergeGroup = new Every(group, Fields.ALL, new MergeGroupAggregator(fieldCols), Fields.RESULTS);
FlowDef flowDef = FlowDef.flowDef()
.addSource(inPipe, inTap)
.addTailSink(mergeGroup, outTap);
flowConnector.connect(flowDef).complete();
}
我的工作是提交给hadoop机器。我可以在求职者网站上查到。但工作越来越失败,我得到下面的例外。
在org.apache.hadoop.mapred.maptask.getsplitdetails(maptask)中找不到cascading.tap.hadoop.io.multiinputsplit。java:348)在org.apache.hadoop.mapred.maptask.runoldmapper(maptask。java:389)在org.apache.hadoop.mapred.maptask.run(maptask。java:333)在org.apache.hadoop.mapred.child$4.run(child。java:268)在javax.security.auth.subject.doas(主题)中的java.security.accesscontroller.doprivileged(本机方法)。java:415)在org.apache.hadoop.security.usergroupinformation.doas(usergroupinformation。java:1408)在org.apache.hadoop.mapred.child.main(child。java:262)原因:java.lang.classnotfoundexception:类cascading.tap.hadoop.io.multiinputsplit在org.apache.hadoop.conf.configuration.getclassbyname(配置)中找不到。java:1493)在org.apache.hadoop.mapred.maptask.getsplitdetails(maptask。java:346) ... 7个以上
java.lang.classnotfoundexception:在org.apache.hadoop.conf.configuration.getclassbyname(配置)中找不到class cascading.tap.hadoop.io.multiinputsplit。java:1493)
注意:1。我在我的windows机器上运行这个,hadoop安装在不同的盒子上。2我正在使用cloudera发行版来实现hadoop,即CDH4。
2条答案
按热度按时间8ehkhllq1#
有问题了。cdh 4.2与级联2.1有问题。所以改成了CDH4.1,对我很有效。
vwoqyblh2#
您的属性文件为空,因此可能是群集上此作业的配置已关闭。您必须提供用于
HadoopFlowController
. 调用时发现的hadoop配置文件中包含的信息new Configuration
属于你的Properties
对象-例如fs.default.name=file:////
等等,我想当你在“连线”上运行一个级联作业时,情况更是如此。