It looks like the error you provided is failing on the instantiation of
TraceProtocolFactory which extends TCompactProtocol.Factory.
For whatever reason, the version of TCompactProtocol.Factory that is
being found is final, and thus TraceProtocolFactory cannot be instantiated.
Pulling up the source for Thrift-0.9.0, we can find the declaration of
the Factory class in TCompactProtocol ("public static class Factory
implements TProtocolFactory") which definitely doesn't have any final
modifier.
In short, I would recommend that you inspect your classpath and ensure
that you do not have a different version of Thrift being leaked in from
some other project than Accumulo.
On 6/19/14, 7:37 AM, Sivan Sasidharan wrote:
Facing issue in running oozie workflow - The MR jobs are configured to
read/write from Accumulo.
On workflow submission the below error is thrown.
Cross checked on the thrift version available in oozie, accumulo &
version used within the MRCode, & all the versions are the same -
Version libthrift.0.9.0
I'm running the same in CDH4.5 Cluster with Accumulo 1.5.1 configured.
Tried running the the same using hadoop jar and it succeeds.
What would be the possible reason when submitting from Oozie ? Any help
is appreciated.
Launcher exception: Cannot inherit from final class
java.lang.VerifyError: Cannot inherit from final class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at org.apache.accumulo.core.util.ThriftUtil.<clinit>(ThriftUtil.java:82)
at
org.apache.accumulo.core.client.impl.ThriftTransportPool.createNewTransport(ThriftTransportPool.java:496)
at
org.apache.accumulo.core.client.impl.ThriftTransportPool.getAnyTransport(ThriftTransportPool.java:447)
at
org.apache.accumulo.core.client.impl.ServerClient.getConnection(ServerClient.java:154)
at
org.apache.accumulo.core.client.impl.ServerClient.getConnection(ServerClient.java:128)
at
org.apache.accumulo.core.client.impl.ServerClient.getConnection(ServerClient.java:123)
at
org.apache.accumulo.core.client.impl.ServerClient.executeRaw(ServerClient.java:105)
at
org.apache.accumulo.core.client.impl.ServerClient.execute(ServerClient.java:71)
at
org.apache.accumulo.core.client.impl.ConnectorImpl.<init>(ConnectorImpl.java:64)
at
org.apache.accumulo.core.client.ZooKeeperInstance.getConnector(ZooKeeperInstance.java:228)
at
org.apache.accumulo.core.client.ZooKeeperInstance.getConnector(ZooKeeperInstance.java:223)
at
org.apache.accumulo.core.client.mapreduce.lib.util.InputConfigurator.validateOptions(InputConfigurator.java:531)
at
org.apache.accumulo.core.client.mapreduce.InputFormatBase.validateOptions(InputFormatBase.java:532)
at
org.apache.accumulo.core.client.mapreduce.InputFormatBase.getSplits(InputFormatBase.java:806)
at org.apache.hadoop.mapred.JobClient.writeNewSplits(JobClient.java:1079)
at org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:1096)
at org.apache.hadoop.mapred.JobClient.access$600(JobClient.java:177)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:995)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:948)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1408)
at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:948)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:566)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:596)
Thanks
Sivan Sasidharan