You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ni...@apache.org on 2020/02/07 14:26:14 UTC
[kylin] 19/44: KYLIN-4295 Instances displayed on Query Node are
inconsistent with Job Node
This is an automated email from the ASF dual-hosted git repository.
nic pushed a commit to branch 3.0.x
in repository https://gitbox.apache.org/repos/asf/kylin.git
commit a877fee84a0b4a13afa28a2cb78faeea7e663510
Author: yaqian.zhang <59...@qq.com>
AuthorDate: Mon Dec 23 15:01:39 2019 +0800
KYLIN-4295 Instances displayed on Query Node are inconsistent with Job Node
---
.../ServiceDiscoveryStateController.java | 29 ++++++++++++++--------
webapp/app/js/controllers/instances.js | 2 +-
2 files changed, 19 insertions(+), 12 deletions(-)
diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/ServiceDiscoveryStateController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/ServiceDiscoveryStateController.java
index a315694..42d6cc7 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/controller/ServiceDiscoveryStateController.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/controller/ServiceDiscoveryStateController.java
@@ -63,6 +63,8 @@ public class ServiceDiscoveryStateController extends BasicController {
checkCuratorSchedulerEnabled();
Set<String> allNodes = new HashSet<>();
Set<String> queryNodes = new HashSet<>();
+ Set<String> jobNodes = new HashSet<>();
+ Set<String> leaders = new HashSet<>();
// get all nodes and query nodes
for (String serverWithMode : KylinConfig.getInstanceFromEnv().getRestServersWithMode()) {
@@ -75,19 +77,24 @@ public class ServiceDiscoveryStateController extends BasicController {
if (mode.equals("query") || mode.equals("all")) {
queryNodes.add(server);
}
+ if (mode.equals("job") || mode.equals("all")) {
+ jobNodes.add(server);
+ }
}
// Get all selection participants(only job nodes will participate in the election) and selected leaders
Set<Participant> allParticipants = serviceDiscoveryStateService.getAllParticipants();
- Set<String> jobNodes = allParticipants.stream() //
- .map(Participant::getId) //
- .collect(Collectors.toSet()); //
-
- // There should only one leader, if there are more than one leader, means something wrong happened
- Set<String> leaders = allParticipants.stream() //
- .filter(Participant::isLeader) //
- .map(Participant::getId) //
- .collect(Collectors.toSet()); //
+ if (!allParticipants.isEmpty()) {
+ jobNodes = allParticipants.stream() //
+ .map(Participant::getId) //
+ .collect(Collectors.toSet()); //
+
+ // There should only one leader, if there are more than one leader, means something wrong happened
+ leaders = allParticipants.stream() //
+ .filter(Participant::isLeader) //
+ .map(Participant::getId) //
+ .collect(Collectors.toSet()); //
+ }
// Ask for other nodes for its job server state
// current Kylin only has one active job node
@@ -103,8 +110,8 @@ public class ServiceDiscoveryStateController extends BasicController {
// 100 means CuratorScheduler
// This monitor only meaningful to CuratorScheduler
if (KylinConfig.getInstanceFromEnv().getSchedulerType() != 100) {
- throw new UnsupportedOperationException("Only meaningful when scheduler is CuratorScheduler, " +
- "try set kylin.job.scheduler.default to 100 to enable CuratorScheduler.");
+ throw new UnsupportedOperationException("Only meaningful when scheduler is CuratorScheduler, "
+ + "try set kylin.job.scheduler.default to 100 to enable CuratorScheduler.");
}
}
diff --git a/webapp/app/js/controllers/instances.js b/webapp/app/js/controllers/instances.js
index 77b9245..1ff3e69 100644
--- a/webapp/app/js/controllers/instances.js
+++ b/webapp/app/js/controllers/instances.js
@@ -54,7 +54,7 @@ KylinApp
if ($scope.selectedLeaders.indexOf(node) >= 0) {
return "Job Node (Leader)";
} else {
- return "Job Node (Follower)";
+ return "Job Node";
}
}