You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@eagle.apache.org by qi...@apache.org on 2016/08/19 09:46:58 UTC

[4/4] incubator-eagle git commit: [EAGLE-467] Job list apis for querying jobs regardless of the status

[EAGLE-467] Job list apis for querying jobs regardless of the status

https://issues.apache.org/jira/browse/EAGLE-467

Author: Qingwen Zhao <qi...@gmail.com>
Author: Qingwen Zhao <qi...@ebay.com>

Closes #348 from qingwen220/jobAPI.


Project: http://git-wip-us.apache.org/repos/asf/incubator-eagle/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-eagle/commit/a20656b5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-eagle/tree/a20656b5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-eagle/diff/a20656b5

Branch: refs/heads/develop
Commit: a20656b5e26e3644a7d9a7cd591c4cdf91f8695c
Parents: acee5cb
Author: Qingwen Zhao <qi...@gmail.com>
Authored: Fri Aug 19 17:46:42 2016 +0800
Committer: Qingwen Zhao <qi...@gmail.com>
Committed: Fri Aug 19 17:46:42 2016 +0800

----------------------------------------------------------------------
 .../eagle/jpm/entity/JPMEntityRepository.java   |  30 --
 .../org/apache/eagle/jpm/entity/JobConfig.java  |  38 --
 .../org/apache/eagle/jpm/entity/SparkApp.java   | 428 ------------------
 .../apache/eagle/jpm/entity/SparkExecutor.java  | 233 ----------
 .../org/apache/eagle/jpm/entity/SparkJob.java   | 178 --------
 .../org/apache/eagle/jpm/entity/SparkStage.java | 299 -------------
 .../org/apache/eagle/jpm/entity/SparkTask.java  | 290 ------------
 .../mr/historyentity/JPAEntityRepository.java   |  40 ++
 .../jpm/mr/historyentity/JobBaseAPIEntity.java  |  24 +
 .../eagle/jpm/mr/historyentity/JobConfig.java   |  38 ++
 .../jpm/mr/historyentity/JobConfigSerDeser.java |  62 +++
 .../JobConfigurationAPIEntity.java              |  66 +++
 .../jpm/mr/historyentity/JobEventAPIEntity.java |  44 ++
 .../mr/historyentity/JobExecutionAPIEntity.java | 230 ++++++++++
 .../JobProcessTimeStampEntity.java              |  44 ++
 .../TaskAttemptCounterAPIEntity.java            |  61 +++
 .../TaskAttemptExecutionAPIEntity.java          | 101 +++++
 .../historyentity/TaskExecutionAPIEntity.java   |  92 ++++
 .../TaskFailureCountAPIEntity.java              |  67 +++
 .../mr/runningentity/JPMEntityRepository.java   |  33 ++
 .../eagle/jpm/mr/runningentity/JobConfig.java   |  26 ++
 .../jpm/mr/runningentity/JobConfigSerDeser.java |  46 ++
 .../mr/runningentity/JobExecutionAPIEntity.java | 437 +++++++++++++++++++
 .../TaskAttemptExecutionAPIEntity.java          | 137 ++++++
 .../runningentity/TaskExecutionAPIEntity.java   | 127 ++++++
 .../jpm/spark/crawl/JHFSparkEventReader.java    |   6 +-
 .../jpm/spark/entity/JPMEntityRepository.java   |  32 ++
 .../eagle/jpm/spark/entity/JobConfig.java       |  39 ++
 .../jpm/spark/entity/JobConfigSerDeser.java     |  46 ++
 .../apache/eagle/jpm/spark/entity/SparkApp.java | 429 ++++++++++++++++++
 .../eagle/jpm/spark/entity/SparkExecutor.java   | 234 ++++++++++
 .../apache/eagle/jpm/spark/entity/SparkJob.java | 179 ++++++++
 .../eagle/jpm/spark/entity/SparkStage.java      | 300 +++++++++++++
 .../eagle/jpm/spark/entity/SparkTask.java       | 291 ++++++++++++
 eagle-jpm/eagle-jpm-mr-history/pom.xml          |   5 +
 .../eagle/jpm/mr/history/MRHistoryJobMain.java  |   5 +-
 .../crawler/JobHistoryContentFilter.java        |   6 +-
 .../crawler/JobHistoryContentFilterBuilder.java |   8 +
 .../crawler/JobHistoryContentFilterImpl.java    |  11 +
 .../history/entities/JPAEntityRepository.java   |  40 --
 .../mr/history/entities/JobBaseAPIEntity.java   |  24 -
 .../jpm/mr/history/entities/JobConfig.java      |  38 --
 .../mr/history/entities/JobConfigSerDeser.java  |  62 ---
 .../entities/JobConfigurationAPIEntity.java     |  66 ---
 .../mr/history/entities/JobEventAPIEntity.java  |  44 --
 .../history/entities/JobExecutionAPIEntity.java | 220 ----------
 .../entities/JobProcessTimeStampEntity.java     |  44 --
 .../entities/TaskAttemptCounterAPIEntity.java   |  61 ---
 .../entities/TaskAttemptExecutionAPIEntity.java | 101 -----
 .../entities/TaskExecutionAPIEntity.java        |  89 ----
 .../entities/TaskFailureCountAPIEntity.java     |  67 ---
 .../HistoryJobEntityCreationListener.java       |   2 +-
 .../HistoryJobEntityLifecycleListener.java      |   2 +-
 .../mr/history/parser/JHFEventReaderBase.java   |  14 +-
 .../mr/history/parser/JHFMRVer1EventReader.java |   2 +-
 ...JobConfigurationCreationServiceListener.java |   4 +-
 .../JobEntityCreationEagleServiceListener.java  |   2 +-
 .../parser/JobEntityCreationPublisher.java      |   2 +-
 .../parser/JobEntityLifecycleAggregator.java    |   6 +-
 .../parser/TaskAttemptCounterListener.java      |   6 +-
 .../mr/history/parser/TaskFailureListener.java  |   6 +-
 .../jpm/mr/history/storm/JobHistorySpout.java   |   2 +-
 .../src/main/resources/application.conf         |  35 +-
 eagle-jpm/eagle-jpm-mr-running/pom.xml          |   5 +
 .../eagle/jpm/mr/running/MRRunningJobMain.java  |   1 +
 .../running/entities/JPMEntityRepository.java   |  32 --
 .../jpm/mr/running/entities/JobConfig.java      |  25 --
 .../running/entities/JobExecutionAPIEntity.java | 437 -------------------
 .../entities/TaskAttemptExecutionAPIEntity.java | 135 ------
 .../entities/TaskExecutionAPIEntity.java        | 136 ------
 .../parser/MRJobEntityCreationHandler.java      |  13 +-
 .../jpm/mr/running/parser/MRJobParser.java      |  37 +-
 .../JobExecutionMetricsCreationListener.java    |   4 +-
 .../TaskExecutionMetricsCreationListener.java   |   6 +-
 .../mr/running/recover/MRRunningJobManager.java |   2 +-
 .../running/storm/MRRunningJobFetchSpout.java   |   2 +-
 .../mr/running/storm/MRRunningJobParseBolt.java |   2 +-
 .../src/main/resources/application.conf         |   1 +
 eagle-jpm/eagle-jpm-service/pom.xml             |  48 ++
 .../service/jpm/MRJobExecutionResource.java     | 306 +++++++++++++
 .../service/jpm/MRJobTaskGroupResponse.java     |  41 ++
 .../service/jpm/TestMRJobExecutionResource.java |  99 +++++
 eagle-jpm/eagle-jpm-spark-history/pom.xml       | 199 +++++----
 eagle-jpm/eagle-jpm-util/pom.xml                |  20 -
 .../org/apache/eagle/jpm/util/Constants.java    |   7 +-
 .../java/org/apache/eagle/jpm/util/Utils.java   |   3 +-
 .../util/resourceFetch/RMResourceFetcher.java   | 118 ++---
 .../resourceFetch/ha/HAURLSelectorImpl.java     |   4 +-
 eagle-jpm/pom.xml                               |   1 +
 eagle-security/eagle-security-hive/pom.xml      | 154 +++----
 90 files changed, 4091 insertions(+), 3448 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/JPMEntityRepository.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/JPMEntityRepository.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/JPMEntityRepository.java
deleted file mode 100644
index f54688b..0000000
--- a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/JPMEntityRepository.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.eagle.jpm.entity;
-
-import org.apache.eagle.log.entity.repo.EntityRepository;
-
-public class JPMEntityRepository extends EntityRepository {
-    public JPMEntityRepository() {
-        entitySet.add(SparkApp.class);
-        entitySet.add(SparkJob.class);
-        entitySet.add(SparkStage.class);
-        entitySet.add(SparkTask.class);
-        entitySet.add(SparkExecutor.class);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/JobConfig.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/JobConfig.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/JobConfig.java
deleted file mode 100644
index de3bd7a..0000000
--- a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/JobConfig.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.eagle.jpm.entity;
-
-import java.io.Serializable;
-import java.util.Map;
-import java.util.TreeMap;
-
-public class JobConfig implements Serializable {
-    private Map<String, String> config = new TreeMap<>();
-
-    public Map<String, String> getConfig() {
-        return config;
-    }
-
-    public void setConfig(Map<String, String> config) {
-        this.config = config;
-    }
-    @Override
-    public String toString(){
-        return config.toString();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkApp.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkApp.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkApp.java
deleted file mode 100644
index 1760753..0000000
--- a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkApp.java
+++ /dev/null
@@ -1,428 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.eagle.jpm.entity;
-
-import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity;
-import org.apache.eagle.log.entity.meta.*;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.apache.eagle.jpm.util.Constants;
-
-@Table("eglesprk_apps")
-@ColumnFamily("f")
-@Prefix("sprkapp")
-@Service(Constants.SPARK_APP_SERVICE_ENDPOINT_NAME)
-@JsonIgnoreProperties(ignoreUnknown = true)
-@TimeSeries(true)
-@Tags({"site","sprkAppId", "sprkAppAttemptId", "sprkAppName", "normSprkAppName","user", "queue"})
-@Partition({"site"})
-public class SparkApp extends TaggedLogAPIEntity{
-
-    @Column("a")
-    private long  startTime;
-    @Column("b")
-    private long endTime;
-    @Column("c")
-    private String yarnState;
-    @Column("d")
-    private String yarnStatus;
-    @Column("e")
-    private JobConfig config;
-    @Column("f")
-    private int numJobs;
-    @Column("g")
-    private int totalStages;
-    @Column("h")
-    private int skippedStages;
-    @Column("i")
-    private int failedStages;
-    @Column("j")
-    private int totalTasks;
-    @Column("k")
-    private int skippedTasks;
-    @Column("l")
-    private int failedTasks;
-    @Column("m")
-    private int executors;
-    @Column("n")
-    private long inputBytes;
-    @Column("o")
-    private long inputRecords;
-    @Column("p")
-    private long outputBytes;
-    @Column("q")
-    private long outputRecords;
-    @Column("r")
-    private long shuffleReadBytes;
-    @Column("s")
-    private long shuffleReadRecords;
-    @Column("t")
-    private long shuffleWriteBytes;
-    @Column("u")
-    private long shuffleWriteRecords;
-    @Column("v")
-    private long executorDeserializeTime;
-    @Column("w")
-    private long executorRunTime;
-    @Column("x")
-    private long resultSize;
-    @Column("y")
-    private long jvmGcTime;
-    @Column("z")
-    private long resultSerializationTime;
-    @Column("ab")
-    private long memoryBytesSpilled;
-    @Column("ac")
-    private long diskBytesSpilled;
-    @Column("ad")
-    private long execMemoryBytes;
-    @Column("ae")
-    private long driveMemoryBytes;
-    @Column("af")
-    private int completeTasks;
-    @Column("ag")
-    private long totalExecutorTime;
-    @Column("ah")
-    private long executorMemoryOverhead;
-    @Column("ai")
-    private long driverMemoryOverhead;
-    @Column("aj")
-    private int executorCores;
-    @Column("ak")
-    private int driverCores;
-
-    public long getStartTime() {
-        return startTime;
-    }
-
-    public long getEndTime() {
-        return endTime;
-    }
-
-    public String getYarnState() {
-        return yarnState;
-    }
-
-    public String getYarnStatus() {
-        return yarnStatus;
-    }
-
-    public int getNumJobs() {
-        return numJobs;
-    }
-
-    public int getTotalStages() {
-        return totalStages;
-    }
-
-    public int getSkippedStages() {
-        return skippedStages;
-    }
-
-    public int getFailedStages() {
-        return failedStages;
-    }
-
-    public int getTotalTasks() {
-        return totalTasks;
-    }
-
-    public int getSkippedTasks() {
-        return skippedTasks;
-    }
-
-    public int getFailedTasks() {
-        return failedTasks;
-    }
-
-    public int getExecutors() {
-        return executors;
-    }
-
-    public long getInputBytes() {
-        return inputBytes;
-    }
-
-    public long getInputRecords() {
-        return inputRecords;
-    }
-
-    public long getOutputBytes() {
-        return outputBytes;
-    }
-
-    public long getOutputRecords() {
-        return outputRecords;
-    }
-
-    public long getShuffleReadBytes() {
-        return shuffleReadBytes;
-    }
-
-    public long getShuffleReadRecords() {
-        return shuffleReadRecords;
-    }
-
-    public long getShuffleWriteBytes() {
-        return shuffleWriteBytes;
-    }
-
-    public long getShuffleWriteRecords() {
-        return shuffleWriteRecords;
-    }
-
-    public long getExecutorDeserializeTime() {
-        return executorDeserializeTime;
-    }
-
-    public long getExecutorRunTime() {
-        return executorRunTime;
-    }
-
-    public long getResultSize() {
-        return resultSize;
-    }
-
-    public long getJvmGcTime() {
-        return jvmGcTime;
-    }
-
-    public long getResultSerializationTime() {
-        return resultSerializationTime;
-    }
-
-    public long getMemoryBytesSpilled() {
-        return memoryBytesSpilled;
-    }
-
-    public long getDiskBytesSpilled() {
-        return diskBytesSpilled;
-    }
-
-    public long getExecMemoryBytes() {
-        return execMemoryBytes;
-    }
-
-    public long getDriveMemoryBytes() {
-        return driveMemoryBytes;
-    }
-
-    public int getCompleteTasks(){ return completeTasks;}
-
-    public JobConfig getConfig() {
-        return config;
-    }
-    public void setStartTime(long startTime) {
-        this.startTime = startTime;
-        valueChanged("startTime");
-    }
-
-    public void setEndTime(long endTime) {
-        this.endTime = endTime;
-        valueChanged("endTime");
-    }
-
-    public void setYarnState(String yarnState) {
-        this.yarnState = yarnState;
-        valueChanged("yarnState");
-    }
-
-    public void setYarnStatus(String yarnStatus) {
-        this.yarnStatus = yarnStatus;
-        valueChanged("yarnStatus");
-    }
-
-    public void setConfig(JobConfig config) {
-        this.config = config;
-        valueChanged("config");
-    }
-
-    public void setNumJobs(int numJobs) {
-        this.numJobs = numJobs;
-        valueChanged("numJobs");
-    }
-
-    public void setTotalStages(int totalStages) {
-        this.totalStages = totalStages;
-        valueChanged("totalStages");
-    }
-
-    public void setSkippedStages(int skippedStages) {
-        this.skippedStages = skippedStages;
-        valueChanged("skippedStages");
-    }
-
-    public void setFailedStages(int failedStages) {
-        this.failedStages = failedStages;
-        valueChanged("failedStages");
-    }
-
-    public void setTotalTasks(int totalTasks) {
-        this.totalTasks = totalTasks;
-        valueChanged("totalTasks");
-    }
-
-    public void setSkippedTasks(int skippedTasks) {
-        this.skippedTasks = skippedTasks;
-        valueChanged("skippedTasks");
-    }
-
-    public void setFailedTasks(int failedTasks) {
-        this.failedTasks = failedTasks;
-        valueChanged("failedTasks");
-    }
-
-    public void setExecutors(int executors) {
-        this.executors = executors;
-        valueChanged("executors");
-    }
-
-    public void setInputBytes(long inputBytes) {
-        this.inputBytes = inputBytes;
-        valueChanged("inputBytes");
-    }
-
-    public void setInputRecords(long inputRecords) {
-        this.inputRecords = inputRecords;
-        valueChanged("inputRecords");
-    }
-
-    public void setOutputBytes(long outputBytes) {
-        this.outputBytes = outputBytes;
-        valueChanged("outputBytes");
-    }
-
-    public void setOutputRecords(long outputRecords) {
-        this.outputRecords = outputRecords;
-        valueChanged("outputRecords");
-    }
-
-    public void setShuffleReadBytes(long shuffleReadRemoteBytes) {
-        this.shuffleReadBytes = shuffleReadRemoteBytes;
-        valueChanged("shuffleReadBytes");
-    }
-
-    public void setShuffleReadRecords(long shuffleReadRecords) {
-        this.shuffleReadRecords = shuffleReadRecords;
-        valueChanged("shuffleReadRecords");
-    }
-
-    public void setShuffleWriteBytes(long shuffleWriteBytes) {
-        this.shuffleWriteBytes = shuffleWriteBytes;
-        valueChanged("shuffleWriteBytes");
-    }
-
-    public void setShuffleWriteRecords(long shuffleWriteRecords) {
-        this.shuffleWriteRecords = shuffleWriteRecords;
-        valueChanged("shuffleWriteRecords");
-    }
-
-    public void setExecutorDeserializeTime(long executorDeserializeTime) {
-        this.executorDeserializeTime = executorDeserializeTime;
-        valueChanged("executorDeserializeTime");
-    }
-
-    public void setExecutorRunTime(long executorRunTime) {
-        this.executorRunTime = executorRunTime;
-        valueChanged("executorRunTime");
-    }
-
-    public void setResultSize(long resultSize) {
-        this.resultSize = resultSize;
-        valueChanged("resultSize");
-    }
-
-    public void setJvmGcTime(long jvmGcTime) {
-        this.jvmGcTime = jvmGcTime;
-        valueChanged("jvmGcTime");
-    }
-
-    public void setResultSerializationTime(long resultSerializationTime) {
-        this.resultSerializationTime = resultSerializationTime;
-        valueChanged("resultSerializationTime");
-    }
-
-    public void setMemoryBytesSpilled(long memoryBytesSpilled) {
-        this.memoryBytesSpilled = memoryBytesSpilled;
-        valueChanged("memoryBytesSpilled");
-    }
-
-    public void setDiskBytesSpilled(long diskBytesSpilled) {
-        this.diskBytesSpilled = diskBytesSpilled;
-        valueChanged("diskBytesSpilled");
-    }
-
-    public void setExecMemoryBytes(long execMemoryBytes) {
-        this.execMemoryBytes = execMemoryBytes;
-        valueChanged("execMemoryBytes");
-    }
-
-    public void setDriveMemoryBytes(long driveMemoryBytes) {
-        this.driveMemoryBytes = driveMemoryBytes;
-        valueChanged("driveMemoryBytes");
-    }
-
-    public void setCompleteTasks(int completeTasks){
-        this.completeTasks = completeTasks;
-        valueChanged("completeTasks");
-    }
-
-    public long getTotalExecutorTime() {
-        return totalExecutorTime;
-    }
-
-    public void setTotalExecutorTime(long totalExecutorTime) {
-        this.totalExecutorTime = totalExecutorTime;
-        valueChanged("totalExecutorTime");
-    }
-
-    public long getExecutorMemoryOverhead() {
-        return executorMemoryOverhead;
-    }
-
-    public void setExecutorMemoryOverhead(long executorMemoryOverhead) {
-        this.executorMemoryOverhead = executorMemoryOverhead;
-        valueChanged("executorMemoryOverhead");
-    }
-
-    public long getDriverMemoryOverhead() {
-        return driverMemoryOverhead;
-    }
-
-    public void setDriverMemoryOverhead(long driverMemoryOverhead) {
-        this.driverMemoryOverhead = driverMemoryOverhead;
-        valueChanged("driverMemoryOverhead");
-    }
-
-    public int getExecutorCores() {
-        return executorCores;
-    }
-
-    public void setExecutorCores(int executorCores) {
-        this.executorCores = executorCores;
-        valueChanged("executorCores");
-    }
-
-    public int getDriverCores() {
-        return driverCores;
-    }
-
-    public void setDriverCores(int driverCores) {
-        this.driverCores = driverCores;
-        valueChanged("driverCores");
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkExecutor.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkExecutor.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkExecutor.java
deleted file mode 100644
index 92cb130..0000000
--- a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkExecutor.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.eagle.jpm.entity;
-
-import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity;
-import org.apache.eagle.log.entity.meta.*;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.apache.eagle.jpm.util.Constants;
-
-@Table("eglesprk_executors")
-@ColumnFamily("f")
-@Prefix("sprkexcutr")
-@Service(Constants.SPARK_EXECUTOR_SERVICE_ENDPOINT_NAME)
-@JsonIgnoreProperties(ignoreUnknown = true)
-@TimeSeries(true)
-@Tags({"site","sprkAppId", "sprkAppAttemptId", "sprkAppName", "normSprkAppName", "executorId","user", "queue"})
-@Partition({"site"})
-public class SparkExecutor extends TaggedLogAPIEntity{
-
-    @Column("a")
-    private String hostPort;
-    @Column("b")
-    private int rddBlocks;
-    @Column("c")
-    private long memoryUsed;
-    @Column("d")
-    private long diskUsed;
-    @Column("e")
-    private int activeTasks = 0;
-    @Column("f")
-    private int failedTasks = 0;
-    @Column("g")
-    private int completedTasks = 0;
-    @Column("h")
-    private int totalTasks = 0;
-    @Column("i")
-    private long totalDuration = 0;
-    @Column("j")
-    private long totalInputBytes = 0;
-    @Column("k")
-    private long totalShuffleRead = 0;
-    @Column("l")
-    private long totalShuffleWrite = 0;
-    @Column("m")
-    private long maxMemory;
-    @Column("n")
-    private long startTime;
-    @Column("o")
-    private long endTime = 0;
-    @Column("p")
-    private long execMemoryBytes;
-    @Column("q")
-    private int cores;
-    @Column("r")
-    private long memoryOverhead;
-
-    public String getHostPort() {
-        return hostPort;
-    }
-
-    public void setHostPort(String hostPort) {
-        this.hostPort = hostPort;
-        this.valueChanged("hostPort");
-    }
-
-    public int getRddBlocks() {
-        return rddBlocks;
-    }
-
-    public void setRddBlocks(int rddBlocks) {
-        this.rddBlocks = rddBlocks;
-        this.valueChanged("rddBlocks");
-    }
-
-    public long getMemoryUsed() {
-        return memoryUsed;
-    }
-
-    public void setMemoryUsed(long memoryUsed) {
-        this.memoryUsed = memoryUsed;
-        this.valueChanged("memoryUsed");
-    }
-
-    public long getDiskUsed() {
-        return diskUsed;
-    }
-
-    public void setDiskUsed(long diskUsed) {
-        this.diskUsed = diskUsed;
-        this.valueChanged("diskUsed");
-    }
-
-    public int getActiveTasks() {
-        return activeTasks;
-    }
-
-    public void setActiveTasks(int activeTasks) {
-        this.activeTasks = activeTasks;
-        this.valueChanged("activeTasks");
-    }
-
-    public int getFailedTasks() {
-        return failedTasks;
-    }
-
-    public void setFailedTasks(int failedTasks) {
-        this.failedTasks = failedTasks;
-        this.valueChanged("failedTasks");
-    }
-
-    public int getCompletedTasks() {
-        return completedTasks;
-    }
-
-    public void setCompletedTasks(int completedTasks) {
-        this.completedTasks = completedTasks;
-        this.valueChanged("completedTasks");
-    }
-
-    public int getTotalTasks() {
-        return totalTasks;
-    }
-
-    public void setTotalTasks(int totalTasks) {
-        this.totalTasks = totalTasks;
-        this.valueChanged("totalTasks");
-    }
-
-    public long getTotalDuration() {
-        return totalDuration;
-    }
-
-    public void setTotalDuration(long totalDuration) {
-        this.totalDuration = totalDuration;
-        this.valueChanged("totalDuration");
-    }
-
-    public long getTotalInputBytes() {
-        return totalInputBytes;
-    }
-
-    public void setTotalInputBytes(long totalInputBytes) {
-        this.totalInputBytes = totalInputBytes;
-        this.valueChanged("totalInputBytes");
-    }
-
-    public long getTotalShuffleRead() {
-        return totalShuffleRead;
-    }
-
-    public void setTotalShuffleRead(long totalShuffleRead) {
-        this.totalShuffleRead = totalShuffleRead;
-        this.valueChanged("totalShuffleRead");
-    }
-
-    public long getTotalShuffleWrite() {
-        return totalShuffleWrite;
-    }
-
-    public void setTotalShuffleWrite(long totalShuffleWrite) {
-        this.totalShuffleWrite = totalShuffleWrite;
-        this.valueChanged("totalShuffleWrite");
-    }
-
-    public long getMaxMemory() {
-        return maxMemory;
-    }
-
-    public void setMaxMemory(long maxMemory) {
-        this.maxMemory = maxMemory;
-        this.valueChanged("maxMemory");
-    }
-
-    public long getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(long startTime) {
-        this.startTime = startTime;
-        valueChanged("startTime");
-    }
-
-    public long getEndTime() {
-        return endTime;
-    }
-
-    public void setEndTime(long endTime) {
-        this.endTime = endTime;
-        this.valueChanged("endTime");
-    }
-
-    public long getExecMemoryBytes() {
-        return execMemoryBytes;
-    }
-
-    public void setExecMemoryBytes(long execMemoryBytes) {
-        this.execMemoryBytes = execMemoryBytes;
-        this.valueChanged("execMemoryBytes");
-    }
-
-    public int getCores() {
-        return cores;
-    }
-
-    public void setCores(int cores) {
-        this.cores = cores;
-        valueChanged("cores");
-    }
-
-    public long getMemoryOverhead() {
-        return memoryOverhead;
-    }
-
-    public void setMemoryOverhead(long memoryOverhead) {
-        this.memoryOverhead = memoryOverhead;
-        valueChanged("memoryOverhead");
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkJob.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkJob.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkJob.java
deleted file mode 100644
index a641440..0000000
--- a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkJob.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.eagle.jpm.entity;
-
-import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity;
-import org.apache.eagle.log.entity.meta.*;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.apache.eagle.jpm.util.Constants;
-
-@Table("eglesprk_jobs")
-@ColumnFamily("f")
-@Prefix("sprkjob")
-@Service(Constants.SPARK_JOB_SERVICE_ENDPOINT_NAME)
-@JsonIgnoreProperties(ignoreUnknown = true)
-@TimeSeries(true)
-@Tags({"site","sprkAppId", "sprkAppAttemptId", "sprkAppName", "normSprkAppName", "jobId","user", "queue"})
-@Partition({"site"})
-public class SparkJob extends TaggedLogAPIEntity{
-
-    @Column("a")
-    private long  submissionTime;
-    @Column("b")
-    private long completionTime;
-    @Column("c")
-    private int numStages=0;
-    @Column("d")
-    private String status;
-    @Column("e")
-    private int numTask=0;
-    @Column("f")
-    private int numActiveTasks=0;
-    @Column("g")
-    private int numCompletedTasks=0;
-    @Column("h")
-    private int numSkippedTasks=0;
-    @Column("i")
-    private int numFailedTasks=0;
-    @Column("j")
-    private int numActiveStages=0;
-    @Column("k")
-    private int numCompletedStages=0;
-    @Column("l")
-    private int numSkippedStages=0;
-    @Column("m")
-    private int numFailedStages=0;
-
-    public long getSubmissionTime() {
-        return submissionTime;
-    }
-
-    public long getCompletionTime() {
-        return completionTime;
-    }
-
-    public int getNumStages() {
-        return numStages;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public int getNumTask() {
-        return numTask;
-    }
-
-    public int getNumActiveTasks() {
-        return numActiveTasks;
-    }
-
-    public int getNumCompletedTasks() {
-        return numCompletedTasks;
-    }
-
-    public int getNumSkippedTasks() {
-        return numSkippedTasks;
-    }
-
-    public int getNumFailedTasks() {
-        return numFailedTasks;
-    }
-
-    public int getNumActiveStages() {
-        return numActiveStages;
-    }
-
-    public int getNumCompletedStages() {
-        return numCompletedStages;
-    }
-
-    public int getNumSkippedStages() {
-        return numSkippedStages;
-    }
-
-    public int getNumFailedStages() {
-        return numFailedStages;
-    }
-
-    public void setSubmissionTime(long submissionTime) {
-        this.submissionTime = submissionTime;
-        this.valueChanged("submissionTime");
-    }
-
-    public void setCompletionTime(long completionTime) {
-        this.completionTime = completionTime;
-        this.valueChanged("completionTime");
-    }
-
-    public void setNumStages(int numStages) {
-        this.numStages = numStages;
-        this.valueChanged("numStages");
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-        this.valueChanged("status");
-    }
-
-    public void setNumTask(int numTask) {
-        this.numTask = numTask;
-        this.valueChanged("numTask");
-    }
-
-    public void setNumActiveTasks(int numActiveTasks) {
-        this.numActiveTasks = numActiveTasks;
-        this.valueChanged("numActiveTasks");
-    }
-
-    public void setNumCompletedTasks(int numCompletedTasks) {
-        this.numCompletedTasks = numCompletedTasks;
-        this.valueChanged("numCompletedTasks");
-    }
-
-    public void setNumSkippedTasks(int numSkippedTasks) {
-        this.numSkippedTasks = numSkippedTasks;
-        this.valueChanged("numSkippedTasks");
-    }
-
-    public void setNumFailedTasks(int numFailedTasks) {
-        this.numFailedTasks = numFailedTasks;
-        this.valueChanged("numFailedTasks");
-    }
-
-    public void setNumActiveStages(int numActiveStages) {
-        this.numActiveStages = numActiveStages;
-        this.valueChanged("numActiveStages");
-    }
-
-    public void setNumCompletedStages(int numCompletedStages) {
-        this.numCompletedStages = numCompletedStages;
-        this.valueChanged("numCompletedStages");
-    }
-
-    public void setNumSkippedStages(int numSkippedStages) {
-        this.numSkippedStages = numSkippedStages;
-        this.valueChanged("numSkippedStages");
-    }
-
-    public void setNumFailedStages(int numFailedStages) {
-        this.numFailedStages = numFailedStages;
-        this.valueChanged("numFailedStages");
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkStage.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkStage.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkStage.java
deleted file mode 100644
index 92714bf..0000000
--- a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkStage.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.eagle.jpm.entity;
-
-import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity;
-import org.apache.eagle.log.entity.meta.*;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.apache.eagle.jpm.util.Constants;
-
-@Table("eglesprk_stages")
-@ColumnFamily("f")
-@Prefix("sprkstage")
-@Service(Constants.SPARK_STAGE_SERVICE_ENDPOINT_NAME)
-@JsonIgnoreProperties(ignoreUnknown = true)
-@TimeSeries(true)
-@Tags({"site","sprkAppId", "sprkAppAttemptId", "sprkAppName", "normSprkAppName", "jobId", "stageId","stageAttemptId","user", "queue"})
-@Partition({"site"})
-public class SparkStage extends TaggedLogAPIEntity{
-
-    @Column("a")
-    private String status;
-    @Column("b")
-    private int numActiveTasks=0;
-    @Column("c")
-    private int numCompletedTasks=0;
-    @Column("d")
-    private int numFailedTasks=0;
-    @Column("e")
-    private long executorRunTime=0l;
-    @Column("f")
-    private long inputBytes=0l;
-    @Column("g")
-    private long inputRecords=0l;
-    @Column("h")
-    private long outputBytes=0l;
-    @Column("i")
-    private long outputRecords=0l;
-    @Column("j")
-    private long shuffleReadBytes=0l;
-    @Column("k")
-    private long shuffleReadRecords=0l;
-    @Column("l")
-    private long shuffleWriteBytes=0l;
-    @Column("m")
-    private long shuffleWriteRecords=0l;
-    @Column("n")
-    private long memoryBytesSpilled=0l;
-    @Column("o")
-    private long diskBytesSpilled=0l;
-    @Column("p")
-    private String name;
-    @Column("q")
-    private String schedulingPool;
-    @Column("r")
-    private long submitTime;
-    @Column("s")
-    private long completeTime;
-    @Column("t")
-    private int numTasks;
-    @Column("u")
-    private long executorDeserializeTime;
-    @Column("v")
-    private long resultSize;
-    @Column("w")
-    private long jvmGcTime;
-    @Column("x")
-    private long resultSerializationTime;
-
-    public String getStatus() {
-        return status;
-    }
-
-    public int getNumActiveTasks() {
-        return numActiveTasks;
-    }
-
-    public int getNumCompletedTasks() {
-        return numCompletedTasks;
-    }
-
-    public int getNumFailedTasks() {
-        return numFailedTasks;
-    }
-
-    public long getExecutorRunTime() {
-        return executorRunTime;
-    }
-
-    public long getInputBytes() {
-        return inputBytes;
-    }
-
-    public long getInputRecords() {
-        return inputRecords;
-    }
-
-    public long getOutputBytes() {
-        return outputBytes;
-    }
-
-    public long getOutputRecords() {
-        return outputRecords;
-    }
-
-    public long getShuffleReadBytes() {
-        return shuffleReadBytes;
-    }
-
-    public long getShuffleReadRecords() {
-        return shuffleReadRecords;
-    }
-
-    public long getShuffleWriteBytes() {
-        return shuffleWriteBytes;
-    }
-
-    public long getShuffleWriteRecords() {
-        return shuffleWriteRecords;
-    }
-
-    public long getMemoryBytesSpilled() {
-        return memoryBytesSpilled;
-    }
-
-    public long getDiskBytesSpilled() {
-        return diskBytesSpilled;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public String getSchedulingPool() {
-        return schedulingPool;
-    }
-
-    public long getSubmitTime() {
-        return submitTime;
-    }
-
-    public long getCompleteTime() {
-        return completeTime;
-    }
-
-    public int getNumTasks() {
-        return numTasks;
-    }
-
-    public long getExecutorDeserializeTime() {
-        return executorDeserializeTime;
-    }
-
-    public long getResultSize() {
-        return resultSize;
-    }
-
-    public long getJvmGcTime() {
-        return jvmGcTime;
-    }
-
-    public long getResultSerializationTime() {
-        return resultSerializationTime;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-        this.valueChanged("status");
-    }
-
-    public void setNumActiveTasks(int numActiveTasks) {
-        this.numActiveTasks = numActiveTasks;
-        this.valueChanged("numActiveTasks");
-    }
-
-    public void setNumCompletedTasks(int numCompletedTasks) {
-        this.numCompletedTasks = numCompletedTasks;
-        this.valueChanged("numCompletedTasks");
-    }
-
-    public void setNumFailedTasks(int numFailedTasks) {
-        this.numFailedTasks = numFailedTasks;
-        this.valueChanged("numFailedTasks");
-    }
-
-    public void setExecutorRunTime(long executorRunTime) {
-        this.executorRunTime = executorRunTime;
-        this.valueChanged("executorRunTime");
-    }
-
-    public void setInputBytes(long inputBytes) {
-        this.inputBytes = inputBytes;
-        this.valueChanged("inputBytes");
-    }
-
-    public void setInputRecords(long inputRecords) {
-        this.inputRecords = inputRecords;
-        this.valueChanged("inputRecords");
-    }
-
-    public void setOutputBytes(long outputBytes) {
-        this.outputBytes = outputBytes;
-        this.valueChanged("outputBytes");
-    }
-
-    public void setOutputRecords(long outputRecords) {
-        this.outputRecords = outputRecords;
-        this.valueChanged("outputRecords");
-    }
-
-    public void setShuffleReadBytes(long shuffleReadBytes) {
-        this.shuffleReadBytes = shuffleReadBytes;
-        this.valueChanged("shuffleReadBytes");
-    }
-
-    public void setShuffleReadRecords(long shuffleReadRecords) {
-        this.shuffleReadRecords = shuffleReadRecords;
-        this.valueChanged("shuffleReadRecords");
-    }
-
-    public void setShuffleWriteBytes(long shuffleWriteBytes) {
-        this.shuffleWriteBytes = shuffleWriteBytes;
-        this.valueChanged("shuffleWriteBytes");
-    }
-
-    public void setShuffleWriteRecords(long shuffleWriteRecords) {
-        this.shuffleWriteRecords = shuffleWriteRecords;
-        this.valueChanged("shuffleWriteRecords");
-    }
-
-    public void setMemoryBytesSpilled(long memoryBytesSpilled) {
-        this.memoryBytesSpilled = memoryBytesSpilled;
-        this.valueChanged("memoryBytesSpilled");
-    }
-
-    public void setDiskBytesSpilled(long diskBytesSpilled) {
-        this.diskBytesSpilled = diskBytesSpilled;
-        this.valueChanged("diskBytesSpilled");
-    }
-
-    public void setName(String name) {
-        this.name = name;
-        this.valueChanged("name");
-    }
-
-    public void setSchedulingPool(String schedulingPool) {
-        this.schedulingPool = schedulingPool;
-        this.valueChanged("schedulingPool");
-    }
-
-    public void setSubmitTime(long submitTime) {
-        this.submitTime = submitTime;
-        this.valueChanged("submitTime");
-    }
-
-    public void setCompleteTime(long completeTime) {
-        this.completeTime = completeTime;
-        this.valueChanged("completeTime");
-    }
-
-    public void setNumTasks(int numTasks) {
-        this.numTasks = numTasks;
-        valueChanged("numTasks");
-    }
-
-    public void setExecutorDeserializeTime(long executorDeserializeTime) {
-        this.executorDeserializeTime = executorDeserializeTime;
-        valueChanged("executorDeserializeTime");
-    }
-
-    public void setResultSize(long resultSize) {
-        this.resultSize = resultSize;
-        valueChanged("resultSize");
-    }
-
-    public void setJvmGcTime(long jvmGcTime) {
-        this.jvmGcTime = jvmGcTime;
-        valueChanged("jvmGcTime");
-    }
-
-    public void setResultSerializationTime(long resultSerializationTime) {
-        this.resultSerializationTime = resultSerializationTime;
-        valueChanged("resultSerializationTime");
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkTask.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkTask.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkTask.java
deleted file mode 100644
index af9ed21..0000000
--- a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/entity/SparkTask.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.eagle.jpm.entity;
-
-import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity;
-import org.apache.eagle.log.entity.meta.*;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.apache.eagle.jpm.util.Constants;
-
-@Table("eglesprk_tasks")
-@ColumnFamily("f")
-@Prefix("sprktask")
-@Service(Constants.SPARK_TASK_SERVICE_ENDPOINT_NAME)
-@JsonIgnoreProperties(ignoreUnknown = true)
-@TimeSeries(true)
-@Tags({"site","sprkAppId", "sprkAppAttemptId", "sprkAppName", "normSprkAppName", "jobId", "jobName", "stageId","stageAttemptId","taskIndex","taskAttemptId","user", "queue"})
-@Partition({"site"})
-public class SparkTask extends TaggedLogAPIEntity{
-
-    @Column("a")
-    private int taskId;
-    @Column("b")
-    private long launchTime;
-    @Column("c")
-    private String executorId;
-    @Column("d")
-    private String host;
-    @Column("e")
-    private String taskLocality;
-    @Column("f")
-    private boolean speculative;
-    @Column("g")
-    private long executorDeserializeTime;
-    @Column("h")
-    private long executorRunTime;
-    @Column("i")
-    private long resultSize;
-    @Column("j")
-    private long jvmGcTime;
-    @Column("k")
-    private long resultSerializationTime;
-    @Column("l")
-    private long memoryBytesSpilled;
-    @Column("m")
-    private long diskBytesSpilled;
-    @Column("n")
-    private long inputBytes;
-    @Column("o")
-    private long inputRecords;
-    @Column("p")
-    private long outputBytes;
-    @Column("q")
-    private long outputRecords;
-    @Column("r")
-    private long shuffleReadRemoteBytes;
-    @Column("x")
-    private long shuffleReadLocalBytes;
-    @Column("s")
-    private long shuffleReadRecords;
-    @Column("t")
-    private long shuffleWriteBytes;
-    @Column("u")
-    private long shuffleWriteRecords;
-    @Column("v")
-    private boolean failed;
-
-    public int getTaskId() {
-        return taskId;
-    }
-
-    public long getLaunchTime() {
-        return launchTime;
-    }
-
-    public String getExecutorId() {
-        return executorId;
-    }
-
-    public String getHost() {
-        return host;
-    }
-
-    public String getTaskLocality() {
-        return taskLocality;
-    }
-
-    public boolean isSpeculative() {
-        return speculative;
-    }
-
-    public long getExecutorDeserializeTime() {
-        return executorDeserializeTime;
-    }
-
-    public long getExecutorRunTime() {
-        return executorRunTime;
-    }
-
-    public long getResultSize() {
-        return resultSize;
-    }
-
-    public long getJvmGcTime() {
-        return jvmGcTime;
-    }
-
-    public long getResultSerializationTime() {
-        return resultSerializationTime;
-    }
-
-    public long getMemoryBytesSpilled() {
-        return memoryBytesSpilled;
-    }
-
-    public long getDiskBytesSpilled() {
-        return diskBytesSpilled;
-    }
-
-    public long getInputBytes() {
-        return inputBytes;
-    }
-
-    public long getInputRecords() {
-        return inputRecords;
-    }
-
-    public long getOutputBytes() {
-        return outputBytes;
-    }
-
-    public long getOutputRecords() {
-        return outputRecords;
-    }
-
-    public long getShuffleReadRecords() {
-        return shuffleReadRecords;
-    }
-
-    public long getShuffleWriteBytes() {
-        return shuffleWriteBytes;
-    }
-
-    public long getShuffleWriteRecords() {
-        return shuffleWriteRecords;
-    }
-
-    public boolean isFailed() {
-        return failed;
-    }
-
-    public long getShuffleReadRemoteBytes() {
-        return shuffleReadRemoteBytes;
-    }
-
-    public long getShuffleReadLocalBytes() {
-        return shuffleReadLocalBytes;
-    }
-
-    public void setFailed(boolean failed) {
-        this.failed = failed;
-        valueChanged("failed");
-    }
-
-    public void setTaskId(int taskId) {
-        this.taskId = taskId;
-        valueChanged("taskId");
-    }
-
-    public void setLaunchTime(long launchTime) {
-        this.launchTime = launchTime;
-        valueChanged("launchTime");
-    }
-
-    public void setExecutorId(String executorId) {
-        this.executorId = executorId;
-        valueChanged("executorId");
-    }
-
-    public void setHost(String host) {
-        this.host = host;
-        this.valueChanged("host");
-    }
-
-    public void setTaskLocality(String taskLocality) {
-        this.taskLocality = taskLocality;
-        this.valueChanged("taskLocality");
-    }
-
-    public void setSpeculative(boolean speculative) {
-        this.speculative = speculative;
-        this.valueChanged("speculative");
-    }
-
-    public void setExecutorDeserializeTime(long executorDeserializeTime) {
-        this.executorDeserializeTime = executorDeserializeTime;
-        this.valueChanged("executorDeserializeTime");
-    }
-
-    public void setExecutorRunTime(long executorRunTime) {
-        this.executorRunTime = executorRunTime;
-        this.valueChanged("executorRunTime");
-    }
-
-    public void setResultSize(long resultSize) {
-        this.resultSize = resultSize;
-        this.valueChanged("resultSize");
-    }
-
-    public void setJvmGcTime(long jvmGcTime) {
-        this.jvmGcTime = jvmGcTime;
-        this.valueChanged("jvmGcTime");
-    }
-
-    public void setResultSerializationTime(long resultSerializationTime) {
-        this.resultSerializationTime = resultSerializationTime;
-        this.valueChanged("resultSerializationTime");
-    }
-
-    public void setMemoryBytesSpilled(long memoryBytesSpilled) {
-        this.memoryBytesSpilled = memoryBytesSpilled;
-        this.valueChanged("memoryBytesSpilled");
-    }
-
-    public void setDiskBytesSpilled(long diskBytesSpilled) {
-        this.diskBytesSpilled = diskBytesSpilled;
-        this.valueChanged("diskBytesSpilled");
-    }
-
-    public void setInputBytes(long inputBytes) {
-        this.inputBytes = inputBytes;
-        this.valueChanged("inputBytes");
-    }
-
-    public void setInputRecords(long inputRecords) {
-        this.inputRecords = inputRecords;
-        this.valueChanged("inputRecords");
-    }
-
-    public void setOutputBytes(long outputBytes) {
-        this.outputBytes = outputBytes;
-        this.valueChanged("outputBytes");
-    }
-
-    public void setOutputRecords(long outputRecords) {
-        this.outputRecords = outputRecords;
-        this.valueChanged("outputRecords");
-    }
-
-
-
-    public void setShuffleReadRecords(long shuffleReadRecords) {
-        this.shuffleReadRecords = shuffleReadRecords;
-        this.valueChanged("shuffleReadRecords");
-    }
-
-    public void setShuffleWriteBytes(long shuffleWriteBytes) {
-        this.shuffleWriteBytes = shuffleWriteBytes;
-        this.valueChanged("shuffleWriteBytes");
-    }
-
-    public void setShuffleWriteRecords(long shuffleWriteRecords) {
-        this.shuffleWriteRecords = shuffleWriteRecords;
-        this.valueChanged("shuffleWriteRecords");
-    }
-
-    public void setShuffleReadRemoteBytes(long shuffleReadRemoteBytes) {
-        this.shuffleReadRemoteBytes = shuffleReadRemoteBytes;
-        this.valueChanged("shuffleReadRemoteBytes");
-    }
-
-    public void setShuffleReadLocalBytes(long shuffleReadLocalBytes) {
-        this.shuffleReadLocalBytes = shuffleReadLocalBytes;
-        this.valueChanged("shuffleReadLocalBytes");
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JPAEntityRepository.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JPAEntityRepository.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JPAEntityRepository.java
new file mode 100644
index 0000000..49095ed
--- /dev/null
+++ b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JPAEntityRepository.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+
+package org.apache.eagle.jpm.mr.historyentity;
+
+import org.apache.eagle.jpm.util.jobcounter.JobCounters;
+import org.apache.eagle.jpm.util.jobcounter.JobCountersSerDeser;
+import org.apache.eagle.log.entity.repo.EntityRepository;
+
+public class JPAEntityRepository extends EntityRepository {
+
+    public JPAEntityRepository() {
+        serDeserMap.put(JobCounters.class, new JobCountersSerDeser());
+        serDeserMap.put(JobConfig.class, new JobConfigSerDeser());
+        entitySet.add(JobConfigurationAPIEntity.class);
+        entitySet.add(JobEventAPIEntity.class);
+        entitySet.add(JobExecutionAPIEntity.class);
+
+        entitySet.add(TaskAttemptExecutionAPIEntity.class);
+        entitySet.add(TaskExecutionAPIEntity.class);
+        entitySet.add(TaskFailureCountAPIEntity.class);
+        entitySet.add(TaskAttemptCounterAPIEntity.class);
+        entitySet.add(JobProcessTimeStampEntity.class);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobBaseAPIEntity.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobBaseAPIEntity.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobBaseAPIEntity.java
new file mode 100644
index 0000000..a49fb3d
--- /dev/null
+++ b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobBaseAPIEntity.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+
+package org.apache.eagle.jpm.mr.historyentity;
+
+import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity;
+
+public class JobBaseAPIEntity extends TaggedLogAPIEntity {
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobConfig.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobConfig.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobConfig.java
new file mode 100644
index 0000000..97ebd50
--- /dev/null
+++ b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobConfig.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+
+package org.apache.eagle.jpm.mr.historyentity;
+
+import java.util.Map;
+import java.util.TreeMap;
+
+public final class JobConfig {
+    private Map<String, String> config = new TreeMap<>();
+
+    public Map<String, String> getConfig() {
+        return config;
+    }
+
+    public void setConfig(Map<String, String> config) {
+        this.config = config;
+    }
+    
+    public String toString(){
+        return config.toString();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobConfigSerDeser.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobConfigSerDeser.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobConfigSerDeser.java
new file mode 100644
index 0000000..5af4377
--- /dev/null
+++ b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobConfigSerDeser.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+
+package org.apache.eagle.jpm.mr.historyentity;
+
+import org.apache.eagle.log.entity.meta.EntitySerDeser;
+import org.apache.hadoop.hbase.util.Bytes;
+
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.TreeMap;
+
+public class JobConfigSerDeser implements EntitySerDeser<JobConfig> {
+
+    @Override
+    public JobConfig deserialize(byte[] bytes) {
+        JobConfig jc = new JobConfig();
+        Map<String, String> map = new TreeMap<String, String>();
+        jc.setConfig(map);
+        String sb = Bytes.toString(bytes);
+        String[] keyValue = sb.split(",");
+        for (String pair : keyValue) {
+            String str[] = pair.split(":");
+            if (pair.equals("") || str[0].equals("")) continue;            
+            String key = str[0];
+            String value = "";
+            if (str.length == 2) value = str[1];
+            map.put(key, value);
+        }
+        return jc;
+    }
+    
+    @Override
+    public byte[] serialize(JobConfig conf) {
+        Map<String, String> map = conf.getConfig();
+        StringBuilder sb = new StringBuilder();
+        for (Entry<String, String> entry : map.entrySet())
+            sb.append(entry.getKey() + ":" + entry.getValue() + ",");
+        sb.deleteCharAt(sb.length() - 1);
+        return sb.toString().getBytes();
+    }
+
+    @Override
+    public Class<JobConfig> type(){
+        return JobConfig.class;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobConfigurationAPIEntity.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobConfigurationAPIEntity.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobConfigurationAPIEntity.java
new file mode 100644
index 0000000..3a09c5f
--- /dev/null
+++ b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobConfigurationAPIEntity.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+
+package org.apache.eagle.jpm.mr.historyentity;
+
+import org.apache.eagle.jpm.util.Constants;
+import org.apache.eagle.log.entity.meta.*;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+
+@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
+@Table("eaglejpa")
+@ColumnFamily("f")
+@Prefix("jconf")
+@Service(Constants.JPA_JOB_CONFIG_SERVICE_NAME)
+@TimeSeries(true)
+@Partition({"site"})
+@Indexes({
+        @Index(name="Index_1_jobId", columns = { "jobId" }, unique = true),
+        @Index(name="Index_2_jobDefId", columns = { "jobDefId" }, unique = false)
+})
+public class JobConfigurationAPIEntity extends JobBaseAPIEntity {
+    
+    @Column("a")
+    private String configJobName;
+    @Column("b")
+    private JobConfig jobConfig;
+    @Column("c")
+    private String alertEmailList;
+    
+    public JobConfig getJobConfig() {
+        return jobConfig;
+    }
+    public void setJobConfig(JobConfig jobConfig) {
+        this.jobConfig = jobConfig;
+        _pcs.firePropertyChange("jobConfig", null, null);
+    }
+    public String getConfigJobName() {
+        return configJobName;
+    }
+    public void setConfigJobName(String configJobName) {
+        this.configJobName = configJobName;
+        _pcs.firePropertyChange("configJobName", null, null);
+    }
+    public String getAlertEmailList() {
+        return alertEmailList;
+    }
+    public void setAlertEmailList(String alertEmailList) {
+        this.alertEmailList = alertEmailList;
+        _pcs.firePropertyChange("alertEmailList", null, null);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobEventAPIEntity.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobEventAPIEntity.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobEventAPIEntity.java
new file mode 100644
index 0000000..b289a9c
--- /dev/null
+++ b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobEventAPIEntity.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+
+package org.apache.eagle.jpm.mr.historyentity;
+
+import org.apache.eagle.jpm.util.Constants;
+import org.apache.eagle.log.entity.meta.*;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+
+@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
+@Table("eaglejpa")
+@ColumnFamily("f")
+@Prefix("jevent")
+@Service(Constants.JPA_JOB_EVENT_SERVICE_NAME)
+@TimeSeries(true)
+@Partition({"site"})
+public class JobEventAPIEntity extends JobBaseAPIEntity {
+
+    @Column("a")
+    private String eventType;
+
+    public String getEventType() {
+        return eventType;
+    }
+    public void setEventType(String eventType) {
+        this.eventType = eventType;
+        _pcs.firePropertyChange("eventType", null, null);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobExecutionAPIEntity.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobExecutionAPIEntity.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobExecutionAPIEntity.java
new file mode 100644
index 0000000..db8f0d6
--- /dev/null
+++ b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobExecutionAPIEntity.java
@@ -0,0 +1,230 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+
+package org.apache.eagle.jpm.mr.historyentity;
+
+import org.apache.eagle.jpm.util.Constants;
+import org.apache.eagle.jpm.util.jobcounter.JobCounters;
+import org.apache.eagle.log.entity.meta.*;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+
+@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
+@Table("eaglejpa")
+@ColumnFamily("f")
+@Prefix("jexec")
+@Service(Constants.JPA_JOB_EXECUTION_SERVICE_NAME)
+@TimeSeries(true)
+@Partition({"site"})
+@Indexes({
+    @Index(name="Index_1_jobId", columns = { "jobId" }, unique = true),
+    @Index(name="Index_2_jobDefId", columns = { "jobDefId" }, unique = false)
+    })
+public class JobExecutionAPIEntity extends JobBaseAPIEntity {
+    @Column("a")
+    private String currentState;
+    @Column("b")
+    private long startTime;
+    @Column("c")
+    private long endTime;
+    @Column("d")
+    private int numTotalMaps;
+    @Column("e")
+    private int numFailedMaps;
+    @Column("f")
+    private int numFinishedMaps;
+    @Column("g")
+    private int numTotalReduces;
+    @Column("h")
+    private int numFailedReduces;
+    @Column("i")
+    private int numFinishedReduces;
+    @Column("j")
+    private JobCounters jobCounters;
+    @Column("k")
+    private int dataLocalMaps;
+    @Column("l")
+    private double dataLocalMapsPercentage;
+    @Column("m")
+    private int rackLocalMaps;
+    @Column("n")
+    private double rackLocalMapsPercentage;
+    @Column("o")
+    private int totalLaunchedMaps;
+    @Column("p")
+    private long submissionTime;
+    @Column("q")
+    private long lastMapDuration;
+    @Column("r")
+    private long lastReduceDuration;
+    @Column("s")
+    private long durationTime;
+
+    public long getDurationTime() {
+        return durationTime;
+    }
+    public void setDurationTime(long durationTime) {
+        this.durationTime = durationTime;
+        valueChanged("durationTime");
+    }
+
+    public String getCurrentState() {
+        return currentState;
+    }
+    public void setCurrentState(String currentState) {
+        this.currentState = currentState;
+        _pcs.firePropertyChange("currentState", null, null);
+    }
+    public long getStartTime() {
+        return startTime;
+    }
+    public void setStartTime(long startTime) {
+        this.startTime = startTime;
+        _pcs.firePropertyChange("startTime", null, null);
+    }
+    public long getEndTime() {
+        return endTime;
+    }
+    public void setEndTime(long endTime) {
+        this.endTime = endTime;
+        _pcs.firePropertyChange("endTime", null, null);
+    }
+    public int getNumTotalMaps() {
+        return numTotalMaps;
+    }
+    public void setNumTotalMaps(int numTotalMaps) {
+        this.numTotalMaps = numTotalMaps;
+        _pcs.firePropertyChange("numTotalMaps", null, null);
+    }
+    public int getNumFailedMaps() {
+        return numFailedMaps;
+    }
+    public void setNumFailedMaps(int numFailedMaps) {
+        this.numFailedMaps = numFailedMaps;
+        _pcs.firePropertyChange("numFailedMaps", null, null);
+    }
+    public int getNumFinishedMaps() {
+        return numFinishedMaps;
+    }
+    public void setNumFinishedMaps(int numFinishedMaps) {
+        this.numFinishedMaps = numFinishedMaps;
+        _pcs.firePropertyChange("numFinishedMaps", null, null);
+    }
+    public int getNumTotalReduces() {
+        return numTotalReduces;
+    }
+    public void setNumTotalReduces(int numTotalReduces) {
+        this.numTotalReduces = numTotalReduces;
+        _pcs.firePropertyChange("numTotalReduces", null, null);
+    }
+    public int getNumFailedReduces() {
+        return numFailedReduces;
+    }
+    public void setNumFailedReduces(int numFailedReduces) {
+        this.numFailedReduces = numFailedReduces;
+        _pcs.firePropertyChange("numFailedReduces", null, null);
+    }
+    public int getNumFinishedReduces() {
+        return numFinishedReduces;
+    }
+
+    public void setNumFinishedReduces(int numFinishedReduces) {
+        this.numFinishedReduces = numFinishedReduces;
+        _pcs.firePropertyChange("numFinishedReduces", null, null);
+    }
+
+    public JobCounters getJobCounters() {
+        return jobCounters;
+    }
+
+    public void setJobCounters(JobCounters jobCounters) {
+        this.jobCounters = jobCounters;
+        _pcs.firePropertyChange("jobCounters", null, null);
+    }
+
+    public int getDataLocalMaps() {
+        return dataLocalMaps;
+    }
+
+    public void setDataLocalMaps(int dataLocalMaps) {
+        this.dataLocalMaps = dataLocalMaps;
+        valueChanged("dataLocalMaps");
+    }
+
+    public double getDataLocalMapsPercentage() {
+        return dataLocalMapsPercentage;
+    }
+
+    public void setDataLocalMapsPercentage(double dataLocalMapsPercentage) {
+        this.dataLocalMapsPercentage = dataLocalMapsPercentage;
+        valueChanged("dataLocalMapsPercentage");
+    }
+
+    public int getRackLocalMaps() {
+        return rackLocalMaps;
+    }
+
+    public void setRackLocalMaps(int rackLocalMaps) {
+        this.rackLocalMaps = rackLocalMaps;
+        valueChanged("rackLocalMaps");
+    }
+
+    public double getRackLocalMapsPercentage() {
+        return rackLocalMapsPercentage;
+    }
+
+    public void setRackLocalMapsPercentage(double rackLocalMapsPercentage) {
+        this.rackLocalMapsPercentage = rackLocalMapsPercentage;
+        valueChanged("rackLocalMapsPercentage");
+    }
+
+    public int getTotalLaunchedMaps() {
+        return totalLaunchedMaps;
+    }
+
+    public void setTotalLaunchedMaps(int totalLaunchedMaps) {
+        this.totalLaunchedMaps = totalLaunchedMaps;
+        valueChanged("totalLaunchedMaps");
+    }
+
+    public long getSubmissionTime() {
+        return submissionTime;
+    }
+
+    public void setSubmissionTime(long submissionTime) {
+        this.submissionTime = submissionTime;
+        valueChanged("submissionTime");
+    }
+
+    public long getLastMapDuration() {
+        return lastMapDuration;
+    }
+
+    public void setLastMapDuration(long lastMapDuration) {
+        this.lastMapDuration = lastMapDuration;
+        valueChanged("lastMapDuration");
+    }
+
+    public long getLastReduceDuration() {
+        return lastReduceDuration;
+    }
+
+    public void setLastReduceDuration(long lastReduceDuration) {
+        this.lastReduceDuration = lastReduceDuration;
+        valueChanged("lastReduceDuration");
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobProcessTimeStampEntity.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobProcessTimeStampEntity.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobProcessTimeStampEntity.java
new file mode 100644
index 0000000..df57657
--- /dev/null
+++ b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/JobProcessTimeStampEntity.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+
+package org.apache.eagle.jpm.mr.historyentity;
+
+import org.apache.eagle.jpm.util.Constants;
+import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity;
+import org.apache.eagle.log.entity.meta.*;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+
+@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
+@Table("eaglejpa_process")
+@ColumnFamily("f")
+@Prefix("process")
+@Service(Constants.JPA_JOB_PROCESS_TIME_STAMP_NAME)
+@TimeSeries(true)
+@Partition({"site"})
+public class JobProcessTimeStampEntity extends TaggedLogAPIEntity {
+    @Column("a")
+    private long currentTimeStamp;
+
+    public long getCurrentTimeStamp() {
+        return currentTimeStamp;
+    }
+    public void setCurrentTimeStamp(long currentTimeStamp) {
+        this.currentTimeStamp = currentTimeStamp;
+        _pcs.firePropertyChange("currentTimeStamp", null, null);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/TaskAttemptCounterAPIEntity.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/TaskAttemptCounterAPIEntity.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/TaskAttemptCounterAPIEntity.java
new file mode 100644
index 0000000..89272bf
--- /dev/null
+++ b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/TaskAttemptCounterAPIEntity.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+
+package org.apache.eagle.jpm.mr.historyentity;
+
+import org.apache.eagle.jpm.util.Constants;
+import org.apache.eagle.log.entity.meta.*;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+
+@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
+@Table("eaglejpa_anomaly")
+@ColumnFamily("f")
+@Prefix("tacount")
+@Service(Constants.JPA_TASK_ATTEMPT_COUNTER_SERVICE_NAME)
+@TimeSeries(true)
+@Partition({"site"})
+public class TaskAttemptCounterAPIEntity extends JobBaseAPIEntity {
+    @Column("a")
+    private int totalCount;
+    @Column("b")
+    private int failedCount;
+    @Column("c")
+    private int killedCount;
+    
+    public int getKilledCount() {
+        return killedCount;
+    }
+    public void setKilledCount(int killedCount) {
+        this.killedCount = killedCount;
+        _pcs.firePropertyChange("killedCount", null, null);
+    }
+    public int getFailedCount() {
+        return failedCount;
+    }
+    public void setFailedCount(int failedCount) {
+        this.failedCount = failedCount;
+        _pcs.firePropertyChange("failedCount", null, null);
+    }
+    public int getTotalCount() {
+        return totalCount;
+    }
+    public void setTotalCount(int totalCount) {
+        this.totalCount = totalCount;
+        _pcs.firePropertyChange("totalCount", null, null);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/TaskAttemptExecutionAPIEntity.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/TaskAttemptExecutionAPIEntity.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/TaskAttemptExecutionAPIEntity.java
new file mode 100644
index 0000000..be5566b
--- /dev/null
+++ b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/TaskAttemptExecutionAPIEntity.java
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+
+package org.apache.eagle.jpm.mr.historyentity;
+
+import org.apache.eagle.jpm.util.Constants;
+import org.apache.eagle.jpm.util.jobcounter.JobCounters;
+import org.apache.eagle.log.entity.meta.*;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+
+@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
+@Table("eaglejpa_task")
+@ColumnFamily("f")
+@Prefix("taexec")
+@Service(Constants.JPA_TASK_ATTEMPT_EXECUTION_SERVICE_NAME)
+@TimeSeries(true)
+@Partition({"site"})
+@Indexes({
+    @Index(name="Index_1_jobId", columns = { "jobID" }, unique = false)
+    })
+public class TaskAttemptExecutionAPIEntity extends JobBaseAPIEntity {
+    @Column("a")
+    private String taskStatus;
+    @Column("b")
+    private long startTime;
+    @Column("c")
+    private long endTime;
+    @Column("d")
+    private long duration;
+    @Column("e")
+    private String error;
+    @Column("f")
+    private JobCounters jobCounters;
+    @Column("g")
+    private String taskAttemptID;
+
+    public String getTaskStatus() {
+        return taskStatus;
+    }
+    public void setTaskStatus(String taskStatus) {
+        this.taskStatus = taskStatus;
+        _pcs.firePropertyChange("taskStatus", null, null);
+    }
+    public long getStartTime() {
+        return startTime;
+    }
+    public void setStartTime(long startTime) {
+        this.startTime = startTime;
+        _pcs.firePropertyChange("startTime", null, null);
+    }
+    public long getEndTime() {
+        return endTime;
+    }
+    public void setEndTime(long endTime) {
+        this.endTime = endTime;
+        _pcs.firePropertyChange("endTime", null, null);
+    }
+    public long getDuration() {
+        return duration;
+    }
+    public void setDuration(long duration) {
+        this.duration = duration;
+        _pcs.firePropertyChange("duration", null, null);
+    }
+    public String getError() {
+        return error;
+    }
+    public void setError(String error) {
+        this.error = error;
+        _pcs.firePropertyChange("error", null, null);
+    }
+    public JobCounters getJobCounters() {
+        return jobCounters;
+    }
+    public void setJobCounters(JobCounters jobCounters) {
+        this.jobCounters = jobCounters;
+        _pcs.firePropertyChange("jobCounters", null, null);
+    }
+    public String getTaskAttemptID() {
+        return taskAttemptID;
+    }
+    public void setTaskAttemptID(String taskAttemptID) {
+        this.taskAttemptID = taskAttemptID;
+        _pcs.firePropertyChange("taskAttemptID", null, null);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/a20656b5/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/TaskExecutionAPIEntity.java
----------------------------------------------------------------------
diff --git a/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/TaskExecutionAPIEntity.java b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/TaskExecutionAPIEntity.java
new file mode 100644
index 0000000..9de8b05
--- /dev/null
+++ b/eagle-jpm/eagle-jpm-entity/src/main/java/org/apache/eagle/jpm/mr/historyentity/TaskExecutionAPIEntity.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+
+package org.apache.eagle.jpm.mr.historyentity;
+
+import org.apache.eagle.jpm.util.Constants;
+import org.apache.eagle.jpm.util.jobcounter.JobCounters;
+import org.apache.eagle.log.entity.meta.*;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+
+@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
+@Table("eaglejpa_task")
+@ColumnFamily("f")
+@Prefix("texec")
+@Service(Constants.JPA_TASK_EXECUTION_SERVICE_NAME)
+@TimeSeries(true)
+@Partition({"site"})
+@Indexes({
+        @Index(name="Index_1_jobId", columns = { "jobId" }, unique = false)
+})
+public class TaskExecutionAPIEntity extends JobBaseAPIEntity {
+    @Column("a")
+    private String taskStatus;
+    @Column("b")
+    private long startTime;
+    @Column("c")
+    private long endTime;
+    @Column("d")
+    private long duration;
+    @Column("e")
+    private String error;
+    @Column("f")
+    private JobCounters jobCounters;
+
+    public String getTaskStatus() {
+        return taskStatus;
+    }
+    public void setTaskStatus(String taskStatus) {
+        this.taskStatus = taskStatus;
+        _pcs.firePropertyChange("taskStatus", null, null);
+    }
+    public long getStartTime() {
+        return startTime;
+    }
+    public void setStartTime(long startTime) {
+        this.startTime = startTime;
+        _pcs.firePropertyChange("startTime", null, null);
+    }
+    public long getEndTime() {
+        return endTime;
+    }
+    public void setEndTime(long endTime) {
+        this.endTime = endTime;
+        _pcs.firePropertyChange("endTime", null, null);
+    }
+    public long getDuration() {
+        return duration;
+    }
+    public void setDuration(long duration) {
+        this.duration = duration;
+        _pcs.firePropertyChange("duration", null, null);
+    }
+    public String getError() {
+        return error;
+    }
+    public void setError(String error) {
+        this.error = error;
+        _pcs.firePropertyChange("error", null, null);
+    }
+    public JobCounters getJobCounters() {
+        return jobCounters;
+    }
+    public void setJobCounters(JobCounters jobCounters) {
+        this.jobCounters = jobCounters;
+        _pcs.firePropertyChange("jobCounters", null, null);
+    }
+}