Hive
  1. Hive
  2. HIVE-6050

Newer versions of JDBC driver does not work with older HiveServer2

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Blocker Blocker
    • Resolution: Unresolved
    • Affects Version/s: 0.13.0
    • Fix Version/s: None
    • Component/s: HiveServer2, JDBC
    • Labels:
      None

      Description

      HiveServer2 instance has to be upgraded before the JDBC drivers used by applications are upgraded. If jdbc drivers are updated before HiveServer2 is upgraded it will not be functional.

      Connect from JDBC driver of Hive 0.13 (TProtocolVersion=v4) to HiveServer2 of Hive 0.10 (TProtocolVersion=v1), will return the following exception:

      java.sql.SQLException: Could not establish connection to jdbc:hive2://localhost:10000/default: Required field 'client_protocol' is unset! Struct:TOpenSessionReq(client_protocol:null)
      	at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:336)
      	at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:158)
      	at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
      	at java.sql.DriverManager.getConnection(DriverManager.java:571)
      	at java.sql.DriverManager.getConnection(DriverManager.java:187)
      	at org.apache.hive.jdbc.MyTestJdbcDriver2.getConnection(MyTestJdbcDriver2.java:73)
      	at org.apache.hive.jdbc.MyTestJdbcDriver2.&lt;init&gt;(MyTestJdbcDriver2.java:49)
      	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
      	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
      	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
      	at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:187)
      	at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:236)
      	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
      	at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:233)
      	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
      	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
      	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
      	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
      	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
      	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
      	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
      	at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
      	at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
      	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:523)
      	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1063)
      	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:914)
      Caused by: org.apache.thrift.TApplicationException: Required field 'client_protocol' is unset! Struct:TOpenSessionReq(client_protocol:null)
      	at org.apache.thrift.TApplicationException.read(TApplicationException.java:108)
      	at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:71)
      	at org.apache.hive.service.cli.thrift.TCLIService$Client.recv_OpenSession(TCLIService.java:160)
      	at org.apache.hive.service.cli.thrift.TCLIService$Client.OpenSession(TCLIService.java:147)
      	at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:327)
      	... 37 more
      

      On code analysis, it looks like the 'client_protocol' scheme is a ThriftEnum, which doesn't seem to be backward-compatible. Look at the code path in the generated file 'TOpenSessionReq.java', method TOpenSessionReqStandardScheme.read():

      1. The method will call 'TProtocolVersion.findValue()' on the thrift protocol's byte stream, which returns null if the client is sending an enum value unknown to the server. (v4 is unknown to server)
      2. The method will then call struct.validate(), which will throw the above exception because of null version.

      So doesn't look like the current backward-compatibility scheme will work.

        Issue Links

          Activity

          Hide
          Szehon Ho added a comment -

          Ashutosh Chauhan Carl Steinbach Do you guys have any thoughts/experiences on this issue?

          It seems like we would need to change client protocol version to use another data type, to get this to work. My thought was this should be ok, as backward-compatibility seem to be broken today anyway based on this analysis.

          Show
          Szehon Ho added a comment - Ashutosh Chauhan Carl Steinbach Do you guys have any thoughts/experiences on this issue? It seems like we would need to change client protocol version to use another data type, to get this to work. My thought was this should be ok, as backward-compatibility seem to be broken today anyway based on this analysis.
          Hide
          Szehon Ho added a comment -

          As another note, the issue also exists for the other way (connecting Hive 0.10 driver with Hive 0.13 server).

          Exception is almost same, except this time client complains about the serverProtocolVersion.

          "Could not establish connection to jdbc:hive2://localhost:10000: Required field &apos;serverProtocolVersion&apos; is unset! Struct:TOpenSessionResp(status:TStatus(statusCode:SUCCESS_STATUS), serverProtocolVersion:null, sessionHandle:TSessionHandle(sessionId:THandleIdentifier(guid:29 3C D5 F4 B0 DB 49 48 86 0D 16 2B 42 D5 76 49, secret:B5 33 C6 D3 4B CF 4E 58 AE 0B DD DC 7F 71 AD AD)), configuration:{})" type="java.sql.SQLException">java.sql.SQLException: Could not establish connection to jdbc:hive2://localhost:10000: Required field &apos;serverProtocolVersion&apos; is unset! Struct:TOpenSessionResp(status:TStatus(statusCode:SUCCESS_STATUS), serverProtocolVersion:null, sessionHandle:TSessionHandle(sessionId:THandleIdentifier(guid:29 3C D5 F4 B0 DB 49 48 86 0D 16 2B 42 D5 76 49, secret:B5 33 C6 D3 4B CF 4E 58 AE 0B DD DC 7F 71 AD AD)), configuration:{})
          	at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:262)
          	at org.apache.hive.jdbc.HiveConnection.&lt;init&gt;(HiveConnection.java:133)
          	at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:106)
          	at java.sql.DriverManager.getConnection(DriverManager.java:582)
          	at java.sql.DriverManager.getConnection(DriverManager.java:185)
          	at org.apache.hive.jdbc.MyTestJdbcDriver2.getConnection(MyTestJdbcDriver2.java:73)
          	at org.apache.hive.jdbc.MyTestJdbcDriver2.&lt;init&gt;(MyTestJdbcDriver2.java:49)
          	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
          	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
          	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
          	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
          	at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:187)
          	at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:236)
          	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
          	at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:233)
          	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
          	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
          	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
          	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
          	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
          	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
          	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
          	at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
          	at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
          	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:523)
          	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1063)
          	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:914)
          Caused by: org.apache.thrift.protocol.TProtocolException: Required field &apos;serverProtocolVersion&apos; is unset! Struct:TOpenSessionResp(status:TStatus(statusCode:SUCCESS_STATUS), serverProtocolVersion:null, sessionHandle:TSessionHandle(sessionId:THandleIdentifier(guid:29 3C D5 F4 B0 DB 49 48 86 0D 16 2B 42 D5 76 49, secret:B5 33 C6 D3 4B CF 4E 58 AE 0B DD DC 7F 71 AD AD)), configuration:{})
          	at org.apache.hive.service.cli.thrift.TOpenSessionResp.validate(TOpenSessionResp.java:578)
          	at org.apache.hive.service.cli.thrift.TOpenSessionResp$TOpenSessionRespStandardScheme.read(TOpenSessionResp.java:676)
          	at org.apache.hive.service.cli.thrift.TOpenSessionResp$TOpenSessionRespStandardScheme.read(TOpenSessionResp.java:612)
          	at org.apache.hive.service.cli.thrift.TOpenSessionResp.read(TOpenSessionResp.java:520)
          	at org.apache.hive.service.cli.thrift.TCLIService$OpenSession_result$OpenSession_resultStandardScheme.read(TCLIService.java:2361)
          	at org.apache.hive.service.cli.thrift.TCLIService$OpenSession_result$OpenSession_resultStandardScheme.read(TCLIService.java:2346)
          	at org.apache.hive.service.cli.thrift.TCLIService$OpenSession_result.read(TCLIService.java:2293)
          	at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
          	at org.apache.hive.service.cli.thrift.TCLIService$Client.recv_OpenSession(TCLIService.java:160)
          	at org.apache.hive.service.cli.thrift.TCLIService$Client.OpenSession(TCLIService.java:147)
          	at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:254)
          	... 26 more
          
          Show
          Szehon Ho added a comment - As another note, the issue also exists for the other way (connecting Hive 0.10 driver with Hive 0.13 server). Exception is almost same, except this time client complains about the serverProtocolVersion. "Could not establish connection to jdbc:hive2://localhost:10000: Required field &apos;serverProtocolVersion&apos; is unset! Struct:TOpenSessionResp(status:TStatus(statusCode:SUCCESS_STATUS), serverProtocolVersion:null, sessionHandle:TSessionHandle(sessionId:THandleIdentifier(guid:29 3C D5 F4 B0 DB 49 48 86 0D 16 2B 42 D5 76 49, secret:B5 33 C6 D3 4B CF 4E 58 AE 0B DD DC 7F 71 AD AD)), configuration:{})" type="java.sql.SQLException">java.sql.SQLException: Could not establish connection to jdbc:hive2://localhost:10000: Required field &apos;serverProtocolVersion&apos; is unset! Struct:TOpenSessionResp(status:TStatus(statusCode:SUCCESS_STATUS), serverProtocolVersion:null, sessionHandle:TSessionHandle(sessionId:THandleIdentifier(guid:29 3C D5 F4 B0 DB 49 48 86 0D 16 2B 42 D5 76 49, secret:B5 33 C6 D3 4B CF 4E 58 AE 0B DD DC 7F 71 AD AD)), configuration:{}) at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:262) at org.apache.hive.jdbc.HiveConnection.&lt;init&gt;(HiveConnection.java:133) at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:106) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:185) at org.apache.hive.jdbc.MyTestJdbcDriver2.getConnection(MyTestJdbcDriver2.java:73) at org.apache.hive.jdbc.MyTestJdbcDriver2.&lt;init&gt;(MyTestJdbcDriver2.java:49) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:187) at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:236) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:233) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) at org.junit.runners.ParentRunner.run(ParentRunner.java:300) at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:523) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1063) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:914) Caused by: org.apache.thrift.protocol.TProtocolException: Required field &apos;serverProtocolVersion&apos; is unset! Struct:TOpenSessionResp(status:TStatus(statusCode:SUCCESS_STATUS), serverProtocolVersion:null, sessionHandle:TSessionHandle(sessionId:THandleIdentifier(guid:29 3C D5 F4 B0 DB 49 48 86 0D 16 2B 42 D5 76 49, secret:B5 33 C6 D3 4B CF 4E 58 AE 0B DD DC 7F 71 AD AD)), configuration:{}) at org.apache.hive.service.cli.thrift.TOpenSessionResp.validate(TOpenSessionResp.java:578) at org.apache.hive.service.cli.thrift.TOpenSessionResp$TOpenSessionRespStandardScheme.read(TOpenSessionResp.java:676) at org.apache.hive.service.cli.thrift.TOpenSessionResp$TOpenSessionRespStandardScheme.read(TOpenSessionResp.java:612) at org.apache.hive.service.cli.thrift.TOpenSessionResp.read(TOpenSessionResp.java:520) at org.apache.hive.service.cli.thrift.TCLIService$OpenSession_result$OpenSession_resultStandardScheme.read(TCLIService.java:2361) at org.apache.hive.service.cli.thrift.TCLIService$OpenSession_result$OpenSession_resultStandardScheme.read(TCLIService.java:2346) at org.apache.hive.service.cli.thrift.TCLIService$OpenSession_result.read(TCLIService.java:2293) at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78) at org.apache.hive.service.cli.thrift.TCLIService$Client.recv_OpenSession(TCLIService.java:160) at org.apache.hive.service.cli.thrift.TCLIService$Client.OpenSession(TCLIService.java:147) at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:254) ... 26 more
          Hide
          Navis added a comment -

          I've confronted same issue in HIVE-3746. I think the later case (0.12.0 client -> trunk server) is fixed in attached patch. But the former seemed hard to fix (changing protocol version 'required' to 'optional' breaks wire protocol)

          Show
          Navis added a comment - I've confronted same issue in HIVE-3746 . I think the later case (0.12.0 client -> trunk server) is fixed in attached patch. But the former seemed hard to fix (changing protocol version 'required' to 'optional' breaks wire protocol)
          Hide
          Brock Noland added a comment -

          I think this should be a blocker. Changed to blocker status.

          Show
          Brock Noland added a comment - I think this should be a blocker. Changed to blocker status.
          Hide
          Vaibhav Gumashta added a comment -

          Carl Steinbach Thejas M Nair Brock Noland Navis
          Do you guys have any thoughts on which would be a more common scenario to support: new jdbc driver compatible with old server version or old jdbc driver compatible with a newer server version?

          Show
          Vaibhav Gumashta added a comment - Carl Steinbach Thejas M Nair Brock Noland Navis Do you guys have any thoughts on which would be a more common scenario to support: new jdbc driver compatible with old server version or old jdbc driver compatible with a newer server version?
          Hide
          Carl Steinbach added a comment -

          I think running an older JDBC driver against a newer server version is going to be the more common scenario since there will always be cases of clients that are slow to upgrade.

          Show
          Carl Steinbach added a comment - I think running an older JDBC driver against a newer server version is going to be the more common scenario since there will always be cases of clients that are slow to upgrade.
          Hide
          Carl Steinbach added a comment -

          It looks like Thrift IDL is not backward compatible wrt to Enums. We use Enums in other places in the IDL (e.g. TTypeId, TStatusCode, TOperationState, TOperationType, TGetTypeInfo, TFetchOrientation), and should probably investigate whether these references need to updated as well. I'm convinced that using an Enum for TGetTypeInfo was a bad idea, and suspect that the same may also be true for TTypeId.

          Show
          Carl Steinbach added a comment - It looks like Thrift IDL is not backward compatible wrt to Enums. We use Enums in other places in the IDL (e.g. TTypeId, TStatusCode, TOperationState, TOperationType, TGetTypeInfo, TFetchOrientation), and should probably investigate whether these references need to updated as well. I'm convinced that using an Enum for TGetTypeInfo was a bad idea, and suspect that the same may also be true for TTypeId.
          Hide
          Thejas M Nair added a comment -

          Do you guys have any thoughts on which would be a more common scenario to support: new jdbc driver compatible with old server version or old jdbc driver compatible with a newer server version?

          I think it is very important that one version of jdbc driver be able to talk to different versions of HS2. If the older version of driver is able to talk to newer versions of HS2, that would be the ideal case.

          Show
          Thejas M Nair added a comment - Do you guys have any thoughts on which would be a more common scenario to support: new jdbc driver compatible with old server version or old jdbc driver compatible with a newer server version? I think it is very important that one version of jdbc driver be able to talk to different versions of HS2. If the older version of driver is able to talk to newer versions of HS2, that would be the ideal case.
          Hide
          Thejas M Nair added a comment -

          I verified that hive 0.11 and hive 0.12 jdbc driver works with hive 0.13 hiveserver2. There is still an issue with hive 0.13 jdbc driver not working with old hive server2 versions.
          As old jdbc drivers are now working with the new hiveserver2 in 0.13, I don't think this needs to block hive 0.13 release.

          Show
          Thejas M Nair added a comment - I verified that hive 0.11 and hive 0.12 jdbc driver works with hive 0.13 hiveserver2. There is still an issue with hive 0.13 jdbc driver not working with old hive server2 versions. As old jdbc drivers are now working with the new hiveserver2 in 0.13, I don't think this needs to block hive 0.13 release.
          Hide
          Mark Grey added a comment -

          Is there a workaround for overcoming the Thrift problem when connecting newer clients to an older hiveserver2? I'd like to hook up Hue into an existing hiveserver in production.

          Show
          Mark Grey added a comment - Is there a workaround for overcoming the Thrift problem when connecting newer clients to an older hiveserver2? I'd like to hook up Hue into an existing hiveserver in production.
          Hide
          Ken Williams added a comment -

          I'm also looking for a workaround to this - I'm seeing the error when trying to connect to a 0.13 Hive.

          Show
          Ken Williams added a comment - I'm also looking for a workaround to this - I'm seeing the error when trying to connect to a 0.13 Hive.
          Hide
          Brock Noland added a comment -

          AFAIK there is no present work around. The server must be higher or equal to the client.

          Show
          Brock Noland added a comment - AFAIK there is no present work around. The server must be higher or equal to the client.
          Hide
          qiaohaijun added a comment -

          +1

          Show
          qiaohaijun added a comment - +1
          Hide
          qiaohaijun added a comment -

          14/11/01 19:12:44 ERROR jdbc.HiveConnection: Error opening session
          org.apache.thrift.TApplicationException: Required field 'client_protocol' is unset! Struct:TOpenSessionReq(client_protocol:null)
          at org.apache.thrift.TApplicationException.read(TApplicationException.java:108)
          at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:71)
          at org.apache.hive.service.cli.thrift.TCLIService$Client.recv_OpenSession(TCLIService.java:156)
          at org.apache.hive.service.cli.thrift.TCLIService$Client.OpenSession(TCLIService.java:143)
          at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:415)
          at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:193)
          at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
          at java.sql.DriverManager.getConnection(DriverManager.java:571)
          at java.sql.DriverManager.getConnection(DriverManager.java:187)
          at org.apache.hive.beeline.DatabaseConnection.connect(DatabaseConnection.java:145)
          at org.apache.hive.beeline.DatabaseConnection.getConnection(DatabaseConnection.java:186)
          at org.apache.hive.beeline.Commands.connect(Commands.java:959)
          at org.apache.hive.beeline.Commands.connect(Commands.java:880)
          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 org.apache.hive.beeline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:44)
          at org.apache.hive.beeline.BeeLine.dispatch(BeeLine.java:801)
          at org.apache.hive.beeline.BeeLine.begin(BeeLine.java:659)
          at org.apache.hive.beeline.BeeLine.mainWithInputRedirection(BeeLine.java:368)
          at org.apache.hive.beeline.BeeLine.main(BeeLine.java:351)
          Error: Invalid URL: jdbc:hive2://10.134.34.181:10000 (state=08S01,code=0)


          spark 1.1.1
          hive 0.12-probuf-2.5

          Show
          qiaohaijun added a comment - 14/11/01 19:12:44 ERROR jdbc.HiveConnection: Error opening session org.apache.thrift.TApplicationException: Required field 'client_protocol' is unset! Struct:TOpenSessionReq(client_protocol:null) at org.apache.thrift.TApplicationException.read(TApplicationException.java:108) at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:71) at org.apache.hive.service.cli.thrift.TCLIService$Client.recv_OpenSession(TCLIService.java:156) at org.apache.hive.service.cli.thrift.TCLIService$Client.OpenSession(TCLIService.java:143) at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:415) at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:193) at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105) at java.sql.DriverManager.getConnection(DriverManager.java:571) at java.sql.DriverManager.getConnection(DriverManager.java:187) at org.apache.hive.beeline.DatabaseConnection.connect(DatabaseConnection.java:145) at org.apache.hive.beeline.DatabaseConnection.getConnection(DatabaseConnection.java:186) at org.apache.hive.beeline.Commands.connect(Commands.java:959) at org.apache.hive.beeline.Commands.connect(Commands.java:880) 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 org.apache.hive.beeline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:44) at org.apache.hive.beeline.BeeLine.dispatch(BeeLine.java:801) at org.apache.hive.beeline.BeeLine.begin(BeeLine.java:659) at org.apache.hive.beeline.BeeLine.mainWithInputRedirection(BeeLine.java:368) at org.apache.hive.beeline.BeeLine.main(BeeLine.java:351) Error: Invalid URL: jdbc:hive2://10.134.34.181:10000 (state=08S01,code=0) — spark 1.1.1 hive 0.12-probuf-2.5
          Hide
          Zoltan Fedor added a comment -

          +1

          Show
          Zoltan Fedor added a comment - +1

            People

            • Assignee:
              Unassigned
              Reporter:
              Szehon Ho
            • Votes:
              5 Vote for this issue
              Watchers:
              21 Start watching this issue

              Dates

              • Created:
                Updated:

                Development