Good to know Maria. On Mon, Jul 4, 2016 at 10:46 PM, Maria <linanmengxia...@126.com> wrote:
> > 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. > > > >>>> > > > >>>> > > > >>>> > > > > > > > > > > >