使用级联框架运行hadoop程序时出现cascading.tap.hadoop.io.MultiInputSplit class not find异常

2024-01-01

这是我的代码,它连接到 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 机器。我可以在工作跟踪器上检查这一点。但工作失败了,我在下面遇到了异常。

未找到 cascading.tap.hadoop.io.MultiInputSplit 在 org.apache.hadoop.mapred.MapTask.getSplitDetails(MapTask.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) 在 java.security.AccessController.doPrivileged(本机方法) 在 javax.security.auth.Subject.doAs(Subject.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(Configuration.java:1493) 在 org.apache.hadoop.mapred.MapTask.getSplitDetails(MapTask.java:346) ... 7 更多

java.lang.ClassNotFoundException:找不到类 cascading.tap.hadoop.io.MultiInputSplit 在 org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:1493)

注意 : 1. 我在我的 Windows 机器上运行它,并且 hadoop 设置在不同的机器上。 2.我正在使用hadoop的cloudera发行版,即CDH 4。


您的属性文件为空,因此您可能在集群上关闭了此作业的配置。您必须提供您正在使用的配置HadoopFlowController。调用时找到的 Hadoop 配置文件中包含的信息new Configuration属于你的Properties对象-类似的东西fs.default.name=file:////我想当您通过“线路”运行级联作业时,情况更是如此。

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

使用级联框架运行hadoop程序时出现cascading.tap.hadoop.io.MultiInputSplit class not find异常 的相关文章

随机推荐