You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ro...@apache.org on 2019/02/27 05:11:37 UTC
[hadoop] 02/02: YARN-8378.
ApplicationHistoryManagerImpl#getApplications doesn't honor filters.
Contributed by Lantao Jin.
This is an automated email from the ASF dual-hosted git repository.
rohithsharmaks pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git
commit 6c96f5e4b6aec05e9ce74bb229a317cdf95f5d40
Author: Rohith Sharma K S <ro...@apache.org>
AuthorDate: Wed Feb 27 10:32:58 2019 +0530
YARN-8378. ApplicationHistoryManagerImpl#getApplications doesn't honor filters. Contributed by Lantao Jin.
---
.../ApplicationHistoryManagerImpl.java | 10 ++++++++++
.../ApplicationHistoryStoreTestUtils.java | 6 ++++++
.../TestApplicationHistoryManagerImpl.java | 21 +++++++++++++++++++++
3 files changed, 37 insertions(+)
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryManagerImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryManagerImpl.java
index 48a7294..385b806 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryManagerImpl.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryManagerImpl.java
@@ -104,10 +104,20 @@ public class ApplicationHistoryManagerImpl extends AbstractService implements
historyStore.getAllApplications();
HashMap<ApplicationId, ApplicationReport> applicationsReport =
new HashMap<ApplicationId, ApplicationReport>();
+ int count = 0;
for (Entry<ApplicationId, ApplicationHistoryData> entry : histData
.entrySet()) {
+ if (count == appsNum) {
+ break;
+ }
+ long appStartTime = entry.getValue().getStartTime();
+ if (appStartTime < appStartedTimeBegin
+ || appStartTime > appStartedTimeEnd) {
+ continue;
+ }
applicationsReport.put(entry.getKey(),
convertToApplicationReport(entry.getValue()));
+ count++;
}
return applicationsReport;
}
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryStoreTestUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryStoreTestUtils.java
index de4051a..a6511de 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryStoreTestUtils.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryStoreTestUtils.java
@@ -47,6 +47,12 @@ public class ApplicationHistoryStoreTestUtils {
appId.toString(), "test type", "test queue", "test user", 0, 0));
}
+ protected void writeApplicationStartData(ApplicationId appId, long startTime)
+ throws IOException {
+ store.applicationStarted(ApplicationStartData.newInstance(appId,
+ appId.toString(), "test type", "test queue", "test user", 0, startTime));
+ }
+
protected void writeApplicationFinishData(ApplicationId appId)
throws IOException {
store.applicationFinished(ApplicationFinishData.newInstance(appId, 0,
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/TestApplicationHistoryManagerImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/TestApplicationHistoryManagerImpl.java
index fec2bf3..da5ddc1 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/TestApplicationHistoryManagerImpl.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/TestApplicationHistoryManagerImpl.java
@@ -19,6 +19,7 @@
package org.apache.hadoop.yarn.server.applicationhistoryservice;
import java.io.IOException;
+import java.util.Map;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
@@ -71,4 +72,24 @@ public class TestApplicationHistoryManagerImpl extends
Assert.assertEquals("test type", appReport.getApplicationType().toString());
Assert.assertEquals("test queue", appReport.getQueue().toString());
}
+
+ @Test
+ public void testApplications() throws IOException {
+ ApplicationId appId1 = ApplicationId.newInstance(0, 1);
+ ApplicationId appId2 = ApplicationId.newInstance(0, 2);
+ ApplicationId appId3 = ApplicationId.newInstance(0, 3);
+ writeApplicationStartData(appId1, 1000);
+ writeApplicationFinishData(appId1);
+ writeApplicationStartData(appId2, 3000);
+ writeApplicationFinishData(appId2);
+ writeApplicationStartData(appId3, 4000);
+ writeApplicationFinishData(appId3);
+ Map<ApplicationId, ApplicationReport> reports =
+ applicationHistoryManagerImpl.getApplications(2, 2000L, 5000L);
+ Assert.assertNotNull(reports);
+ Assert.assertEquals(2, reports.size());
+ Assert.assertNull(reports.get("1"));
+ Assert.assertNull(reports.get("2"));
+ Assert.assertNull(reports.get("3"));
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org