尝试运行此代码
Main.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()
错误消失
我正在使用:
我做错了什么?
答案 0 :(得分:0)
之前我遇到过同样的问题。据我所知,这个问题源于类路径中缺少级联的Scheme.class,从而在运行时抛出此异常。
为了解决这个问题,你应该使用&#39; export HADOOP_CLASSPATH = / jar_directory / cascading-core-2.5.1.jar&将cascading-core-2.5.1.jar包含到你的hadoop类路径中。 #39; 即可。您可以使用&#39; hadoop classpath&#39; 来检查jar是否已正确包含。</ p>
这是我在stackoverflow中的首次亮相。 :)