I did it! "KrbException: Clock skew too great (37) - PROCESS_TGS" means my 
windows clock is not synchronized with the kerberos server clock.
After I do synchronized between windows and linux kerberos server. Every thing 
goes well. 

I am so grateful  to you two.(^_^)

Maria.

At 2016-07-05 09:59:04, "Maria" <linanmengxia...@126.com> wrote:
>
>Yup,yesterday I started to realize that The renewal is a  principal level 
>setting. I hava fixed renew time in KDC kdc.conf. Do as Aviral said, I enable 
>kerberos logs with     
>    "-Dsun.security.krb5.debug=true" , more error info printed out:
>------------------------------------------------------------------------------------------------
>Java config name: E:\Program Files (x86)\Java\jre7\lib\security\krb5.conf
>Loaded from Java config
>Java config name: E:\Program Files (x86)\Java\jre7\lib\security\krb5.conf
>Loaded from Java config
>>>> KdcAccessibility: reset
>>>> KdcAccessibility: reset
>>>> KeyTabInputStream, readName(): HADOOP.COM
>>>> KeyTabInputStream, readName(): hive
>>>> KeyTabInputStream, readName(): hm
>>>> KeyTab: load() entry length: 69; type: 18
>>>> KeyTabInputStream, readName(): HADOOP.COM
>>>> KeyTabInputStream, readName(): hive
>>>> KeyTabInputStream, readName(): hm
>>>> KeyTab: load() entry length: 53; type: 17
>>>> KeyTabInputStream, readName(): HADOOP.COM
>>>> KeyTabInputStream, readName(): hive
>>>> KeyTabInputStream, readName(): hm
>>>> KeyTab: load() entry length: 61; type: 16
>>>> KeyTabInputStream, readName(): HADOOP.COM
>>>> KeyTabInputStream, readName(): hive
>>>> KeyTabInputStream, readName(): hm
>>>> KeyTab: load() entry length: 53; type: 23
>>>> KeyTabInputStream, readName(): HADOOP.COM
>>>> KeyTabInputStream, readName(): hive
>>>> KeyTabInputStream, readName(): hm
>>>> KeyTab: load() entry length: 45; type: 8
>>>> KeyTabInputStream, readName(): HADOOP.COM
>>>> KeyTabInputStream, readName(): hive
>>>> KeyTabInputStream, readName(): hm
>>>> KeyTab: load() entry length: 45; type: 3
>Added key: 3version: 1
>Found unsupported keytype (8) for hive/h...@hadoop.com
>Added key: 23version: 1
>Added key: 16version: 1
>Added key: 17version: 1
>Found unsupported keytype (18) for hive/h...@hadoop.com
>Ordering keys wrt default_tkt_enctypes list
>Using builtin default etypes for default_tkt_enctypes
>default etypes for default_tkt_enctypes: 17 16 23 1 3.
>Added key: 3version: 1
>Found unsupported keytype (8) for hive/h...@hadoop.com
>Added key: 23version: 1
>Added key: 16version: 1
>Added key: 17version: 1
>Found unsupported keytype (18) for hive/h...@hadoop.com
>Ordering keys wrt default_tkt_enctypes list
>Using builtin default etypes for default_tkt_enctypes
>default etypes for default_tkt_enctypes: 17 16 23 1 3.
>Using builtin default etypes for default_tkt_enctypes
>default etypes for default_tkt_enctypes: 17 16 23 1 3.
>>>> KrbAsReq creating message
>>>> KrbKdcReq send: kdc=hm UDP:88, timeout=30000, number of retries =3, 
>>>> #bytes=145
>>>> KDCCommunication: kdc=hm UDP:88, timeout=30000,Attempt =1, #bytes=145
>>>> KrbKdcReq send: #bytes read=598
>>>> KdcAccessibility: remove hm
>Added key: 3version: 1
>Found unsupported keytype (8) for hive/h...@hadoop.com
>Added key: 23version: 1
>Added key: 16version: 1
>Added key: 17version: 1
>Found unsupported keytype (18) for hive/h...@hadoop.com
>Ordering keys wrt default_tkt_enctypes list
>Using builtin default etypes for default_tkt_enctypes
>default etypes for default_tkt_enctypes: 17 16 23 1 3.
>>>> EType: sun.security.krb5.internal.crypto.Aes128CtsHmacSha1EType
>>>> KrbAsRep cons in KrbAsReq.getReply hive/hm
>Added key: 3version: 1
>Found unsupported keytype (8) for hive/h...@hadoop.com
>Added key: 23version: 1
>Added key: 16version: 1
>Added key: 17version: 1
>Found unsupported keytype (18) for hive/h...@hadoop.com
>Ordering keys wrt default_tkt_enctypes list
>Using builtin default etypes for default_tkt_enctypes
>default etypes for default_tkt_enctypes: 17 16 23 1 3.
>start connect hiveserver..
>Found ticket for hive/h...@hadoop.com to go to krbtgt/hadoop....@hadoop.com 
>expiring on Wed Jul 06 09:29:15 CST 2016
>Entered Krb5Context.initSecContext with state=STATE_NEW
>Found ticket for hive/h...@hadoop.com to go to krbtgt/hadoop....@hadoop.com 
>expiring on Wed Jul 06 09:29:15 CST 2016
>Service ticket not found in the subject
>>>> Credentials acquireServiceCreds: same realm
>Using builtin default etypes for default_tgs_enctypes
>default etypes for default_tgs_enctypes: 17 16 23 1 3.
>>>> CksumType: sun.security.krb5.internal.crypto.RsaMd5CksumType
>>>> EType: sun.security.krb5.internal.crypto.Aes128CtsHmacSha1EType
>>>> KrbKdcReq send: kdc=hm UDP:88, timeout=30000, number of retries =3, 
>>>> #bytes=619
>>>> KDCCommunication: kdc=hm UDP:88, timeout=30000,Attempt =1, #bytes=619
>>>> KrbKdcReq send: #bytes read=116
>>>> KdcAccessibility: remove hm
>>>> KDCRep: init() encoding tag is 126 req type is 13
>>>>KRBError:
>        cTime is Wed Jul 04 22:58:32 CST 1984 457801112000
>        sTime is Tue Jul 05 09:29:15 CST 2016 1467682155000
>        suSec is 944361
>        error code is 37
>        error Message is Clock skew too great
>        realm is HADOOP.COM
>        sname is hive/hm
>        msgType is 30
>KrbException: Clock skew too great (37) - PROCESS_TGS
>       at sun.security.krb5.KrbTgsRep.<init>(Unknown Source)
>       at sun.security.krb5.KrbTgsReq.getReply(Unknown Source)
>       at sun.security.krb5.KrbTgsReq.sendAndGetCreds(Unknown Source)
>       at sun.security.krb5.internal.CredentialsUtil.serviceCreds(Unknown 
> Source)
>       at 
> sun.security.krb5.internal.CredentialsUtil.acquireServiceCreds(Unknown Source)
>       at sun.security.krb5.Credentials.acquireServiceCreds(Unknown Source)
>       at sun.security.jgss.krb5.Krb5Context.initSecContext(Unknown Source)
>       at sun.security.jgss.GSSContextImpl.initSecContext(Unknown Source)
>       at sun.security.jgss.GSSContextImpl.initSecContext(Unknown Source)
>       at 
> com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(Unknown Source)
>       at 
> org.apache.thrift.transport.TSaslClientTransport.handleSaslStartMessage(TSaslClientTransport.java:94)
>       at 
> org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:271)
>       at 
> org.apache.thrift.transport.TSaslClientTransport.open(TSaslClientTransport.java:37)
>       at 
> org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport$1.run(TUGIAssumingTransport.java:52)
>       at 
> org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport$1.run(TUGIAssumingTransport.java:49)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Unknown Source)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
>       at 
> org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport.open(TUGIAssumingTransport.java:49)
>       at 
> org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:204)
>       at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:176)
>       at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
>       at java.sql.DriverManager.getConnection(Unknown Source)
>       at java.sql.DriverManager.getConnection(Unknown Source)
>       at 
> org.apache.hadoop.hive.ql.security.authorization.plugin.KerberosTest.main(KerberosTest.java:50)
>Caused by: KrbException: Identifier doesn't match expected value (906)
>       at sun.security.krb5.internal.KDCRep.init(Unknown Source)
>       at sun.security.krb5.internal.TGSRep.init(Unknown Source)
>       at sun.security.krb5.internal.TGSRep.<init>(Unknown Source)
>       ... 25 more
>java.sql.SQLException: Could not open client transport with JDBC Uri: 
>jdbc:hive2://hm:10000/default;principal=hive/h...@hadoop.com: GSS initiate 
>failed
>       at 
> org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:231)
>       at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:176)
>       at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
>       at java.sql.DriverManager.getConnection(Unknown Source)
>       at java.sql.DriverManager.getConnection(Unknown Source)
>       at 
> org.apache.hadoop.hive.ql.security.authorization.plugin.KerberosTest.main(KerberosTest.java:50)
>Caused by: org.apache.thrift.transport.TTransportException: GSS initiate failed
>       at 
> org.apache.thrift.transport.TSaslTransport.sendAndThrowMessage(TSaslTransport.java:232)
>       at 
> org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:316)
>       at 
> org.apache.thrift.transport.TSaslClientTransport.open(TSaslClientTransport.java:37)
>       at 
> org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport$1.run(TUGIAssumingTransport.java:52)
>       at 
> org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport$1.run(TUGIAssumingTransport.java:49)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Unknown Source)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
>       at 
> org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport.open(TUGIAssumingTransport.java:49)
>       at 
> org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:204)
>       ... 5 more
>
>As if kerberos configuration is incorrect ....
>
>
>At 2016-07-04 21:26:53, "Vivek Shrivastava" <vivshrivast...@gmail.com> wrote:
> 
>
>The renewal lifetime at client krb5.conf level does make any difference. The 
>renewal time period is defined at  kdc in kdc.conf. Client can not override 
>it. The renewal is also a property set at the principal level, both the 
>settings ( renewal_lifetime, +renewal ) dictate if a ticket can be renewed. I 
>don't think your problem has anything to do with that. 
>
>
>Seems something basic is missing in your environment. I would probably, run 
>the same piece of code in the unix environment and ensure that there is no 
>error. Enabling Kerberos debugging logging as suggested in the previous post 
>will also help you compare the sequence of execution. 
>
>
>On Mon, Jul 4, 2016 at 7:52 AM, Aviral Agarwal <aviral12...@gmail.com> wrote:
>
>
>Hi,
>Could you enable kerberos logs with 
>    
>    -Dsun.security.krb5.debug=true
>
>
>and paste the output ?
>
>
>
>
>On Mon, Jul 4, 2016 at 3:47 PM, Maria <linanmengxia...@126.com> wrote:
>
>The qestion "kinit: Ticket expired while renewing credentials" has been 
>solved. I can successfully execute "kinit -R",
>
>but the error “java.lang.RuntimeException: 
>org.apache.thrift.transport.TTransportException: Peer indicated failure: GSS 
>initiate failed”
>
>is still there..
>
>
>
>
>
>At 2016-07-04 14:39:04, "Maria" <linanmengxia...@126.com> wrote:
>
>>I saw a  mail named "HCatalog Security",His or her problem was similar to 
>>mine,and the reply answer were:
>
>>"This issue goes away after doing a kinit -R".
>
>>
>
>>So I did the same operation.while it is failed:
>
>>kinit: Ticket expired while renewing credentials
>
>>
>
>>But in my /etc/krb5.conf, I have configed this item:
>
>>renew_lifetime=7d
>
>>
>
>>So, Can anybody give me some suggestions, please? Thankyou.
>
>>
>
>>At 2016-07-04 11:32:30, "Maria" <linanmengxia...@126.com> wrote:
>
>>>
>
>>>
>
>>>And  I can suucessfully access hiveserver2 from beeline.
>
>>>
>
>>>
>
>>>I was so confused by this error"Peer indicated failure: GSS initiate failed".
>
>>>
>
>>> Can you anybody please help me? Any reply will be much appreciated.
>
>>>
>
>>>At 2016-07-04 11:26:53, "Maria" <linanmengxia...@126.com> wrote:
>
>>>>Yup,my  hiveserver2 log errors are:
>
>>>>
>
>>>>ERROR [Hiveserver2-Handler-Pool: 
>>>>Thread-48]:server.TThreadPoolServer(TThreadPoolServer.java:run(296)) - 
>>>>error occurred during processing of message.
>
>>>>java.lang.RuntimeException: 
>>>>org.apache.thrift.transport.TTransportException: Peer indicated failure: 
>>>>GSS initiate failed
>
>>>>    at 
>>>>org.apache.thrift.transport.TSaslServerTransport$FactorygetTransport(TSaslServerTransport.java:219)
>
>>>>    at 
>>>>org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory$1.run(HadoopThriftAuthBridge.java:739)
>
>>>>    at 
>>>>org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory$1.run(HadoopThriftAuthBridge.java:736)
>
>>>>    at java.security.AccessController.doPrivileged(Native Method)
>
>>>>    at javax.security.auth.Subject.doAs(Subject.java:356)
>
>>>>    at 
>>>>org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1608)
>
>>>>    at 
>>>>org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory.getTransport(HadoopThriftAuthBridge.java:736)
>
>>>>    at 
>>>>org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:268)
>
>>>>    at 
>>>>java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>
>>>>    at 
>>>>java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>
>>>>    at java.lang.Thread.run(Thread.java:745)
>
>>>>Caused by: org.apache.thrift.transport.TTransportException:Peer indicated 
>>>>failure: GSS initiate failed
>
>>>>    at 
>>>>org.apache.thrift.transport.TSaslTransport.receiveSaslMessage(TSaslTransport.java:199)
>
>>>>    at 
>>>>org.apache.thrift.transport.TSaslServerTransport.handleSaslStartMessage(TSaslServerTransport.java:125)
>
>>>>    at 
>>>>org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:271)
>
>>>>    at 
>>>>org.apache.thrift.transport.TSaslServerTransport.open(TSaslServerTransport.java:41)
>
>>>>    at 
>>>>org.apache.thrift.transport.TSaslServerTransport$Factory.getTransport(TSaslServerTransport.java:216)
>
>>>> ... 10 more
>
>>>>================================================
>
>>>>As if the windows  hive JDBC client can communicate with the 
>>>>hiveserver2,isn't it?
>
>>>>
>
>>>>while I checked everything I can :
>
>>>>(1)in hiveserver2 node, I execute command "klist",the results are:
>
>>>>Ticket cache: FILE:/tmp/krb5cc_0
>
>>>>Default principal: hive/h...@hadoop.com
>
>>>>
>
>>>>Valid starting    Expires                     Service principal
>
>>>>07/04/16 10:28:14    07/05/16 10:28:14     krbtgt/hadoop....@hadoop.com
>
>>>>                 renew until 07/04/16 10:28:14
>
>>>>(2)in windows dos cmd,I execute command "klist",the results are:
>
>>>>Ticket cache:API: 1
>
>>>>Default principal: hive/h...@hadoop.com
>
>>>>
>
>>>>Valid starting    Expires                     Service principal
>
>>>>07/04/16 10:24:32    07/05/16 10:24:32     krbtgt/hadoop....@hadoop.com
>
>>>>                 renew until 07/04/16 10:24:32
>
>>>>
>
>>>> Is there any thing else I have to add or set for hiveserver2?
>
>>>>
>
>>>>Thanks in advance.
>
>>>>
>
>>>>
>
>>>>Maria.
>
>>>>
>
>>>>At 2016-07-03 04:39:31, "Vivek Shrivastava" <vivshrivast...@gmail.com> 
>>>>wrote:
>
>>>>
>
>>>>
>
>>>>Please look at the hiveserver2 log, it will have better error information. 
>>>>You can paste error from the logs if you need help. 
>
>>>>
>
>>>>
>
>>>>Regards,
>
>>>>
>
>>>>
>
>>>>Vivek
>
>>>>
>
>>>>
>
>>>>On Sat, Jul 2, 2016 at 5:52 AM, Maria <linanmengxia...@126.com> wrote:
>
>>>>
>
>>>>
>
>>>>
>
>>>>Hi,all:
>
>>>>
>
>>>>     recently,I  attempted to access Kerberized hadoop cluster by launching 
>>>>JAVA applications from Windows workstations. And I hava configured kerberos 
>>>>in my windows7, and can successfully access hdfs50070. But when I launch 
>>>>JDBC from windows to connection remote hiveserver,errors accured:
>
>>>>
>
>>>>java.sql.SQLException:could not open client transport with JDBC 
>>>>Uri:jdbc:hive2://hm:10000/default;principal=hive/h...@hadoom.com: GSS 
>>>>initiate failed
>
>>>>
>
>>>>     at 
>>>>org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:231)
>
>>>>
>
>>>>     at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:176)
>
>>>>
>
>>>>     at org.apache.hive.jdbc.HiveDriver.connection(HiveDriver.java:105)
>
>>>>
>
>>>>     at java.sql.DriverManager.getConnection(Unknown Source)
>
>>>>
>
>>>>     at java.sql.DriverManager.getConnection(Unknown Source)
>
>>>>
>
>>>>     at 
>>>>org.apache.hadoop.hive.ql.security.authorization.plugin.KerberosTest.main(KerberosTest.java:41)
>
>>>>
>
>>>>Caused by: org.apache.thrift.transport.TTransportException:GSS initiate 
>>>>failed
>
>>>>
>
>>>>     at 
>>>>org.apache.thrift.transport.TSaslTransport.sendAndThrowMessage(TSaslTransport.java:232)
>
>>>>
>
>>>>     at 
>>>>org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:316)
>
>>>>
>
>>>>     at 
>>>>org.apache.thrift.transport.TSaslClientTransport.open(TSaslClientTransport.java:37)
>
>>>>
>
>>>>     at 
>>>>org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport$1.run(TUGIAssumingTransport.java:52)
>
>>>>
>
>>>>     at 
>>>>org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport$1.run(TUGIAssumingTransport.java:49)
>
>>>>
>
>>>>     at java.security.AccessController.doPrivileged(Native Method)
>
>>>>
>
>>>>     at javax.security.auth.Subject.doAs(Unknow source)
>
>>>>
>
>>>>     at 
>>>>org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
>
>>>>
>
>>>>     at  
>>>>org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport.open(TUGIAssumingTransport.java:49)
>
>>>>
>
>>>>     at 
>>>>org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:204)
>
>>>>
>
>>>>... 5 more
>
>>>>
>
>>>>------------------------------------------------------------------------------
>
>>>>
>
>>>>below are my test codes:
>
>>>>
>
>>>>
>
>>>>
>
>>>>public static void main(String[] args) {
>
>>>>
>
>>>>    String principal = "hive/h...@hadoom.com";
>
>>>>
>
>>>>    String keytab = "E:\\Program Files 
>>>>(x86)\\java\\jre7\\lib\\security\\hive.keytab";
>
>>>>
>
>>>>    String url = 
>>>>"jdbc:hive2://hm:10000/default;principal=hive/h...@hadoom.com";
>
>>>>
>
>>>>
>
>>>>
>
>>>>    conf.addResource(new File("hdfs-site.xml").toURI().toURL());
>
>>>>
>
>>>>    conf.addResource(new File("core-site.xml").toURI().toURL());
>
>>>>
>
>>>>    conf.addResource(new File("yarn-site.xml").toURI().toURL());
>
>>>>
>
>>>>    conf.addResource(new File("hive-site.xml").toURI().toURL());
>
>>>>
>
>>>>
>
>>>>
>
>>>>    conf.set("hadoop.security.authentication", "Kerberos");
>
>>>>
>
>>>>    UserGroupInformation.setConfiguration(conf);
>
>>>>
>
>>>>    UserGroupInformation.loginUserFromKeytab(principal, keytab);
>
>>>>
>
>>>>
>
>>>>
>
>>>>    Class.forName("org.apache.hive.,jdbc.HiveDriver");
>
>>>>
>
>>>>    Connection conn =DriverManager.getConnection(url);
>
>>>>
>
>>>>
>
>>>>
>
>>>>    Statement stmt = conn.createStatement();
>
>>>>
>
>>>>    String sql = "select * from testkerberos";
>
>>>>
>
>>>>    ResultSet rs = stmt.executeQuery(sql);
>
>>>>
>
>>>>    while (rs.next()) {
>
>>>>
>
>>>>       system.out.println(rs.getString(1));
>
>>>>
>
>>>>    }
>
>>>>
>
>>>>}
>
>>>>
>
>>>>
>
>>>>
>
>>>>Does anyone had the same problem? Or know how to solve it ?
>
>>>>
>
>>>>
>
>>>>
>
>>>>Thanks in advance.
>
>>>>
>
>>>>
>
>>>>
>
>>>>Maria.
>
>>>>
>
>>>>
>
>>>>
>
>
>
>
>

Reply via email to