Hello,

I got an error when running the systemML/scripts/Univar-Stats.dml script on
a hadoop cluster (Cloudera CDH4.2.1) on a 6GB data set. Error message is at
the bottom of the email. The same script ran fine on a smaller sample
(several MB) of the same data set, when MR was not invoked.

The main error was java.lang.NoSuchMethodError:
org.apache.hadoop.mapred.JobConf.getDouble()
Digging deeper, it looks like the CDH4.2.1 version of MR indeed didn't have
the JobConf.getDouble() method.

The hadoop-core jar of CDH4.2.1 can be found here:
https://repository.cloudera.com/artifactory/repo/org/apache/hadoop/hadoop-core/2.0.0-mr1-cdh4.2.1/

The calling line of SystemML is line 1194 of
https://github.com/apache/incubator-systemml/blob/master/src/main/java/org/apache/sysml/runtime/matrix/mapred/MRJobConfiguration.java

I was wondering, if the finding is accurate, is there a potential fix, or
does this mean the current version of SystemML is not compatible with
CDH4.2.1?

Thank you,

Ethan


hadoop jar $sysDir/target/SystemML.jar -f
$sysDir/scripts/algorithms/Univar-Stats.dml -nvargs
X=$baseDirHDFS/original-coded.csv
TYPES=$baseDirHDFS/original-coded-type.csv
STATS=$baseDirHDFS/univariate-summary.csv

16/02/04 20:35:03 INFO api.DMLScript: BEGIN DML run 02/04/2016 20:35:03
16/02/04 20:35:03 INFO api.DMLScript: HADOOP_HOME: null
16/02/04 20:35:03 WARN conf.DMLConfig: No default SystemML config file
(./SystemML-config.xml) found
16/02/04 20:35:03 WARN conf.DMLConfig: Using default settings in DMLConfig
16/02/04 20:35:04 WARN hops.OptimizerUtils: Auto-disable multi-threaded
text read for 'text' and 'csv' due to thread contention on JRE < 1.8
(java.version=1.7.0_71).
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in
[jar:file:/usr/lib/zookeeper/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/usr/local/explorys/datagrid/lib/slf4j-jdk14-1.6.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/usr/local/explorys/datagrid/lib/logback-classic-1.0.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
explanation.
16/02/04 20:35:07 INFO api.DMLScript: SystemML Statistics:
Total execution time:        0.880 sec.
Number of executed MR Jobs:    0.

16/02/04 20:35:07 INFO api.DMLScript: END DML run 02/04/2016 20:35:07
Exception in thread "main" java.lang.NoSuchMethodError:
org.apache.hadoop.mapred.JobConf.getDouble(Ljava/lang/String;D)D
    at
org.apache.sysml.runtime.matrix.mapred.MRJobConfiguration.setUpMultipleInputs(MRJobConfiguration.java:1195)
    at
org.apache.sysml.runtime.matrix.mapred.MRJobConfiguration.setUpMultipleInputs(MRJobConfiguration.java:1129)
    at
org.apache.sysml.runtime.matrix.CSVReblockMR.runAssignRowIDMRJob(CSVReblockMR.java:307)
    at
org.apache.sysml.runtime.matrix.CSVReblockMR.runAssignRowIDMRJob(CSVReblockMR.java:289)
    at
org.apache.sysml.runtime.matrix.CSVReblockMR.runJob(CSVReblockMR.java:275)
    at org.apache.sysml.lops.runtime.RunMRJobs.submitJob(RunMRJobs.java:257)
    at
org.apache.sysml.lops.runtime.RunMRJobs.prepareAndSubmitJob(RunMRJobs.java:143)
    at
org.apache.sysml.runtime.instructions.MRJobInstruction.processInstruction(MRJobInstruction.java:1500)
    at
org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:309)
    at
org.apache.sysml.runtime.controlprogram.ProgramBlock.executeInstructions(ProgramBlock.java:227)
    at
org.apache.sysml.runtime.controlprogram.ProgramBlock.execute(ProgramBlock.java:169)
    at
org.apache.sysml.runtime.controlprogram.Program.execute(Program.java:146)
    at org.apache.sysml.api.DMLScript.execute(DMLScript.java:676)
    at org.apache.sysml.api.DMLScript.executeScript(DMLScript.java:338)
    at org.apache.sysml.api.DMLScript.main(DMLScript.java:197)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:208)

Reply via email to