// No username/password required with auth=noSasl try (Connection conn = DriverManager.getConnection(jdbcUrl, "", ""); Statement stmt = conn.createStatement()) String sql = "SHOW TABLES"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) System.out.println(rs.getString(1));
jdbc:hive2://hive-prod.myco.com:10000/sales_db;auth=noSasl Maven (pom.xml):
a) No SASL (plain, insecure – test only) jdbc:hive2://host:10000/default;auth=noSasl Use empty user/pass. b) Kerberos (production, secure) jdbc:hive2://host:10000/default;principal=hive/_HOST@REALM.COM Java side: hive server address java
System.setProperty("java.security.krb5.conf", "/etc/krb5.conf"); System.setProperty("sun.security.krb5.debug", "true"); // optional String url = "jdbc:hive2://host:10000/default;principal=hive/host@YOUR.REALM"; Connection conn = DriverManager.getConnection(url); jdbc:hive2://host:10000/default;user=alice;password=secret Or provide via DriverManager.getConnection(url, "alice", "secret") . d) HTTP Mode (for firewalls / load balancers) jdbc:hive2://host:10001/default;transportMode=http;httpPath=cliservice 6. Common Connection Errors & Fixes | Error | Likely cause | Fix | |------------------------------------|---------------------------------------|--------------------------------------| | Could not open client transport | Wrong port / HS2 not running | Check with netstat -tulnp \| grep 10000 | | SASL negotiation failure | Missing auth=noSasl or Kerberos | Use correct auth parameter | | No appropriate protocol | Hive version mismatch (TLS) | Match hive-jdbc version with server | | Peer indicated failure: Unsupported mechanism type PLAIN | Server expects Kerberos/LDAP | Use auth=noSasl only if server allows | 7. Advanced: High Availability (ZooKeeper) If Hive is configured with ZooKeeper service discovery:
beeline -u "jdbc:hive2://<host>:<port>/<db>;auth=noSasl" Or with Kerberos: Common Connection Errors & Fixes | Error |
Here’s a full, step‑by‑step guide to working with – covering connection URLs, configuration, authentication, and code examples. 1. Hive Server Address Formats a) Hive Server 2 (HS2) – Default since Hive 0.11 HS2 supports multiple clients, including JDBC (Java).
beeline -u "jdbc:hive2://<host>:<port>/<db>;principal=hive/_HOST@REALM" If beeline works, your Java code will too. | Component | Value / Pattern | |--------------------|-------------------------------------------------------| | JDBC prefix | jdbc:hive2:// | | Host:Port | <hive-server>:10000 (or HTTP 10001) | | Auth param | auth=noSasl / principal=... / user=... | | Transport mode | binary (default) or transportMode=http | | HA (ZooKeeper) | serviceDiscoveryMode=zooKeeper + ZooKeeper hosts | | Java driver | org.apache.hive.jdbc.HiveDriver (auto-loaded) | Hive Server Address Formats a) Hive Server 2
Use beeline (Hive’s JDBC client) to validate your address: