我正在尝试在Pentaho 5上执行map reduce。对于Pentaho 5,Pentaho应用程序是为Apache Hadoop 0.20.2预先配置的,它说这个版本不需要进一步的配置。我使用cygwin在windows上安装了Hadoop0.20.2,一切都很好。我在Pentaho上运行了一个简单的作业,它在HDFS中复制文件,并成功完成,文件系统被复制到HDFS中。但我一运行map reduce作业,它就说在pentaho上完成了作业,但map reduced任务失败了,在HDFS上的输出目录上,结果丢失了,日志文件说:
错误:java.lang.ClassNotFoundException:org.pentaho.di.trans.step.RowListener位于java.net.URLClassLoader$1.run(URLClassLoader.java:366)位于java.net.URLClassLoader$1.run(URLClassLoader.java:355)位于java.security.AccessController.doPrivileged(本机方法)位于java.net.URLClassLoader.findClass(URLClassLoader.java:354)位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)在sun.mic.Launcher$AppClassLoader.loadClass(Launcher.java:308)位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)位于java.lang.Class.forName0(本机方法)位于java.lang.Class.forName(Class.java:270)网址:org.apache.hadop.conf.Configuration.getClassByName(Configuration.java:762)网址:org.apache.hadop.conf.Configuration.getClass(Configuration.java:807)网址:org.apache.hadop.conf.Configuration.getClass(Configuration.java:833)网址:org.apache.hadop.mapred.JobConf.getMapRunnerClass(JobConf.java:790)网址:org.apache.hadop.mapred.MapTask.runOldMapper(MapTask.java:354)网址:org.apache.hadop.mapred.MapTask.run(MapTask.java:307)网址:org.apache.hadop.mapred.Child.main(Child.java:170
请帮帮我。
也许有点老,但我认为它可能会帮助到一些人。
这可能是由以下原因引起的:
- 对于Hadoop版本>0.20:检查您是否正确设置了环境,请参阅Pentaho支持:创建新的Hadoop配置
- 如果您有/opt/pentaho/mapreduce/,请检查HDFS,并检查/opt/Pentatho在HDFS上的文件夹权限(您在lib文件夹中找到水壶-*.jar文件了吗?)
- 检查类路径分隔符(在Windows中为",",在Linux中为":")。要更改它,请编辑spoon.sh(或spoon.bat)并修改OPT变量,如下所示:OPT="$OPT-Dadoop.cluster.path.separtment=,"