尝试运行此代码
主.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
这是我到目前为止尝试过的
当我替换它时:
Scheme sourceScheme = new ParquetTupleScheme(new Fields("a", "b", "c"));
有了这个:
Scheme sourceScheme = null;
错误消失
当我创建扩展
Scheme<JobConf, RecordReader, OutputCollector, Object[], Object[]>
的类时,就像ParquetTupleScheme
错误消失当我尝试检查这是否是特定的镶木地板级联错误时
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中的处女作。 :)