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. > > >