The class org/apache/hadoop/hive/cli/CliDriver
is required for execution of a Hive Action. This much is obvious from the error message. This class is within this jar file: hive-cli-0.7.1-cdh3u5.jar
. (In my case cdh3u5 in my cloudera version).
Oozie checks for this jar in the ShareLib
directory. The location of this directory is usually configured in hive-site.xml
, with the property name as oozie.service.WorkflowAppService.system.libpath
, so Oozie should find the jar easily.
But in my case, hive-site.xml
did not include this property, so Oozie didn't know where to look for this jar, hence the java.lang.NoClassDefFoundError
.
To resolve this, I had to include a parameter in my job.properties file to point oozie to the location of the ShareLib
directory, as follows:
oozie.libpath=${nameNode}/user/oozie/share/lib
. (depends on where SharedLib
directory is configured on your cluster).