级联镶木地板投掷 ClassNotFoundException



尝试运行此代码

主.java:

public static void main(String[] args) {
...
..
Properties properties = new Properties();
AppProps.setApplicationJarClass(properties, Main.class);
HadoopFlowConnector flowConnector = new HadoopFlowConnector(properties);
Scheme sourceScheme = new queries.ParquetTupleScheme(new Fields("a", "b", "c"));
Tap inTap = new Hfs(sourceScheme, inPath);
...
...
...
}

我收到此错误:

java.lang.NoClassDefFoundError: cascading/scheme/Scheme

这是我到目前为止尝试过的

  1. 当我替换它时:

    Scheme sourceScheme = new ParquetTupleScheme(new Fields("a", "b", "c"));

    有了这个:

    Scheme sourceScheme = null;

    错误消失

  2. 当我创建扩展Scheme<JobConf, RecordReader, OutputCollector, Object[], Object[]>的类时,就像ParquetTupleScheme
    错误消失

  3. 当我尝试检查这是否是特定的镶木地板级联错误时

    Object a = new PigCombiner()

    错误消失

我正在使用:

  • 级联 2.5.1
  • 镶木地板级联 1.3.0
  • Hadoop-Core 1.2.1

我做错了什么?

我以前遇到过同样的问题。据我所知,这个问题源于类路径中缺少级联方案.class,从而在运行时引发此异常。

为了解决这个问题,你应该使用"export HADOOP_CLASSPATH=/jar_directory/cascading-core-2.5.1.jar"将级联核心-2.5.1.jar包含在Hadoop类路径中。您可以使用"hadoop 类路径"来检查 jar 是否正确包含。

这是我在stackoverflow中的处女作。 :)

相关内容

  • 没有找到相关文章

最新更新