From 0e83844686a7227ee40dee227d1f8fed26a3a034 Mon Sep 17 00:00:00 2001 From: ascrutae Date: Mon, 22 Feb 2016 14:34:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=201.=20=E7=AC=AC?= =?UTF-8?q?=E4=B8=80=E6=AC=A1MapReduce=E6=B2=A1=E6=9C=89=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E7=9A=84=E9=97=AE=E9=A2=98=202.=20Summary?= =?UTF-8?q?=E8=A1=A8=E4=B8=AD=E7=9A=84Rowkey=E6=B7=BB=E5=8A=A0=E4=B8=8AUse?= =?UTF-8?q?rId=E7=9A=84=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../categorize2chain/ChainSummary.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/categorize2chain/ChainSummary.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/categorize2chain/ChainSummary.java index 2db472268..c15346306 100644 --- a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/categorize2chain/ChainSummary.java +++ b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/categorize2chain/ChainSummary.java @@ -3,17 +3,19 @@ package com.ai.cloud.skywalking.analysis.categorize2chain; import com.ai.cloud.skywalking.analysis.categorize2chain.model.ChainInfo; import com.ai.cloud.skywalking.analysis.categorize2chain.model.ChainNode; import com.ai.cloud.skywalking.analysis.categorize2chain.util.HBaseUtil; - import org.apache.hadoop.hbase.client.Put; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; -import java.sql.*; +import java.sql.SQLException; +import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.*; -import java.util.Date; public class ChainSummary { + private static Logger logger = LoggerFactory.getLogger(ChainSummary.class.getName()); private Map loadedChainSpecificTimeWindowSummary; private Map updateChainInfo; @@ -24,19 +26,17 @@ public class ChainSummary { public void summary(ChainInfo chainInfo) { for (ChainNode node : chainInfo.getNodes()) { - String csk = generateChainSummaryKey(chainInfo.getCID(), node.getStartDate()); - if (loadedChainSpecificTimeWindowSummary.containsKey(csk)) { + String csk = generateChainSummaryKey(chainInfo, node.getStartDate()); + if (!loadedChainSpecificTimeWindowSummary.containsKey(csk)) { loadedChainSpecificTimeWindowSummary.put(csk, ChainSpecificTimeWindowSummary.load(csk)); } - loadedChainSpecificTimeWindowSummary.get(csk).summaryNodeValue(node); } - updateChainInfo.put(chainInfo.getCID(), new Timestamp(System.currentTimeMillis())); } - private String generateChainSummaryKey(String chainToken, long startDate) { - return chainToken + "-" + new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"). + private String generateChainSummaryKey(ChainInfo chainInfo, long startDate) { + return chainInfo.getCID() + "-" + chainInfo.getUserId() + "-" + new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"). format(new Date(startDate / (1000 * 60 * 60) * (1000 * 60 * 60))); } @@ -51,6 +51,7 @@ public class ChainSummary { private void batchSaveChainSpecificTimeWindowSummary() throws IOException, InterruptedException { List puts = new ArrayList(); + logger.info("There are [" + loadedChainSpecificTimeWindowSummary.size() + "] summary data will be storage to HBase"); for (Map.Entry entry : loadedChainSpecificTimeWindowSummary.entrySet()) { Put put = new Put(entry.getKey().getBytes()); entry.getValue().save(put);