[ 
https://issues.apache.org/jira/browse/HIVE-6972?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vaibhav Gumashta updated HIVE-6972:
-----------------------------------
    Description: 
The http connection parameters are currently part of the HiveConf section of 
the connection string. It should ideally be part of SessionConf section, as 
that is where rest of the connection parameters are.
HTTP transport parameters are not part of the hiveconfiguration parameters that 
need to be set.
ie
instead of 
jdbc:hive2://<host>:<port>/<db>?hive.server2.transport.mode=http;hive.server2.thrift.http.path=<http_endpoint>
it should be -
jdbc:hive2://<host>:<port>/<db>;transportMode=http;httpPath=<http_endpoint>

*Release Note:*

The JDBC Uri for HiveServer2 has the form:
{code}
jdbc:hive2://host1:port1,host2:port2/dbName;sess_var_list?hive_conf_list#hive_var_list
{code}

Ideally, sess_var_list is supposed to be used to pass parameters that will be 
used within the JDBC Driver. However, some of the http mode parameters were 
being passed in the hive_conf_list which we've fixed now (in a backward 
compatible way).
Additionally, JDBC Driver has a naming convention for the parameters in the 
JDBC Uri which were not followed to the sasl.qop parameter. We've renamed it in 
a backward compatible way.

Details:
*1. HTTP Mode params:*
*Old example uri:*
{code}
jdbc:hive2://host:port/dbName;user=username;password=password?hive.server2.transport.mode=http;hive.server2.thrift.http.path=httpEndpoint
{code}

*New example uri:*
{code}
jdbc:hive2://host:port/dbName;user=username;password=password;transportMode=http;httpPath=httpEndpoint?hive.server2.logging.operation.enabled=false
{code}

As you can see above, {{hive.server2.transport.mode}} has been renamed to 
{{transportMode}}, {{hive.server2.thrift.http.path}} has been renamed to 
{{httpPath}} and both have been moved from {{hive_conf_list}} to 
{{sess_var_list}}.

*2. Sasl qop renaming:*
*Old example uri:*
{code}
jdbc:hive2://host:port/dbName;principal=hiveserver2KerberosPrincipal;sasl.qop=qopValue
{code}

*New example uri:*
{code}
jdbc:hive2://host:port/dbName;principal=hiveserver2KerberosPrincipal;saslQop=qopValue
{code}

As you can see {{sasl.qop}} has been renamed to {{saslQop}}.

Note: all changes are backward compatible and print a deprecation message like 
the following:
{code}
0: jdbc:hive2://localhost:10001> !connect 
jdbc:hive2://localhost:10001/;sasl.qop=auth?hive.server2.transport.mode=http;hive.server2.thrift.http.path=cliservice
 username password org.apache.hive.jdbc.HiveDriver
Connecting to 
jdbc:hive2://localhost:10007/;sasl.qop=auth?hive.server2.transport.mode=http;hive.server2.thrift.http.path=cliservice
14/10/07 16:22:24 INFO jdbc.Utils: Supplied authorities: localhost:10001
14/10/07 16:22:24 WARN jdbc.Utils: ***** JDBC param deprecation *****
14/10/07 16:22:24 WARN jdbc.Utils: The use of sasl.qop is deprecated.
14/10/07 16:22:24 WARN jdbc.Utils: Please use saslQop like so: 
jdbc:hive2://<host>:<port>/dbName;saslQop=<qop_value>
14/10/07 16:22:24 WARN jdbc.Utils: ***** JDBC param deprecation *****
14/10/07 16:22:24 WARN jdbc.Utils: The use of hive.server2.transport.mode is 
deprecated.
14/10/07 16:22:24 WARN jdbc.Utils: Please use transportMode like so: 
jdbc:hive2://<host>:<port>/dbName;transportMode=<transport_mode_value>
14/10/07 16:22:24 WARN jdbc.Utils: ***** JDBC param deprecation *****
14/10/07 16:22:24 WARN jdbc.Utils: The use of hive.server2.thrift.http.path is 
deprecated.
14/10/07 16:22:24 WARN jdbc.Utils: Please use httpPath like so: 
jdbc:hive2://<host>:<port>/dbName;httpPath=<http_path_value>
Connected to: Apache Hive (version 0.14.0-SNAPSHOT)
Driver: Hive JDBC (version 0.14.0-SNAPSHOT)
Transaction isolation: TRANSACTION_REPEATABLE_READ
{code}



  was:
The http connection parameters are currently part of the HiveConf section of 
the connection string. It should ideally be part of SessionConf section, as 
that is where rest of the connection parameters are.
HTTP transport parameters are not part of the hiveconfiguration parameters that 
need to be set.
ie
instead of 
jdbc:hive2://<host>:<port>/<db>?hive.server2.transport.mode=http;hive.server2.thrift.http.path=<http_endpoint>
it should be -
jdbc:hive2://<host>:<port>/<db>;transportMode=http;httpPath=<http_endpoint>



> jdbc HTTP configuration options should be part of sessionConf part of 
> connection string
> ---------------------------------------------------------------------------------------
>
>                 Key: HIVE-6972
>                 URL: https://issues.apache.org/jira/browse/HIVE-6972
>             Project: Hive
>          Issue Type: Bug
>          Components: HiveServer2, JDBC
>    Affects Versions: 0.13.0
>            Reporter: Thejas M Nair
>            Assignee: Vaibhav Gumashta
>             Fix For: 0.14.0
>
>         Attachments: HIVE-6972.1.patch, HIVE-6972.2.patch, HIVE-6972.3.patch, 
> HIVE-6972.4.patch
>
>
> The http connection parameters are currently part of the HiveConf section of 
> the connection string. It should ideally be part of SessionConf section, as 
> that is where rest of the connection parameters are.
> HTTP transport parameters are not part of the hiveconfiguration parameters 
> that need to be set.
> ie
> instead of 
> jdbc:hive2://<host>:<port>/<db>?hive.server2.transport.mode=http;hive.server2.thrift.http.path=<http_endpoint>
> it should be -
> jdbc:hive2://<host>:<port>/<db>;transportMode=http;httpPath=<http_endpoint>
> *Release Note:*
> The JDBC Uri for HiveServer2 has the form:
> {code}
> jdbc:hive2://host1:port1,host2:port2/dbName;sess_var_list?hive_conf_list#hive_var_list
> {code}
> Ideally, sess_var_list is supposed to be used to pass parameters that will be 
> used within the JDBC Driver. However, some of the http mode parameters were 
> being passed in the hive_conf_list which we've fixed now (in a backward 
> compatible way).
> Additionally, JDBC Driver has a naming convention for the parameters in the 
> JDBC Uri which were not followed to the sasl.qop parameter. We've renamed it 
> in a backward compatible way.
> Details:
> *1. HTTP Mode params:*
> *Old example uri:*
> {code}
> jdbc:hive2://host:port/dbName;user=username;password=password?hive.server2.transport.mode=http;hive.server2.thrift.http.path=httpEndpoint
> {code}
> *New example uri:*
> {code}
> jdbc:hive2://host:port/dbName;user=username;password=password;transportMode=http;httpPath=httpEndpoint?hive.server2.logging.operation.enabled=false
> {code}
> As you can see above, {{hive.server2.transport.mode}} has been renamed to 
> {{transportMode}}, {{hive.server2.thrift.http.path}} has been renamed to 
> {{httpPath}} and both have been moved from {{hive_conf_list}} to 
> {{sess_var_list}}.
> *2. Sasl qop renaming:*
> *Old example uri:*
> {code}
> jdbc:hive2://host:port/dbName;principal=hiveserver2KerberosPrincipal;sasl.qop=qopValue
> {code}
> *New example uri:*
> {code}
> jdbc:hive2://host:port/dbName;principal=hiveserver2KerberosPrincipal;saslQop=qopValue
> {code}
> As you can see {{sasl.qop}} has been renamed to {{saslQop}}.
> Note: all changes are backward compatible and print a deprecation message 
> like the following:
> {code}
> 0: jdbc:hive2://localhost:10001> !connect 
> jdbc:hive2://localhost:10001/;sasl.qop=auth?hive.server2.transport.mode=http;hive.server2.thrift.http.path=cliservice
>  username password org.apache.hive.jdbc.HiveDriver
> Connecting to 
> jdbc:hive2://localhost:10007/;sasl.qop=auth?hive.server2.transport.mode=http;hive.server2.thrift.http.path=cliservice
> 14/10/07 16:22:24 INFO jdbc.Utils: Supplied authorities: localhost:10001
> 14/10/07 16:22:24 WARN jdbc.Utils: ***** JDBC param deprecation *****
> 14/10/07 16:22:24 WARN jdbc.Utils: The use of sasl.qop is deprecated.
> 14/10/07 16:22:24 WARN jdbc.Utils: Please use saslQop like so: 
> jdbc:hive2://<host>:<port>/dbName;saslQop=<qop_value>
> 14/10/07 16:22:24 WARN jdbc.Utils: ***** JDBC param deprecation *****
> 14/10/07 16:22:24 WARN jdbc.Utils: The use of hive.server2.transport.mode is 
> deprecated.
> 14/10/07 16:22:24 WARN jdbc.Utils: Please use transportMode like so: 
> jdbc:hive2://<host>:<port>/dbName;transportMode=<transport_mode_value>
> 14/10/07 16:22:24 WARN jdbc.Utils: ***** JDBC param deprecation *****
> 14/10/07 16:22:24 WARN jdbc.Utils: The use of hive.server2.thrift.http.path 
> is deprecated.
> 14/10/07 16:22:24 WARN jdbc.Utils: Please use httpPath like so: 
> jdbc:hive2://<host>:<port>/dbName;httpPath=<http_path_value>
> Connected to: Apache Hive (version 0.14.0-SNAPSHOT)
> Driver: Hive JDBC (version 0.14.0-SNAPSHOT)
> Transaction isolation: TRANSACTION_REPEATABLE_READ
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to