You are viewing a plain text version of this content. The canonical link for it is here.
Posted to gitbox@hive.apache.org by "tanishq-chugh (via GitHub)" <gi...@apache.org> on 2026/10/23 06:43:22 UTC
Re: [PR] HIVE-29685: Fix LLAP UI status for non-YARN deployments [hive]
tanishq-chugh commented on code in PR #6656:
URL: https://github.com/apache/hive/pull/6656#discussion_r4356831470
##########
llap-server/src/java/org/apache/hadoop/hive/llap/cli/status/LlapStatusServiceDriver.java:
##########
@@ -488,6 +532,99 @@ private ExitCode populateAppStatusFromLlapRegistry(AppStatusBuilder appStatusBui
return ExitCode.SUCCESS;
}
+ static boolean isLlapDaemonWebResponsive(String statusUrl) {
+ if (StringUtils.isBlank(statusUrl)) {
+ return false;
+ }
+ HttpURLConnection conn = null;
+ try {
+ conn = (HttpURLConnection) new URL(statusUrl).openConnection();
+ conn.setRequestMethod("GET");
+ conn.setConnectTimeout(FIXED_REGISTRY_STATUS_CHECK_TIMEOUT_MS);
+ conn.setReadTimeout(FIXED_REGISTRY_STATUS_CHECK_TIMEOUT_MS);
+ int responseCode = conn.getResponseCode();
+ return responseCode >= HttpURLConnection.HTTP_OK
+ && responseCode < HttpURLConnection.HTTP_MULT_CHOICE;
+ } catch (IOException e) {
+ LOG.debug("LLAP daemon status check failed for {}: {}", statusUrl, e.toString());
+ return false;
+ } finally {
+ if (conn != null) {
+ conn.disconnect();
+ }
+ }
+ }
+
+ static LlapInstance createLlapInstanceFromRegistry(LlapServiceInstance serviceInstance) {
+ String containerId = serviceInstance.getProperties().get(
+ HiveConf.ConfVars.LLAP_DAEMON_CONTAINER_ID.varname);
+ if (StringUtils.isBlank(containerId)) {
+ containerId = serviceInstance.getWorkerIdentity();
+ }
+ LlapInstance llapInstance = new LlapInstance(serviceInstance.getHost(), containerId);
+ llapInstance.setMgmtPort(serviceInstance.getManagementPort());
+ llapInstance.setRpcPort(serviceInstance.getRpcPort());
+ llapInstance.setShufflePort(serviceInstance.getShufflePort());
+ llapInstance.setWebUrl(serviceInstance.getServicesAddress());
+ llapInstance.setStatusUrl(serviceInstance.getServicesAddress() + "/status");
+ return llapInstance;
+ }
+
+ static void updateStateFromInstanceCounts(AppStatusBuilder appStatusBuilder, int liveInstances) {
+ Integer desiredInstances = appStatusBuilder.getDesiredInstances();
+ if (desiredInstances != null && liveInstances >= desiredInstances) {
+ appStatusBuilder.setState(State.RUNNING_ALL);
+ } else if (liveInstances > 0) {
+ appStatusBuilder.setState(State.RUNNING_PARTIAL);
+ } else {
+ appStatusBuilder.setState(State.LAUNCHING);
+ }
+ }
+
+ /**
+ * Configures {@link #llapRegistryConf} for {@link LlapRegistryService}. Preserves a comma-separated
+ * host list for {@code LlapFixedRegistryImpl}; uses {@code @appName} for ZK registry otherwise.
+ */
+ static void configureLlapRegistryHosts(Configuration conf, Configuration llapRegistryConf, String appName) {
+ String configuredHosts = HiveConf.getTrimmedVar(conf, HiveConf.ConfVars.LLAP_DAEMON_SERVICE_HOSTS);
+ if (configuredHosts != null && !configuredHosts.startsWith("@")) {
+ llapRegistryConf.set(HiveConf.ConfVars.LLAP_DAEMON_SERVICE_HOSTS.varname, configuredHosts);
+ } else {
+ llapRegistryConf.set(HiveConf.ConfVars.LLAP_DAEMON_SERVICE_HOSTS.varname, "@" + appName);
+ }
+ }
Review Comment:
Initially if the `appName` was passed as the cli param, it was being directly set in `llapRegistryConf`, can this cause the user value to be ignored in case of non-dynamic registry here?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: gitbox-unsubscribe@hive.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: gitbox-unsubscribe@hive.apache.org
For additional commands, e-mail: gitbox-help@hive.apache.org