public static JdbcConnectionParams parseURL(String uri, Properties info)
      throws JdbcUriParseException, SQLException, ZooKeeperHiveClientException {
    JdbcConnectionParams connParams = extractURLComponents(uri, info);
    if (ZooKeeperHiveClientHelper.isZkDynamicDiscoveryMode(connParams.getSessionVars())) {
      configureConnParamsFromZooKeeper(connParams);
    }
    handleAllDeprecations(connParams);
    return connParams;
  }
Parse JDBC connection URL
The new format of the URL is:
jdbc:hive2://&lt;host1&gt;:&lt;port1&gt;,&lt;host2&gt;:&lt;port2&gt;/dbName;sess_var_list?hive_conf_list#hive_var_list
where the optional sess, conf and var lists are semicolon separated &lt;key&gt;=&lt;val&gt; pairs.
For utilizing dynamic service discovery with HiveServer2 multiple comma separated host:port pairs can
be specified as shown above.
The JDBC driver resolves the list of uris and picks a specific server instance to connect to.
Currently, dynamic service discovery using ZooKeeper is supported, in which case the host:port pairs represent a ZooKeeper ensemble.

As before, if the host/port is not specified, it the driver runs an embedded hive.
examples -
 jdbc:hive2://ubuntu:11000/db2?hive.cli.conf.printheader=true;hive.exec.mode.local.auto.inputbytes.max=9999#stab=salesTable;icol=customerID
 jdbc:hive2://?hive.cli.conf.printheader=true;hive.exec.mode.local.auto.inputbytes.max=9999#stab=salesTable;icol=customerID
 jdbc:hive2://ubuntu:11000/db2;user=foo;password=bar

 Connect to http://server:10001/hs2, with specified basicAuth credentials and initial database:
 jdbc:hive2://server:10001/db;user=foo;password=bar?hive.server2.transport.mode=http;hive.server2.thrift.http.path=hs2

@param uri
@return
@throws SQLException
jdbc/src/java/org/apache/hive/jdbc/Utils.java