You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@phoenix.apache.org by Ns G <ns...@gmail.com> on 2016/01/06 05:18:02 UTC

Re: Issue with connecting to Phoenix in kerberised cluster.

Hi Team,

Any idea with this issue? We are struck up with this issue and we need to
provide a solution before Jan 8th.
Any sugesstions, guidance please.

Thanks,
Durga Prasad

On Thu, Dec 31, 2015 at 12:14 PM, Ns G <ns...@gmail.com> wrote:

> Hi There,
>
> Here is my JDBC connection string.
>
> My Hbase Cluster is health and Master is running. I am able to run Sqlline
> successfully.
>
> jdbc:phoenix:<zookeeperquorum>:2181:/hbase:testuser@ENT.LOCAL
> :/home/testuser/testuser.keytab
>
> I am executing the prog through following command
>
> *java '-Djava.security.auth.login.config='/home/testuser/jdbcjaas.conf -cp
> ".:/etc/hadoop/conf:/etc/hbase/conf:/home/testuser/nre/TestJDBC-0.0.1.jar"
> com.test.FirstExample*
>
> I am getting the below error message
>
>
> 15/12/31 01:30:19 INFO query.ConnectionQueryServicesImpl: Trying to
> connect to a secure cluster with keytab:/home/testuser/testuser.keytab
> Exception occured:java.sql.SQLException: ERROR 103 (08004): Unable to
> establish connection.
> java.sql.SQLException: ERROR 103 (08004): Unable to establish connection.
>         at
> org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:388)
>         at
> org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:145)
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl.openConnection(ConnectionQueryServicesImpl.java:296)
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl.access$300(ConnectionQueryServicesImpl.java:179)
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1917)
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1896)
>         at
> org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:77)
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1896)
>         at
> org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:180)
>         at
> org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:132)
>         at
> org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:151)
>         at java.sql.DriverManager.getConnection(DriverManager.java:571)
>         at java.sql.DriverManager.getConnection(DriverManager.java:233)
>         at com.test.FirstExample.main(FirstExample.java:24)
> Caused by: java.io.IOException: Login failure for testuser@ENT.LOCAL from
> keytab /home/testuser/testuser.keytab:
> javax.security.auth.login.LoginException: Unable to obtain password from
> user
>
>         at
> org.apache.hadoop.security.UserGroupInformation.loginUserFromKeytab(UserGroupInformation.java:976)
>         at
> org.apache.hadoop.security.SecurityUtil.login(SecurityUtil.java:243)
>         at
> org.apache.hadoop.hbase.security.User$SecureHadoopUser.login(User.java:383)
>         at org.apache.hadoop.hbase.security.User.login(User.java:250)
>         at
> org.apache.phoenix.query.ConnectionQueryServicesImpl.openConnection(ConnectionQueryServicesImpl.java:291)
>         ... 11 more
> Caused by: javax.security.auth.login.LoginException: Unable to obtain
> password from user
>
>         at
> com.sun.security.auth.module.Krb5LoginModule.promptForPass(Krb5LoginModule.java:856)
>         at
> com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:719)
>         at
> com.sun.security.auth.module.Krb5LoginModule.login(Krb5LoginModule.java:584)
>         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
> javax.security.auth.login.LoginContext.invoke(LoginContext.java:762)
>         at
> javax.security.auth.login.LoginContext.access$000(LoginContext.java:203)
>         at
> javax.security.auth.login.LoginContext$4.run(LoginContext.java:690)
>         at
> javax.security.auth.login.LoginContext$4.run(LoginContext.java:688)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at
> javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:687)
>         at
> javax.security.auth.login.LoginContext.login(LoginContext.java:595)
>         at
> org.apache.hadoop.security.UserGroupInformation.loginUserFromKeytab(UserGroupInformation.java:967)
>         ... 15 more
>
> jdbcjaas.conf file
>
> com.sun.security.jgss.initiate {
>     com.sun.security.auth.module.Krb5LoginModule required
>     useKeyTab=true
>     useTicketCache=false
>     keyTab="testuser.keytab"
>     principal="testuser@ENT.LOCAL"
>     debug=true;
> };
>
>
>
> Any help is really appreciated.
>
> Thanks,
> Durga Prasad
>
>
>
>
>
> On Tue, Dec 29, 2015 at 11:01 PM, Josh Elser <jo...@gmail.com> wrote:
>
>>
>>
>> Ns G wrote:
>>
>>> Hi All,
>>>
>>> I have written a simple class to access phoenix.
>>> I am able to establish connection. But when executing below line i get
>>> the error.
>>>
>>> conn = DriverManager.getConnection(dbUrl);
>>>
>>> I am facing below exception when accessing phoenix through JDBC from
>>> eclipse.
>>>
>>>
>>> INFO - Call exception, tries=25, retries=35, started=388547 ms ago,
>>> cancelled=false, msg=
>>> INFO - Call exception, tries=26, retries=35, started=410087 ms ago,
>>> cancelled=false, msg=
>>> INFO - Call exception, tries=27, retries=35, started=431608 ms ago,
>>> cancelled=false, msg=
>>> INFO - Call exception, tries=28, retries=35, started=452849 ms ago,
>>> cancelled=false, msg=
>>>
>>> and finally
>>>
>>> it gives me error like
>>>
>>> org.apache.hadoop.hbase.MasterNotRunningException:
>>> com.google.protobuf.ServiceException:
>>> org.apache.hadoop.hbase.exceptions.ConnectionClosingException: Call to
>>>
>>>
>> Is your HBase cluster healthy? This exception implies that the HMaster is
>> not running as expected.
>>
>>
>>
>>> any idea what may be the issue?
>>>
>>> Thanks,
>>> Durga Prasad
>>>
>>
>

Re: Issue with connecting to Phoenix in kerberised cluster.

Posted by anil gupta <an...@gmail.com>.
Hi Durga,

Can you kinit using the same keytab/principal from the node you are trying
to run this program? Is your program able to read keytab file?
Can you try to run this program from the same node that is running sqlline.
Also, dont pass the jdbcjaas.conf this time.
This line seems to provide most info about the problem:
Caused by: java.io.IOException: Login failure for testuser@ENT.LOCAL from
keytab /home/testuser/testuser.keytab:
*javax.security.auth.login.**LoginException:
Unable to obtain password from user*

This seems to point that most probably there is a problem with your keytab,
principal or kerberos setup. I am not an expert at kerberos security. So,
maybe you can also consult with security experts at your workplace.

You can also refer to following links where solution to similar problem is
provided:
1.
http://stackoverflow.com/questions/29844339/kerberos-spring-javax-security-auth-login-loginexception-unable-to-obtain-passw
2.
https://support.pivotal.io/hc/en-us/articles/201914097-Hadoop-daemons-in-a-secured-cluster-fails-to-start-with-Unable-to-obtain-password-from-user-
3.
http://www.moundalexis.com/tm/2013/11/15/two-tiny-problems-while-enabling-kerberos-on-hadoop/
4.
https://community.cloudera.com/t5/CDH-Manual-Installation/Kerberos-integration-issue-s-with-hadoop-HA/td-p/24794

Thanks,
Anil Gupta

On Tue, Jan 5, 2016 at 8:18 PM, Ns G <ns...@gmail.com> wrote:

> Hi Team,
>
> Any idea with this issue? We are struck up with this issue and we need to
> provide a solution before Jan 8th.
> Any sugesstions, guidance please.
>
> Thanks,
> Durga Prasad
>
> On Thu, Dec 31, 2015 at 12:14 PM, Ns G <ns...@gmail.com> wrote:
>
>> Hi There,
>>
>> Here is my JDBC connection string.
>>
>> My Hbase Cluster is health and Master is running. I am able to run
>> Sqlline successfully.
>>
>> jdbc:phoenix:<zookeeperquorum>:2181:/hbase:testuser@ENT.LOCAL
>> :/home/testuser/testuser.keytab
>>
>> I am executing the prog through following command
>>
>> *java '-Djava.security.auth.login.config='/home/testuser/jdbcjaas.conf
>> -cp
>> ".:/etc/hadoop/conf:/etc/hbase/conf:/home/testuser/nre/TestJDBC-0.0.1.jar"
>> com.test.FirstExample*
>>
>> I am getting the below error message
>>
>>
>> 15/12/31 01:30:19 INFO query.ConnectionQueryServicesImpl: Trying to
>> connect to a secure cluster with keytab:/home/testuser/testuser.keytab
>> Exception occured:java.sql.SQLException: ERROR 103 (08004): Unable to
>> establish connection.
>> java.sql.SQLException: ERROR 103 (08004): Unable to establish connection.
>>         at
>> org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:388)
>>         at
>> org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:145)
>>         at
>> org.apache.phoenix.query.ConnectionQueryServicesImpl.openConnection(ConnectionQueryServicesImpl.java:296)
>>         at
>> org.apache.phoenix.query.ConnectionQueryServicesImpl.access$300(ConnectionQueryServicesImpl.java:179)
>>         at
>> org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1917)
>>         at
>> org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1896)
>>         at
>> org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:77)
>>         at
>> org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1896)
>>         at
>> org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:180)
>>         at
>> org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:132)
>>         at
>> org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:151)
>>         at java.sql.DriverManager.getConnection(DriverManager.java:571)
>>         at java.sql.DriverManager.getConnection(DriverManager.java:233)
>>         at com.test.FirstExample.main(FirstExample.java:24)
>> Caused by: java.io.IOException: Login failure for testuser@ENT.LOCAL
>> from keytab /home/testuser/testuser.keytab:
>> javax.security.auth.login.LoginException: Unable to obtain password from
>> user
>>
>>         at
>> org.apache.hadoop.security.UserGroupInformation.loginUserFromKeytab(UserGroupInformation.java:976)
>>         at
>> org.apache.hadoop.security.SecurityUtil.login(SecurityUtil.java:243)
>>         at
>> org.apache.hadoop.hbase.security.User$SecureHadoopUser.login(User.java:383)
>>         at org.apache.hadoop.hbase.security.User.login(User.java:250)
>>         at
>> org.apache.phoenix.query.ConnectionQueryServicesImpl.openConnection(ConnectionQueryServicesImpl.java:291)
>>         ... 11 more
>> Caused by: javax.security.auth.login.LoginException: Unable to obtain
>> password from user
>>
>>         at
>> com.sun.security.auth.module.Krb5LoginModule.promptForPass(Krb5LoginModule.java:856)
>>         at
>> com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:719)
>>         at
>> com.sun.security.auth.module.Krb5LoginModule.login(Krb5LoginModule.java:584)
>>         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
>> javax.security.auth.login.LoginContext.invoke(LoginContext.java:762)
>>         at
>> javax.security.auth.login.LoginContext.access$000(LoginContext.java:203)
>>         at
>> javax.security.auth.login.LoginContext$4.run(LoginContext.java:690)
>>         at
>> javax.security.auth.login.LoginContext$4.run(LoginContext.java:688)
>>         at java.security.AccessController.doPrivileged(Native Method)
>>         at
>> javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:687)
>>         at
>> javax.security.auth.login.LoginContext.login(LoginContext.java:595)
>>         at
>> org.apache.hadoop.security.UserGroupInformation.loginUserFromKeytab(UserGroupInformation.java:967)
>>         ... 15 more
>>
>> jdbcjaas.conf file
>>
>> com.sun.security.jgss.initiate {
>>     com.sun.security.auth.module.Krb5LoginModule required
>>     useKeyTab=true
>>     useTicketCache=false
>>     keyTab="testuser.keytab"
>>     principal="testuser@ENT.LOCAL"
>>     debug=true;
>> };
>>
>>
>>
>> Any help is really appreciated.
>>
>> Thanks,
>> Durga Prasad
>>
>>
>>
>>
>>
>> On Tue, Dec 29, 2015 at 11:01 PM, Josh Elser <jo...@gmail.com>
>> wrote:
>>
>>>
>>>
>>> Ns G wrote:
>>>
>>>> Hi All,
>>>>
>>>> I have written a simple class to access phoenix.
>>>> I am able to establish connection. But when executing below line i get
>>>> the error.
>>>>
>>>> conn = DriverManager.getConnection(dbUrl);
>>>>
>>>> I am facing below exception when accessing phoenix through JDBC from
>>>> eclipse.
>>>>
>>>>
>>>> INFO - Call exception, tries=25, retries=35, started=388547 ms ago,
>>>> cancelled=false, msg=
>>>> INFO - Call exception, tries=26, retries=35, started=410087 ms ago,
>>>> cancelled=false, msg=
>>>> INFO - Call exception, tries=27, retries=35, started=431608 ms ago,
>>>> cancelled=false, msg=
>>>> INFO - Call exception, tries=28, retries=35, started=452849 ms ago,
>>>> cancelled=false, msg=
>>>>
>>>> and finally
>>>>
>>>> it gives me error like
>>>>
>>>> org.apache.hadoop.hbase.MasterNotRunningException:
>>>> com.google.protobuf.ServiceException:
>>>> org.apache.hadoop.hbase.exceptions.ConnectionClosingException: Call to
>>>>
>>>>
>>> Is your HBase cluster healthy? This exception implies that the HMaster
>>> is not running as expected.
>>>
>>>
>>>
>>>> any idea what may be the issue?
>>>>
>>>> Thanks,
>>>> Durga Prasad
>>>>
>>>
>>
>


-- 
Thanks & Regards,
Anil Gupta