You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@oozie.apache.org by Naga Vijay <na...@gmail.com> on 2014/04/03 05:21:32 UTC

- Oozie 4.0.1 on AWS EMR ...

Hi,

I have Oozie 4.0.1 working fine for Hive action on AWS EC2 instance by
using Apache Hadoop distribution.

I am facing issues with Oozie 4.0.1 on AWS EMR with Amazon Hadoop
distribution.

The nature of issue is - there's an out-dated libthrift-0.7.0.jar in amazon
hadoop lib dir.

On the Task Tracker to which I have no access, that jar is ahead of hive's
libthrift-0.9.0.jar in the classpath, which I think is dynamically
generated.

How can I work around this?  That is how can have the hive job execution on
Task Tracker use hive's libthrift-0.9.0.jar ajhead of hadoop's
libthrift-0.7.0.jar ?

I cannot replace amazon hadoop libthrift-0.7.0.jar, as that leads to losing
the cluster upon reboot (tried).

Placing libthrift-0.9.0.jar renamed as libthrift-0.6.0.jar in amazon hadoop
lib dir doesn't help, as the hive job execution is on task tracker node to
which I have no accesss.

I have tried placing libthrift-0.9.0.jar in sharelib, and also tried
placing libthrift-0.9.0.jar renamed as libthrift-0.6.0.jar in sharelib.
None of this helps.

Here's the stack trace ...

-----

Failing Oozie Launcher, Main class
[org.apache.oozie.action.hadoop.HiveMain], main() threw exception,
org.apache.thrift.EncodingUtil
s.setBit(BIZ)B
java.lang.NoSuchMethodError: org.apache.thrift.EncodingUtils.setBit(BIZ)B
        at
org.apache.hadoop.hive.ql.plan.api.Query.setStartedIsSet(Query.java:487)
        at
org.apache.hadoop.hive.ql.plan.api.Query.setStarted(Query.java:474)
        at
org.apache.hadoop.hive.ql.QueryPlan.updateCountersInQueryPlan(QueryPlan.java:309)
        at
org.apache.hadoop.hive.ql.QueryPlan.getQueryPlan(QueryPlan.java:450)
        at org.apache.hadoop.hive.ql.QueryPlan.toString(QueryPlan.java:622)
        at
org.apache.hadoop.hive.ql.history.HiveHistory.logPlanProgress(HiveHistory.java:504)
        at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1073)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:945)

-----

I tried with this as well in hive script ...

set mapreduce.task.classpath.user.precedence=true;

It didn't help.

Please advice on how to go about.

Thanks
Naga