Our Community is getting an upgrade! To get everything ready for the relaunch, we’ll be placing the site in read-only mode starting September 21st.
We really appreciate your understanding while we get things set up behind the scenes. Catch up on all the exciting details about the move here.
Need help or have questions? Drop us a line at [email protected]
Created 11-05-2016 06:19 PM
Hello,
I am trying to execute phoenix queries from oozie using java action and I am facing kinit issues. Please note if I run this java code standalone ( without using oozie ), it works fine, however, issue is faced while running from oozie java action.
Below is my sample java code to use phoenix jdbc.
UserGroupInformation.setConfiguration(configuration);
UserGroupInformation.loginUserFromKeytab("[email protected]","/etc/security/keytabs/exm_qa.headless.keytab");
Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
conn = DriverManager.getConnection("jdbc:phoenix:santhosh-blueprint-test-13.XXX:2181:/hbase-secure");
System.out.println("got connection");
Statement statement = conn.createStatement();Below is how the oozie workflow action XML is defined.
<action name="java_query">
<java>
<main-class>PhoenixQueryExecutor</main-class>
<archive>/user/exm_qa/oozie/apps/shell/lib/original-phoenix-query-executor-1.0-SNAPSHOT.jar</archive>
</java>
<ok to="end"/>
<error to="fail"/>
</action>
Below is the oozie job properties. I have placed the hbase-site.xml and phoenix-client.jar under oozie.libpath dir.
oozie.use.system.libpath = true oozie.libpath=hdfs://chelsea/user/exm_qa/oozie/apps/shell/lib
however it does logs below line, which means login was successful.
2016-11-05 18:01:25,380 INFO [main] org.apache.hadoop.security.UserGroupInformation: Login successful for user [email protected] using keytab file /etc/security/keytabs/exm_qa.headless.keytab 2016-11-05 18:01:25,435 INFO [main] org.apache.hadoop.security.UserGroupInformation: Login successful for user [email protected] using keytab file /etc/security/keytabs/exm_qa.headless.keytab
Snippet of error . Complete error is here oozie-phoenix-java-action.txt
2016-11-05 18:01:35,848 FATAL [hconnection-0x236134a1-shared--pool1-t1] org.apache.hadoop.hbase.ipc.AbstractRpcClient: SASL authentication failed. The most likely cause is missing or invalid credentials. Consider 'kinit'. javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)] at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:211) at org.apache.hadoop.hbase.security.HBaseSaslRpcClient.saslConnect(HBaseSaslRpcClient.java:179) at org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection.setupSaslConnection(RpcClientImpl.java:611) at org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection.access$600(RpcClientImpl.java:156) at org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection$2.run(RpcClientImpl.java:737) at org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection$2.run(RpcClientImpl.java:734) at java.security.AccessController.doPrivileged(Native Method)
Created 11-06-2016 10:51 AM
Followed the steps mentioned in this article and it started working !!
Created 11-06-2016 10:51 AM
Followed the steps mentioned in this article and it started working !!