This is an automated email from the ASF dual-hosted git repository.
eladkal pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 30524f85c44 make hive cli `zooKeeperNamespace` and `ssl` parameters
configurable (#63193)
30524f85c44 is described below
commit 30524f85c44a839aa9cabcec05cd61ead8045692
Author: Elad Kalif <[email protected]>
AuthorDate: Mon Mar 9 18:45:38 2026 +0200
make hive cli `zooKeeperNamespace` and `ssl` parameters configurable
(#63193)
* make hive cli zooKeeperNamespace and Ssl parameters configurable
* fix static checks
* Update
providers/apache/hive/src/airflow/providers/apache/hive/hooks/hive.py
Co-authored-by: GPK <[email protected]>
* fix tests
---------
Co-authored-by: romsharon98 <[email protected]>
Co-authored-by: Jarek Potiuk <[email protected]>
Co-authored-by: GPK <[email protected]>
---
providers/apache/hive/docs/connections/hive_cli.rst | 6 ++++++
.../hive/src/airflow/providers/apache/hive/hooks/hive.py | 10 +++++++++-
.../apache/hive/tests/unit/apache/hive/hooks/test_hive.py | 12 ++++++++----
3 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/providers/apache/hive/docs/connections/hive_cli.rst
b/providers/apache/hive/docs/connections/hive_cli.rst
index 5e88df971d9..00807a07502 100644
--- a/providers/apache/hive/docs/connections/hive_cli.rst
+++ b/providers/apache/hive/docs/connections/hive_cli.rst
@@ -77,6 +77,12 @@ High Availability (optional)
Specify as ``True`` if you want to connect to a Hive installation running
in high
availability mode. Specify host accordingly.
+Ssl (optional)
+ Specify as ``True`` to enable SSL for your high availability connection.
+
+Zoo Keeper Namespace (optional)
+ Zoo keeper namespace for high availability.
+
When specifying the connection in environment variable you should specify
it using URI syntax.
diff --git
a/providers/apache/hive/src/airflow/providers/apache/hive/hooks/hive.py
b/providers/apache/hive/src/airflow/providers/apache/hive/hooks/hive.py
index 5745c5e4a61..efa0397c0d7 100644
--- a/providers/apache/hive/src/airflow/providers/apache/hive/hooks/hive.py
+++ b/providers/apache/hive/src/airflow/providers/apache/hive/hooks/hive.py
@@ -140,6 +140,10 @@ class HiveCliHook(BaseHook):
lazy_gettext("Principal"), widget=BS3TextFieldWidget(),
default="hive/[email protected]"
),
"high_availability": BooleanField(lazy_gettext("High Availability
mode"), default=False),
+ "ssl": BooleanField(lazy_gettext("Ssl"), default=True),
+ "zoo_keeper_namespace": StringField(
+ lazy_gettext("Zoo Keeper Namespace"),
widget=BS3TextFieldWidget(), default="hiveserver2"
+ ),
}
@classmethod
@@ -188,7 +192,11 @@ class HiveCliHook(BaseHook):
if self.high_availability:
if not jdbc_url.endswith(";"):
jdbc_url += ";"
- jdbc_url +=
"serviceDiscoveryMode=zooKeeper;ssl=true;zooKeeperNamespace=hiveserver2"
+ ssl = conn.extra_dejson.get("ssl", True)
+ zoo_keeper_namespace =
conn.extra_dejson.get("zoo_keeper_namespace", "hiveserver2")
+ jdbc_url += (
+
f"serviceDiscoveryMode=zooKeeper;ssl={ssl};zooKeeperNamespace={zoo_keeper_namespace}"
+ )
elif self.auth:
jdbc_url += ";auth=" + self.auth
diff --git a/providers/apache/hive/tests/unit/apache/hive/hooks/test_hive.py
b/providers/apache/hive/tests/unit/apache/hive/hooks/test_hive.py
index beb82a926b0..94a573a2259 100644
--- a/providers/apache/hive/tests/unit/apache/hive/hooks/test_hive.py
+++ b/providers/apache/hive/tests/unit/apache/hive/hooks/test_hive.py
@@ -1023,18 +1023,22 @@ class TestHiveCli:
[
(
{"high_availability": "true"},
-
"serviceDiscoveryMode=zooKeeper;ssl=true;zooKeeperNamespace=hiveserver2",
+
"serviceDiscoveryMode=zooKeeper;ssl=True;zooKeeperNamespace=hiveserver2",
),
(
{"high_availability": "false"},
-
"serviceDiscoveryMode=zooKeeper;ssl=true;zooKeeperNamespace=hiveserver2",
+
"serviceDiscoveryMode=zooKeeper;ssl=True;zooKeeperNamespace=hiveserver2",
),
- ({},
"serviceDiscoveryMode=zooKeeper;ssl=true;zooKeeperNamespace=hiveserver2"),
+ (
+ {"high_availability": "true", "ssl": "false",
"zoo_keeper_namespace": "custom_hive_server"},
+
"serviceDiscoveryMode=zooKeeper;ssl=false;zooKeeperNamespace=custom_hive_server",
+ ),
+ ({},
"serviceDiscoveryMode=zooKeeper;ssl=True;zooKeeperNamespace=hiveserver2"),
# with proxy user
(
{"proxy_user": "a_user_proxy", "high_availability": "true"},
"hive.server2.proxy.user=a_user_proxy;"
-
"serviceDiscoveryMode=zooKeeper;ssl=true;zooKeeperNamespace=hiveserver2",
+
"serviceDiscoveryMode=zooKeeper;ssl=True;zooKeeperNamespace=hiveserver2",
),
],
)