Oozie workflow failed – hive-site.xml permission denied
Oozie workflow failed – hive-site.xml permission denied – If you have configured Hive action in your Oozie workflow and its getting failed as hive-site.xml permission denied then you are at correct place!
Oozie workflow failed – hive-site.xml permission denied – This error can possibly occur with below mentioned scenarios:
Scenarios:
1. Your Oozie workflow contains hive action.
2. You have included <job-xml> inside hive action and given hive-site.xml path.
3. hive-site.xml is present under ${wf.application.path}/lib as well.
4. Your developers have also added hive-site.xml to Oozie sharelib, possibly at below location(s):
/user/oozie/sharelib/lib_<timestamp>/oozie/hive-site.xml /user/oozie/sharelib/lib_<timestamp>/sqoop/hive-site.xml /user/oozie/sharelib/lib_<timestamp>/hive/hive-site.xml
5. My simple hive workflow is failing with below error:
Oozie Hive action configuration Using action configuration file /hadoop/data01/hadoop/yarn/local/usercache/root/appcache/application_1443111597609_2691/container_1443111597609_2691_01_000002/action.xml Setting env property for mapreduce.job.credentials.binary to: /hadoop/data01/hadoop/yarn/local/usercache/root/appcache/application_1443111597609_2691/container_1443111597609_2691_01_000002/container_tokens Setting env property for tez.credentials.path to: /hadoop/data01/hadoop/yarn/local/usercache/root/appcache/application_1443111597609_2691/container_1443111597609_2691_01_000002/container_tokens Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.HiveMain], main() threw exception, hive-site.xml (Permission denied) java.io.FileNotFoundException: hive-site.xml (Permission denied) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:221) at java.io.FileOutputStream.<init>(FileOutputStream.java:110) at org.apache.oozie.action.hadoop.HiveMain.setUpHiveSite(HiveMain.java:166) at org.apache.oozie.action.hadoop.HiveMain.run(HiveMain.java:196) at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:38) at org.apache.oozie.action.hadoop.HiveMain.main(HiveMain.java:66) 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.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:225) at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54) at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:430) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:342) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1594) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163) Oozie Launcher failed, finishing Hadoop job gracefully
Okay, How to fix this?
Having multiple configuration files at different locations causes conflicts, Oozie might be trying to replace hive-site.xml from /etc/hive/conf/action-conf/hive/hive-site.xml copied to the local cache directory of nodemanager with hive-site.xml loaded from one of the location mentioned above
To resolve this conflict, We need to delete extra copies of hive-site.xml from all the above mentioned locations. Oozie uses hive-site.xml from /etc/oozie/conf/action-conf/hive/hive-site.xml
In short, remove hive-site.xml from below locations:
1. oozie sharelib (it was present at multiple locations in oozie sharelib)
2. from ${wf.application.path}/lib/ directory.
3. From workflow.xml (deleted <job-xml>)
With Oozie nothing is Easy 😉
Please comment if you have any feedback/questions/suggestions. Happy Hadooping!! 
Please follow our Oozie tutorials on github for more information.







