当前位置: 首页 > 知识库问答 >
问题:

使用级联框架运行hadoop程序时获取cascading.tap.hadoop.io.MultiInputSplit类未找到异常

鲍永春
2023-03-14

这里是我的代码,它连接到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();

}

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.lang.ClassNotFoundException:在org.apache.hadoop.conf.Configuration.GetClassByName(Configuration.java:1493)中找不到类Cascading.tap.hadoop.io.MultiInputSplit

注意:1。我是从我的windows机器上运行的,而hadoop是在不同的盒子上设置的。2.我使用的是cloudera发行版的hadoop,也就是CDH4。

共有1个答案

成浩漫
2023-03-14

您的属性文件为空,因此集群上的此作业配置可能关闭。必须为HadoopflowController提供正在使用的配置。在调用new Configuration时发现的Hadoop配置文件中包含的信息属于properties对象-例如fs.default.name=file:///等。我想当您通过“线”运行级联作业时,情况就更糟了。

 类似资料:
  • 问题内容: 这是我的代码,它连接到hadoop机器并执行一组验证并写在另一个目录上。 } 我的工作正在提交给hadoop机器。我可以在作业追踪器上查看此信息。但是工作失败了,下面出现了异常。 在org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:389)的org.apache.hadoop.mapred.MapTask.getSpl

  • 问题内容: 在Eclipse中运行JUnit测试时出现此错误: 尽管我正在使用maven,但我尝试在类路径中添加库,而JUnit库位于POM依赖项中。 我已经尝试清理项目,并使用Eclipse的JUnit插件创建了一个新的JUnit测试用例,但仍然遇到相同的错误。 问题答案: 出现这种情况的原因是,使用时只有源代码正在编译(我使用的是maven 3.1.0,所以我不确定它是否始终如此)。 如果运行

  • 我正在尝试用单节点hadoop集群运行一个示例程序。我在运行示例程序(jar文件)时遇到一个异常。 多谢了。

  • javac-cp“lib/*”src/com/company/main.java 在myproject/src中,我尝试使用: JAVA-CP。COM/公司/主要 C:\myproject\src>javac-cp“lib/*”com/company/main.java C:\myproject\src>java-cp.;“lib/*”com/company/main 现在,代码编译和执行没有任何

  • 我在一台机器上安装了sqoop(sqoop-1.4.4.bin__hadoop-1.0.0.tar.gzhttp://www.apache.org/dist/sqoop/1.4.4/)。当我尝试运行"$SQOOP_HOME/sqoop help"或任何其他命令时, 我收到以下错误: 警告:$HADOOP_HOME已弃用。 异常线程"main"java.lang.NoClassDefFoundErr