This is an automated email from the ASF dual-hosted git repository.

kirs pushed a commit to branch 1.3.7-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/1.3.7-prepare by this push:
     new 246dc92  [1.3.7-prepare#5256][Improvement][common]Task status error 
(#5862)
246dc92 is described below

commit 246dc92c46990d8023c27baf54414e074527f787
Author: Kirs <[email protected]>
AuthorDate: Thu Jul 22 10:24:08 2021 +0800

    [1.3.7-prepare#5256][Improvement][common]Task status error (#5862)
    
    * [1.3.7-prepare#5256][Improvement][common]Task status error
    issue #5026
    pr #5256
    
    * improvement
---
 .../apache/dolphinscheduler/common/Constants.java  |  9 ++++++
 .../dolphinscheduler/common/utils/HadoopUtils.java | 37 ++++++++++------------
 .../src/main/resources/common.properties           |  4 ++-
 3 files changed, 29 insertions(+), 21 deletions(-)

diff --git 
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
 
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
index fe83fa1..e8447fa 100644
--- 
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
+++ 
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
@@ -104,6 +104,11 @@ public final class Constants {
     public static final String YARN_APPLICATION_STATUS_ADDRESS = 
"yarn.application.status.address";
 
     /**
+     * yarn.job.history.status.address
+     */
+    public static final String YARN_JOB_HISTORY_STATUS_ADDRESS = 
"yarn.job.history.status.address";
+
+    /**
      * hdfs configuration
      * hdfs.root.user
      */
@@ -792,6 +797,10 @@ public final class Constants {
      */
     public static final String HADOOP_SECURITY_AUTHENTICATION_STARTUP_STATE = 
"hadoop.security.authentication.startup.state";
 
+    /**
+     * com.amazonaws.services.s3.enableV4
+     */
+    public static final String AWS_S3_V4 = 
"com.amazonaws.services.s3.enableV4";
 
     /**
      * loginUserFromKeytab user
diff --git 
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HadoopUtils.java
 
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HadoopUtils.java
index ffead0b..b558ec3 100644
--- 
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HadoopUtils.java
+++ 
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HadoopUtils.java
@@ -70,6 +70,7 @@ public class HadoopUtils implements Closeable {
     public static final String resourceUploadPath = 
PropertyUtils.getString(RESOURCE_UPLOAD_PATH, "/dolphinscheduler");
     public static final String rmHaIds = 
PropertyUtils.getString(Constants.YARN_RESOURCEMANAGER_HA_RM_IDS);
     public static final String appAddress = 
PropertyUtils.getString(Constants.YARN_APPLICATION_STATUS_ADDRESS);
+    public static final String jobHistoryAddress = 
PropertyUtils.getString(Constants.YARN_JOB_HISTORY_STATUS_ADDRESS);
 
     private static final String HADOOP_UTILS_KEY = "HADOOP_UTILS_KEY";
 
@@ -122,7 +123,7 @@ public class HadoopUtils implements Closeable {
         try {
             configuration = new HdfsConfiguration();
 
-            String resourceStorageType = 
PropertyUtils.getString(Constants.RESOURCE_STORAGE_TYPE);
+            String resourceStorageType = 
PropertyUtils.getUpperCaseString(Constants.RESOURCE_STORAGE_TYPE);
             ResUploadType resUploadType = 
ResUploadType.valueOf(resourceStorageType);
 
             if (resUploadType == ResUploadType.HDFS){
@@ -155,22 +156,18 @@ public class HadoopUtils implements Closeable {
                     logger.info("get property:{} -> {}, from core-site.xml 
hdfs-site.xml ", Constants.FS_DEFAULTFS, defaultFS);
                 }
 
-                if (fs == null) {
                     if (StringUtils.isNotEmpty(hdfsUser)) {
                         UserGroupInformation ugi = 
UserGroupInformation.createRemoteUser(hdfsUser);
-                        ugi.doAs(new PrivilegedExceptionAction<Boolean>() {
-                            @Override
-                            public Boolean run() throws Exception {
+                    ugi.doAs((PrivilegedExceptionAction<Boolean>) () -> {
                                 fs = FileSystem.get(configuration);
                                 return true;
-                            }
                         });
                     } else {
                         logger.warn("hdfs.root.user is not set value!");
                         fs = FileSystem.get(configuration);
                     }
-                }
             } else if (resUploadType == ResUploadType.S3) {
+                System.setProperty(Constants.AWS_S3_V4, Constants.STRING_TRUE);
                 configuration.set(Constants.FS_DEFAULTFS, 
PropertyUtils.getString(Constants.FS_DEFAULTFS));
                 configuration.set(Constants.FS_S3A_ENDPOINT, 
PropertyUtils.getString(Constants.FS_S3A_ENDPOINT));
                 configuration.set(Constants.FS_S3A_ACCESS_KEY, 
PropertyUtils.getString(Constants.FS_S3A_ACCESS_KEY));
@@ -204,23 +201,23 @@ public class HadoopUtils implements Closeable {
          *  if rmHaIds is empty, single resourcemanager enabled
          *  if rmHaIds not empty: resourcemanager HA enabled
          */
-        String appUrl = "";
 
-        if (StringUtils.isEmpty(rmHaIds)) {
-            //single resourcemanager enabled
-            appUrl = appAddress;
-            yarnEnabled = true;
-        } else {
-            //resourcemanager HA enabled
-            appUrl = getAppAddress(appAddress, rmHaIds);
             yarnEnabled = true;
-            logger.info("application url : {}", appUrl);
-        }
-
+        String appUrl = StringUtils.isEmpty(rmHaIds) ? appAddress : 
getAppAddress(appAddress, rmHaIds);
         if (StringUtils.isBlank(appUrl)) {
-            throw new Exception("application url is blank");
+            throw new Exception("yarn application url generation failed");
+        }
+        if (logger.isDebugEnabled()) {
+            logger.debug("yarn application url:{}, applicationId:{}", appUrl, 
applicationId);
         }
-        return String.format(appUrl, applicationId);
+        String activeResourceManagerPort = 
PropertyUtils.getString(Constants.HADOOP_RESOURCE_MANAGER_HTTPADDRESS_PORT, 
"8088");
+        return String.format(appUrl, activeResourceManagerPort, applicationId);
+    }
+
+    public String getJobHistoryUrl(String applicationId) {
+        //eg:application_1587475402360_712719 -> job_1587475402360_712719
+        String jobId = applicationId.replace("application", "job");
+        return String.format(jobHistoryAddress, jobId);
     }
 
     /**
diff --git a/dolphinscheduler-common/src/main/resources/common.properties 
b/dolphinscheduler-common/src/main/resources/common.properties
index 5bb7c39..b658029 100644
--- a/dolphinscheduler-common/src/main/resources/common.properties
+++ b/dolphinscheduler-common/src/main/resources/common.properties
@@ -61,7 +61,9 @@ fs.s3a.secret.key=OloCLq3n+8+sdPHUhJ21XrSxTC+JK
 yarn.resourcemanager.ha.rm.ids=192.168.xx.xx,192.168.xx.xx
 
 # if resourcemanager HA is enabled or not use resourcemanager, please keep the 
default value; If resourcemanager is single, you only need to replace ds1 to 
actual resourcemanager hostname
-yarn.application.status.address=http://ds1:8088/ws/v1/cluster/apps/%s
+yarn.application.status.address=http://ds1:%s/ws/v1/cluster/apps/%s
+# if custom you resourcemanager port ,you need to replace 8088 else default 
value.
+resource.manager.httpaddress.port=8088
 
 # system env path
 #dolphinscheduler.env.path=env/dolphinscheduler_env.sh

Reply via email to