Explorar el Código

[FIX-#4592]Fix that the worker group management IP is not displayed correctly. (#4620)


Co-authored-by: zt-1997 <“18841012545@163.com”>
zt-1997 hace 4 años
padre
commit
afd201e6fa

+ 60 - 49
ambari_plugin/common-services/DOLPHIN/1.3.3/configuration/dolphin-worker.xml

@@ -15,53 +15,64 @@
   ~ limitations under the License.
   -->
 <configuration>
-	<property>
-		<name>worker.exec.threads</name>
-		<value>100</value>
-		<value-attributes>
-			<type>int</type>
-		</value-attributes>
-		<description>worker execute thread num</description>
-		<on-ambari-upgrade add="true"/>
-	</property>
-	<property>
-		<name>worker.heartbeat.interval</name>
-		<value>10</value>
-		<value-attributes>
-			<type>int</type>
-		</value-attributes>
-		<description>worker heartbeat interval</description>
-		<on-ambari-upgrade add="true"/>
-	</property>
-	<property>
-		<name>worker.max.cpuload.avg</name>
-		<value>100</value>
-		<value-attributes>
-			<type>int</type>
-		</value-attributes>
-		<description>only less than cpu avg load, worker server can work. default value : the number of cpu cores * 2</description>
-		<on-ambari-upgrade add="true"/>
-	</property>
-	<property>
-		<name>worker.reserved.memory</name>
-		<value>0.3</value>
-		<description>only larger than reserved memory, worker server can work. default value : physical memory * 1/10, unit is G.</description>
-		<on-ambari-upgrade add="true"/>
-	</property>
-
-	<property>
-		<name>worker.listen.port</name>
-		<value>1234</value>
-		<value-attributes>
-			<type>int</type>
-		</value-attributes>
-		<description>worker listen port</description>
-		<on-ambari-upgrade add="true"/>
-	</property>
-	<property>
-		<name>worker.groups</name>
-		<value>default</value>
-		<description>default worker group</description>
-		<on-ambari-upgrade add="true"/>
-	</property>
+    <property>
+        <name>worker.exec.threads</name>
+        <value>100</value>
+        <value-attributes>
+            <type>int</type>
+        </value-attributes>
+        <description>worker execute thread num</description>
+        <on-ambari-upgrade add="true"/>
+    </property>
+    <property>
+        <name>worker.heartbeat.interval</name>
+        <value>10</value>
+        <value-attributes>
+            <type>int</type>
+        </value-attributes>
+        <description>worker heartbeat interval</description>
+        <on-ambari-upgrade add="true"/>
+    </property>
+    <property>
+        <name>worker.max.cpuload.avg</name>
+        <value>100</value>
+        <value-attributes>
+            <type>int</type>
+        </value-attributes>
+        <description>only less than cpu avg load, worker server can work. default value : the number of cpu cores * 2
+        </description>
+        <on-ambari-upgrade add="true"/>
+    </property>
+    <property>
+        <name>worker.reserved.memory</name>
+        <value>0.3</value>
+        <description>only larger than reserved memory, worker server can work. default value : physical memory * 1/10,
+            unit is G.
+        </description>
+        <on-ambari-upgrade add="true"/>
+    </property>
+    <property>
+        <name>worker.listen.port</name>
+        <value>1234</value>
+        <value-attributes>
+            <type>int</type>
+        </value-attributes>
+        <description>worker listen port</description>
+        <on-ambari-upgrade add="true"/>
+    </property>
+    <property>
+        <name>worker.groups</name>
+        <value>default</value>
+        <description>default worker group</description>
+        <on-ambari-upgrade add="true"/>
+    </property>
+    <property>
+        <name>worker.weigth</name>
+        <value>100</value>
+        <value-attributes>
+            <type>int</type>
+        </value-attributes>
+        <description>worker weight</description>
+        <on-ambari-upgrade add="true"/>
+    </property>
 </configuration>

+ 7 - 5
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkerGroupService.java

@@ -153,19 +153,21 @@ public class WorkerGroupService extends BaseService {
             }
         }
 
-        // available workerGroup list
-        List<String> availableWorkerGroupList = new ArrayList<>();
-
         for (String workerGroup : workerGroupList) {
             String workerGroupPath = workerPath + "/" + workerGroup;
             List<String> childrenNodes = zookeeperCachedOperator.getChildrenKeys(workerGroupPath);
+            String timeStamp = "";
+            for (int i = 0; i < childrenNodes.size(); i++) {
+                String ip = childrenNodes.get(i);
+                childrenNodes.set(i, ip.substring(0, ip.lastIndexOf(":")));
+                timeStamp = ip.substring(ip.lastIndexOf(":"));
+            }
             if (CollectionUtils.isNotEmpty(childrenNodes)) {
-                availableWorkerGroupList.add(workerGroup);
                 WorkerGroup wg = new WorkerGroup();
                 wg.setName(workerGroup);
                 if (isPaging) {
                     wg.setIpList(childrenNodes);
-                    String registeredIpValue = zookeeperCachedOperator.get(workerGroupPath + "/" + childrenNodes.get(0));
+                    String registeredIpValue = zookeeperCachedOperator.get(workerGroupPath + "/" + childrenNodes.get(0) + timeStamp);
                     wg.setCreateTime(DateUtils.stringToDate(registeredIpValue.split(",")[6]));
                     wg.setUpdateTime(DateUtils.stringToDate(registeredIpValue.split(",")[7]));
                 }