Repository: eagle Updated Branches: refs/heads/master 3523480c4 -> 0a4299766
http://git-wip-us.apache.org/repos/asf/eagle/blob/0a429976/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/MRTopologyEntityParser.java ---------------------------------------------------------------------- diff --git a/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/MRTopologyEntityParser.java b/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/MRTopologyEntityParser.java index 088b5b3..f860f1c 100644 --- a/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/MRTopologyEntityParser.java +++ b/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/MRTopologyEntityParser.java @@ -1,222 +1,222 @@ -/* - * 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.topology.extractor.mr; - -import org.apache.eagle.app.utils.PathResolverHelper; -import org.apache.eagle.topology.TopologyCheckAppConfig; -import org.apache.eagle.topology.TopologyConstants; -import org.apache.eagle.topology.extractor.TopologyEntityParserResult; -import org.apache.eagle.topology.entity.MRServiceTopologyAPIEntity; -import org.apache.eagle.topology.extractor.TopologyEntityParser; -import org.apache.eagle.topology.resolver.TopologyRackResolver; -import org.apache.eagle.topology.utils.EntityBuilderHelper; -import org.apache.eagle.app.utils.connection.ServiceNotResponseException; -import org.apache.eagle.app.utils.connection.URLResourceFetcher; -import org.codehaus.jackson.JsonParser; -import org.codehaus.jackson.map.ObjectMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.regex.Matcher; - -import static org.apache.eagle.topology.TopologyConstants.*; -import static org.apache.eagle.topology.utils.EntityBuilderHelper.generateKey; - -public class MRTopologyEntityParser implements TopologyEntityParser { - - private String[] rmUrls; - private String historyServerUrl; - private String site; - private TopologyRackResolver rackResolver; - - private static final String YARN_NODES_URL = "/ws/v1/cluster/nodes?anonymous=true"; - private static final String YARN_HISTORY_SERVER_URL = "/ws/v1/history/info"; - - private static final Logger LOGGER = LoggerFactory.getLogger(MRTopologyEntityParser.class); - private static final ObjectMapper OBJ_MAPPER = new ObjectMapper(); - - static { - OBJ_MAPPER.configure(JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS, true); - } - - public MRTopologyEntityParser(String site, TopologyCheckAppConfig.MRConfig config, TopologyRackResolver rackResolver) { - this.site = site; - this.rmUrls = config.rmUrls; - this.historyServerUrl = config.historyServerUrl; - this.rackResolver = rackResolver; - } - - @Override - public TopologyConstants.HadoopVersion getHadoopVersion() { - return TopologyConstants.HadoopVersion.V2; - } - - @Override - public TopologyConstants.TopologyType getTopologyType() { - return TopologyConstants.TopologyType.MR; - } - - @Override - public TopologyEntityParserResult parse(long timestamp) { - final TopologyEntityParserResult result = new TopologyEntityParserResult(); - - String rmStatus; - int inActiveHosts = 0; - boolean isSuccess = false; - for (String url : rmUrls) { - MRServiceTopologyAPIEntity resourceManagerEntity = createEntity(TopologyConstants.RESOURCE_MANAGER_ROLE, - extractMasterHost(url), timestamp); - rmStatus = RESOURCE_MANAGER_ACTIVE_STATUS; - try { - InputStream is = URLResourceFetcher.openURLStream(PathResolverHelper.buildUrlPath(url, YARN_NODES_URL)); - if (!isSuccess) { - isSuccess = doParse(timestamp, is, result); - } - } catch (IOException e) { - inActiveHosts++; - LOGGER.warn(e.getMessage(), e); - rmStatus = RESOURCE_MANAGER_INACTIVE_STATUS; - } catch (Exception ex) { - LOGGER.error("fail to parse url {} due to {}, and will cancel this parsing", url, ex.getMessage(), ex); - result.getSlaveNodes().clear(); - } - resourceManagerEntity.setStatus(rmStatus); - result.getMasterNodes().add(resourceManagerEntity); - } - double value = (rmUrls.length - inActiveHosts) * 1.0 / rmUrls.length; - result.getMetrics().add(EntityBuilderHelper.generateMetric(TopologyConstants.RESOURCE_MANAGER_ROLE, value, site, timestamp)); - - doCheckHistoryServer(timestamp, result); - return result; - } - - private void doCheckHistoryServer(long updateTime, TopologyEntityParserResult result) { - if (historyServerUrl == null || historyServerUrl.isEmpty()) { - return; - } - String url = PathResolverHelper.buildUrlPath(historyServerUrl, YARN_HISTORY_SERVER_URL); - double activeHosts = 0; - InputStream is = null; - try { - is = URLResourceFetcher.openURLStream(url); - activeHosts++; - } catch (ServiceNotResponseException e) { - LOGGER.error(e.getMessage(), e); - } finally { - URLResourceFetcher.closeInputStream(is); - } - result.getMetrics().add(EntityBuilderHelper.generateMetric(TopologyConstants.HISTORY_SERVER_ROLE, activeHosts, site, updateTime)); - } - - private boolean doParse(long timestamp, InputStream is, TopologyEntityParserResult result) throws IOException { - boolean isSuccess = false; - String nodeKey; - Map<String, MRServiceTopologyAPIEntity> nmMap = new HashMap<>(); - Map<String, Integer> statusCount = new HashMap<>(); - try { - YarnNodeInfoWrapper nodeWrapper = OBJ_MAPPER.readValue(is, YarnNodeInfoWrapper.class); - int rackWarningCount = 0; - final List<YarnNodeInfo> list = nodeWrapper.getNodes().getNode(); - for (YarnNodeInfo info : list) { - final MRServiceTopologyAPIEntity nodeManagerEntity = createEntity(NODE_MANAGER_ROLE, info.getNodeHostName(), timestamp); - if (!extractRack(info).equalsIgnoreCase(nodeManagerEntity.getTags().get(RACK_TAG)) && rackWarningCount < 10) { - LOGGER.warn("rack info is inconsistent, please configure the right rack resolver class"); - rackWarningCount++; - } - nodeManagerEntity.setLastHealthUpdate(info.getLastHealthUpdate()); - if (info.getHealthReport() != null && (!info.getHealthReport().isEmpty())) { - nodeManagerEntity.setHealthReport(info.getHealthReport()); - } - if (info.getState() != null) { - String state = info.getState().toLowerCase(); - nodeManagerEntity.setStatus(state); - } else { - String state = "null"; - nodeManagerEntity.setStatus(state); - } - - nodeKey = generateKey(nodeManagerEntity); - if (nmMap.containsKey(nodeKey)) { - if (nmMap.get(nodeKey).getLastUpdateTime() < nodeManagerEntity.getLastHealthUpdate()) { - updateStatusCount(statusCount, nmMap.get(nodeKey).getStatus(), -1); - nmMap.put(nodeKey, nodeManagerEntity); - updateStatusCount(statusCount, nodeManagerEntity.getStatus(), 1); - } - } else { - nmMap.put(nodeKey, nodeManagerEntity); - updateStatusCount(statusCount, nodeManagerEntity.getStatus(), 1); - } - } - LOGGER.info("Total NMs: {}, Actual NMs: {}, Details: {}", list.size(), nmMap.size(), statusCount); - - double value = statusCount.get(NODE_MANAGER_RUNNING_STATUS) * 1d / nmMap.size(); - result.getMetrics().add(EntityBuilderHelper.generateMetric(TopologyConstants.NODE_MANAGER_ROLE, value, site, timestamp)); - result.getSlaveNodes().addAll(nmMap.values()); - isSuccess = true; - } finally { - URLResourceFetcher.closeInputStream(is); - } - return isSuccess; - } - - private void updateStatusCount(Map<String, Integer> statusCount, String status, int increment) { - if (!statusCount.containsKey(status)) { - statusCount.put(status, 0); - } - statusCount.put(status, statusCount.get(status) + increment); - } - - private String extractMasterHost(String url) { - Matcher matcher = TopologyConstants.HTTP_HOST_MATCH_PATTERN.matcher(url); - if (matcher.find()) { - return matcher.group(1); - } - return url; - } - - private String extractRack(YarnNodeInfo info) { - if (info.getRack() == null) { // if a host is DECOMMISSIONED, then no rack info - return rackResolver.resolve(info.getNodeHostName()); - } - String value = info.getRack(); - value = value.substring(value.lastIndexOf('/') + 1); - return value; - } - - - private MRServiceTopologyAPIEntity createEntity(String roleType, String hostname, long updateTime) { - MRServiceTopologyAPIEntity entity = new MRServiceTopologyAPIEntity(); - entity.setTimestamp(updateTime); - entity.setLastUpdateTime(updateTime); - Map<String, String> tags = new HashMap<String, String>(); - entity.setTags(tags); - tags.put(SITE_TAG, site); - tags.put(ROLE_TAG, roleType); - tags.put(HOSTNAME_TAG, hostname); - String resolvedRack = rackResolver.resolve(hostname); - tags.put(RACK_TAG, resolvedRack); - return entity; - } - -} +/* + * 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.topology.extractor.mr; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.eagle.app.utils.PathResolverHelper; +import org.apache.eagle.topology.TopologyCheckAppConfig; +import org.apache.eagle.topology.TopologyConstants; +import org.apache.eagle.topology.extractor.TopologyEntityParserResult; +import org.apache.eagle.topology.entity.MRServiceTopologyAPIEntity; +import org.apache.eagle.topology.extractor.TopologyEntityParser; +import org.apache.eagle.topology.resolver.TopologyRackResolver; +import org.apache.eagle.topology.utils.EntityBuilderHelper; +import org.apache.eagle.app.utils.connection.ServiceNotResponseException; +import org.apache.eagle.app.utils.connection.URLResourceFetcher; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; + +import static org.apache.eagle.topology.TopologyConstants.*; +import static org.apache.eagle.topology.utils.EntityBuilderHelper.generateKey; + +public class MRTopologyEntityParser implements TopologyEntityParser { + + private String[] rmUrls; + private String historyServerUrl; + private String site; + private TopologyRackResolver rackResolver; + + private static final String YARN_NODES_URL = "/ws/v1/cluster/nodes?anonymous=true"; + private static final String YARN_HISTORY_SERVER_URL = "/ws/v1/history/info"; + + private static final Logger LOGGER = LoggerFactory.getLogger(MRTopologyEntityParser.class); + private static final ObjectMapper OBJ_MAPPER = new ObjectMapper(); + + static { + OBJ_MAPPER.configure(JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS, true); + } + + public MRTopologyEntityParser(String site, TopologyCheckAppConfig.MRConfig config, TopologyRackResolver rackResolver) { + this.site = site; + this.rmUrls = config.rmUrls; + this.historyServerUrl = config.historyServerUrl; + this.rackResolver = rackResolver; + } + + @Override + public TopologyConstants.HadoopVersion getHadoopVersion() { + return TopologyConstants.HadoopVersion.V2; + } + + @Override + public TopologyConstants.TopologyType getTopologyType() { + return TopologyConstants.TopologyType.MR; + } + + @Override + public TopologyEntityParserResult parse(long timestamp) { + final TopologyEntityParserResult result = new TopologyEntityParserResult(); + + String rmStatus; + int inActiveHosts = 0; + boolean isSuccess = false; + for (String url : rmUrls) { + MRServiceTopologyAPIEntity resourceManagerEntity = createEntity(TopologyConstants.RESOURCE_MANAGER_ROLE, + extractMasterHost(url), timestamp); + rmStatus = RESOURCE_MANAGER_ACTIVE_STATUS; + try { + InputStream is = URLResourceFetcher.openURLStream(PathResolverHelper.buildUrlPath(url, YARN_NODES_URL)); + if (!isSuccess) { + isSuccess = doParse(timestamp, is, result); + } + } catch (IOException e) { + inActiveHosts++; + LOGGER.warn(e.getMessage(), e); + rmStatus = RESOURCE_MANAGER_INACTIVE_STATUS; + } catch (Exception ex) { + LOGGER.error("fail to parse url {} due to {}, and will cancel this parsing", url, ex.getMessage(), ex); + result.getSlaveNodes().clear(); + } + resourceManagerEntity.setStatus(rmStatus); + result.getMasterNodes().add(resourceManagerEntity); + } + double value = (rmUrls.length - inActiveHosts) * 1.0 / rmUrls.length; + result.getMetrics().add(EntityBuilderHelper.generateMetric(TopologyConstants.RESOURCE_MANAGER_ROLE, value, site, timestamp)); + + doCheckHistoryServer(timestamp, result); + return result; + } + + private void doCheckHistoryServer(long updateTime, TopologyEntityParserResult result) { + if (historyServerUrl == null || historyServerUrl.isEmpty()) { + return; + } + String url = PathResolverHelper.buildUrlPath(historyServerUrl, YARN_HISTORY_SERVER_URL); + double activeHosts = 0; + InputStream is = null; + try { + is = URLResourceFetcher.openURLStream(url); + activeHosts++; + } catch (ServiceNotResponseException e) { + LOGGER.error(e.getMessage(), e); + } finally { + URLResourceFetcher.closeInputStream(is); + } + result.getMetrics().add(EntityBuilderHelper.generateMetric(TopologyConstants.HISTORY_SERVER_ROLE, activeHosts, site, updateTime)); + } + + private boolean doParse(long timestamp, InputStream is, TopologyEntityParserResult result) throws IOException { + boolean isSuccess = false; + String nodeKey; + Map<String, MRServiceTopologyAPIEntity> nmMap = new HashMap<>(); + Map<String, Integer> statusCount = new HashMap<>(); + try { + YarnNodeInfoWrapper nodeWrapper = OBJ_MAPPER.readValue(is, YarnNodeInfoWrapper.class); + int rackWarningCount = 0; + final List<YarnNodeInfo> list = nodeWrapper.getNodes().getNode(); + for (YarnNodeInfo info : list) { + final MRServiceTopologyAPIEntity nodeManagerEntity = createEntity(NODE_MANAGER_ROLE, info.getNodeHostName(), timestamp); + if (!extractRack(info).equalsIgnoreCase(nodeManagerEntity.getTags().get(RACK_TAG)) && rackWarningCount < 10) { + LOGGER.warn("rack info is inconsistent, please configure the right rack resolver class"); + rackWarningCount++; + } + nodeManagerEntity.setLastHealthUpdate(info.getLastHealthUpdate()); + if (info.getHealthReport() != null && (!info.getHealthReport().isEmpty())) { + nodeManagerEntity.setHealthReport(info.getHealthReport()); + } + if (info.getState() != null) { + String state = info.getState().toLowerCase(); + nodeManagerEntity.setStatus(state); + } else { + String state = "null"; + nodeManagerEntity.setStatus(state); + } + + nodeKey = generateKey(nodeManagerEntity); + if (nmMap.containsKey(nodeKey)) { + if (nmMap.get(nodeKey).getLastUpdateTime() < nodeManagerEntity.getLastHealthUpdate()) { + updateStatusCount(statusCount, nmMap.get(nodeKey).getStatus(), -1); + nmMap.put(nodeKey, nodeManagerEntity); + updateStatusCount(statusCount, nodeManagerEntity.getStatus(), 1); + } + } else { + nmMap.put(nodeKey, nodeManagerEntity); + updateStatusCount(statusCount, nodeManagerEntity.getStatus(), 1); + } + } + LOGGER.info("Total NMs: {}, Actual NMs: {}, Details: {}", list.size(), nmMap.size(), statusCount); + + double value = statusCount.get(NODE_MANAGER_RUNNING_STATUS) * 1d / nmMap.size(); + result.getMetrics().add(EntityBuilderHelper.generateMetric(TopologyConstants.NODE_MANAGER_ROLE, value, site, timestamp)); + result.getSlaveNodes().addAll(nmMap.values()); + isSuccess = true; + } finally { + URLResourceFetcher.closeInputStream(is); + } + return isSuccess; + } + + private void updateStatusCount(Map<String, Integer> statusCount, String status, int increment) { + if (!statusCount.containsKey(status)) { + statusCount.put(status, 0); + } + statusCount.put(status, statusCount.get(status) + increment); + } + + private String extractMasterHost(String url) { + Matcher matcher = TopologyConstants.HTTP_HOST_MATCH_PATTERN.matcher(url); + if (matcher.find()) { + return matcher.group(1); + } + return url; + } + + private String extractRack(YarnNodeInfo info) { + if (info.getRack() == null) { // if a host is DECOMMISSIONED, then no rack info + return rackResolver.resolve(info.getNodeHostName()); + } + String value = info.getRack(); + value = value.substring(value.lastIndexOf('/') + 1); + return value; + } + + + private MRServiceTopologyAPIEntity createEntity(String roleType, String hostname, long updateTime) { + MRServiceTopologyAPIEntity entity = new MRServiceTopologyAPIEntity(); + entity.setTimestamp(updateTime); + entity.setLastUpdateTime(updateTime); + Map<String, String> tags = new HashMap<String, String>(); + entity.setTags(tags); + tags.put(SITE_TAG, site); + tags.put(ROLE_TAG, roleType); + tags.put(HOSTNAME_TAG, hostname); + String resolvedRack = rackResolver.resolve(hostname); + tags.put(RACK_TAG, resolvedRack); + return entity; + } + +} http://git-wip-us.apache.org/repos/asf/eagle/blob/0a429976/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/YarnNodeInfo.java ---------------------------------------------------------------------- diff --git a/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/YarnNodeInfo.java b/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/YarnNodeInfo.java index d3664e2..0cd0d75 100644 --- a/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/YarnNodeInfo.java +++ b/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/YarnNodeInfo.java @@ -18,8 +18,8 @@ package org.apache.eagle.topology.extractor.mr; -import org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.map.annotate.JsonSerialize; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) @JsonIgnoreProperties(ignoreUnknown = true) http://git-wip-us.apache.org/repos/asf/eagle/blob/0a429976/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/YarnNodeInfoWrapper.java ---------------------------------------------------------------------- diff --git a/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/YarnNodeInfoWrapper.java b/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/YarnNodeInfoWrapper.java index 8079e49..361c759 100644 --- a/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/YarnNodeInfoWrapper.java +++ b/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/YarnNodeInfoWrapper.java @@ -18,8 +18,8 @@ package org.apache.eagle.topology.extractor.mr; -import org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.map.annotate.JsonSerialize; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) @JsonIgnoreProperties(ignoreUnknown = true) http://git-wip-us.apache.org/repos/asf/eagle/blob/0a429976/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/YarnNodeInfos.java ---------------------------------------------------------------------- diff --git a/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/YarnNodeInfos.java b/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/YarnNodeInfos.java index 536edd8..77a281a 100644 --- a/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/YarnNodeInfos.java +++ b/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/mr/YarnNodeInfos.java @@ -18,8 +18,8 @@ package org.apache.eagle.topology.extractor.mr; -import org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.map.annotate.JsonSerialize; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.List; http://git-wip-us.apache.org/repos/asf/eagle/blob/0a429976/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/HBaseServiceTopologyAPIEntity.java ---------------------------------------------------------------------- diff --git a/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/HBaseServiceTopologyAPIEntity.java b/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/HBaseServiceTopologyAPIEntity.java index d91ff5c..9d7233e 100644 --- a/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/HBaseServiceTopologyAPIEntity.java +++ b/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/HBaseServiceTopologyAPIEntity.java @@ -20,7 +20,7 @@ package org.apache.eagle.topology.entity; import org.apache.eagle.log.entity.meta.*; import org.apache.eagle.topology.TopologyConstants; -import org.codehaus.jackson.map.annotate.JsonSerialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) @Table("hadoop_topology") http://git-wip-us.apache.org/repos/asf/eagle/blob/0a429976/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/HdfsServiceTopologyAPIEntity.java ---------------------------------------------------------------------- diff --git a/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/HdfsServiceTopologyAPIEntity.java b/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/HdfsServiceTopologyAPIEntity.java index f39d056..4054cba 100644 --- a/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/HdfsServiceTopologyAPIEntity.java +++ b/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/HdfsServiceTopologyAPIEntity.java @@ -1,123 +1,124 @@ -/* - * 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.topology.entity; - -import org.apache.eagle.log.entity.meta.*; -import org.apache.eagle.topology.TopologyConstants; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) -@Table("hadoop_topology") -@ColumnFamily("f") -@Prefix("hdfsservicestatus") -@Service(TopologyConstants.HDFS_INSTANCE_SERVICE_NAME) -@TimeSeries(false) -public class HdfsServiceTopologyAPIEntity extends TopologyBaseAPIEntity { - @Column("a") - private String status; - @Column("b") - private String configuredCapacityTB; - @Column("c") - private String usedCapacityTB; - @Column("d") - private String numBlocks; - @Column("e") - private String numFailedVolumes; - @Column("f") - private long writtenTxidDiff; - @Column("g") - private long lastUpdateTime; - @Column("h") - private String version; - - public long getLastUpdateTime() { - return lastUpdateTime; - } - - public void setLastUpdateTime(long lastUpdateTime) { - this.lastUpdateTime = lastUpdateTime; - valueChanged("lastUpdateTime"); - } - - public String getNumFailedVolumes() { - return numFailedVolumes; - } - - public void setNumFailedVolumes(String numFailedVolumes) { - this.numFailedVolumes = numFailedVolumes; - valueChanged("numFailedVolumes"); - } - - public String getNumBlocks() { - return numBlocks; - } - - public void setNumBlocks(String numBlocks) { - this.numBlocks = numBlocks; - valueChanged("numBlocks"); - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - valueChanged("status"); - } - - public String getConfiguredCapacityTB() { - return configuredCapacityTB; - } - - public void setConfiguredCapacityTB(String configuredCapacityTB) { - this.configuredCapacityTB = configuredCapacityTB; - valueChanged("configuredCapacityTB"); - } - - public String getUsedCapacityTB() { - return usedCapacityTB; - } - - public void setUsedCapacityTB(String usedCapacityTB) { - this.usedCapacityTB = usedCapacityTB; - valueChanged("usedCapacityTB"); - } - - public long getWrittenTxidDiff() { - return writtenTxidDiff; - } - - public void setWrittenTxidDiff(long writtenTxidDiff) { - this.writtenTxidDiff = writtenTxidDiff; - valueChanged("writtenTxidDiff"); - } - - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - valueChanged("version"); - } - - -} - +/* + * 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.topology.entity; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import org.apache.eagle.log.entity.meta.*; +import org.apache.eagle.topology.TopologyConstants; + + +@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) +@Table("hadoop_topology") +@ColumnFamily("f") +@Prefix("hdfsservicestatus") +@Service(TopologyConstants.HDFS_INSTANCE_SERVICE_NAME) +@TimeSeries(false) +public class HdfsServiceTopologyAPIEntity extends TopologyBaseAPIEntity { + @Column("a") + private String status; + @Column("b") + private String configuredCapacityTB; + @Column("c") + private String usedCapacityTB; + @Column("d") + private String numBlocks; + @Column("e") + private String numFailedVolumes; + @Column("f") + private long writtenTxidDiff; + @Column("g") + private long lastUpdateTime; + @Column("h") + private String version; + + public long getLastUpdateTime() { + return lastUpdateTime; + } + + public void setLastUpdateTime(long lastUpdateTime) { + this.lastUpdateTime = lastUpdateTime; + valueChanged("lastUpdateTime"); + } + + public String getNumFailedVolumes() { + return numFailedVolumes; + } + + public void setNumFailedVolumes(String numFailedVolumes) { + this.numFailedVolumes = numFailedVolumes; + valueChanged("numFailedVolumes"); + } + + public String getNumBlocks() { + return numBlocks; + } + + public void setNumBlocks(String numBlocks) { + this.numBlocks = numBlocks; + valueChanged("numBlocks"); + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + valueChanged("status"); + } + + public String getConfiguredCapacityTB() { + return configuredCapacityTB; + } + + public void setConfiguredCapacityTB(String configuredCapacityTB) { + this.configuredCapacityTB = configuredCapacityTB; + valueChanged("configuredCapacityTB"); + } + + public String getUsedCapacityTB() { + return usedCapacityTB; + } + + public void setUsedCapacityTB(String usedCapacityTB) { + this.usedCapacityTB = usedCapacityTB; + valueChanged("usedCapacityTB"); + } + + public long getWrittenTxidDiff() { + return writtenTxidDiff; + } + + public void setWrittenTxidDiff(long writtenTxidDiff) { + this.writtenTxidDiff = writtenTxidDiff; + valueChanged("writtenTxidDiff"); + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + valueChanged("version"); + } + + +} + http://git-wip-us.apache.org/repos/asf/eagle/blob/0a429976/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/JournalNodeServiceAPIEntity.java ---------------------------------------------------------------------- diff --git a/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/JournalNodeServiceAPIEntity.java b/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/JournalNodeServiceAPIEntity.java index 392b107..820d68d 100644 --- a/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/JournalNodeServiceAPIEntity.java +++ b/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/JournalNodeServiceAPIEntity.java @@ -20,7 +20,7 @@ package org.apache.eagle.topology.entity; import org.apache.eagle.log.entity.meta.*; import org.apache.eagle.topology.TopologyConstants; -import org.codehaus.jackson.map.annotate.JsonSerialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) @Table("hadoop_topology") http://git-wip-us.apache.org/repos/asf/eagle/blob/0a429976/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/MRServiceTopologyAPIEntity.java ---------------------------------------------------------------------- diff --git a/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/MRServiceTopologyAPIEntity.java b/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/MRServiceTopologyAPIEntity.java index 006c898..fa7e1a4 100644 --- a/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/MRServiceTopologyAPIEntity.java +++ b/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/entity/MRServiceTopologyAPIEntity.java @@ -20,7 +20,7 @@ package org.apache.eagle.topology.entity; import org.apache.eagle.log.entity.meta.*; import org.apache.eagle.topology.TopologyConstants; -import org.codehaus.jackson.map.annotate.JsonSerialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) @Table("hadoop_topology") http://git-wip-us.apache.org/repos/asf/eagle/blob/0a429976/eagle-webservice/src/main/webapp/WEB-INF/web.xml ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/webapp/WEB-INF/web.xml b/eagle-webservice/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..e69de29 http://git-wip-us.apache.org/repos/asf/eagle/blob/0a429976/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index da4470f..5ba588a 100755 --- a/pom.xml +++ b/pom.xml @@ -215,7 +215,6 @@ <gson.version>2.2.2</gson.version> <guava.version>15.0</guava.version> <fasterxml-jackson.version>2.5.4</fasterxml-jackson.version> - <codehaus-jackson.version>1.9.13</codehaus-jackson.version> <jsoup.version>1.7.3</jsoup.version> <io.netty.version>3.6.7.Final</io.netty.version> <org.json.version>20131018</org.json.version>