Troubleshooting ClassNotFoundException: datameer.das.<class> Errors

Problem

While running a job the following error message is seen: 

ERROR [<timestamp>] [JobScheduler thread-1] (JobScheduler.java:809) - Job <jobID> failed with exception.
java.lang.RuntimeException: java.lang.RuntimeException: Failed to run cluster job for 'Workbook job (<jobID>): OfferSuppressions8#AllJoin1Calc(Keep columns 0,1,2,3,4,5,6,7,8,9)'
    at datameer.dap.common.graphv2.ConcurrentClusterSession$1.run(ConcurrentClusterSession.java:51)
...
Caused by: java.lang.RuntimeException: Task: Error: java.lang.ClassNotFoundException: datameer.das.functions.general.CoalesceFunction$2

Cause

The underlying class or JAR file is missing or not accessible due to the classpath.

Solution

  • Stop the Datameer service
  • In das-env.sh add -verbose:class to JVM arguments
  • Start the Datameer service
  • Look for the missing class or JAR file in logs/jvm-stdout.log

It should now have an entries like

[Loaded datameer.dap.common.graphv2.ConcurrentClusterSession$1 from file:/opt/datameer/Datameer-<version>-<dist>/webapps/conductor/WEB-INF/classes/]
[Loaded datameer.dap.common.graphv2.ConcurrentClusterSession from file:/opt/datameer/Datameer-<version>-<dist>/webapps/conductor/WEB-INF/classes/]