Repository: kylin Updated Branches: refs/heads/KYLIN-2360 [created] 7c16323bd
KYLIN-2360 fix bugs reported by Sonar Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/7c16323b Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/7c16323b Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/7c16323b Branch: refs/heads/KYLIN-2360 Commit: 7c16323bd52d97cb6644b78f2fb48a7032c775f7 Parents: 2dfffde Author: Billy Liu <billy...@apache.org> Authored: Wed Mar 8 22:10:46 2017 -0800 Committer: Billy Liu <billy...@apache.org> Committed: Wed Mar 8 22:10:46 2017 -0800 ---------------------------------------------------------------------- .../org/apache/kylin/common/KylinConfig.java | 35 -------------------- .../kylin/common/util/HiveCmdBuilder.java | 5 ++- .../apache/kylin/common/util/SparkEntry.java | 2 +- .../apache/kylin/common/util/ZipFileUtils.java | 10 ++++-- .../java/org/apache/kylin/cube/CubeSegment.java | 3 +- .../org/apache/kylin/cube/CubeValidator.java | 4 +++ .../org/apache/kylin/cube/kv/CubeDimEncMap.java | 2 +- .../org/apache/kylin/cube/model/CubeDesc.java | 2 +- .../validation/rule/AggregationGroupRule.java | 2 +- .../kylin/dimension/IDimensionEncodingMap.java | 2 +- .../apache/kylin/metadata/MetadataManager.java | 5 ++- .../metadata/model/IJoinedFlatTableDesc.java | 2 +- .../apache/kylin/metadata/model/JoinsTree.java | 2 +- .../kylin/metadata/model/PartitionDesc.java | 2 +- .../spark/SparkBatchCubingJobBuilder2.java | 6 ++-- .../kylin/engine/spark/SparkExecutable.java | 3 +- .../kylin/query/schema/OLAPSchemaFactory.java | 6 +++- .../rest/controller/StreamingController.java | 3 ++ .../kylin/storage/hbase/util/RowCounterCLI.java | 30 ++++++++++------- .../kylin/storage/hdfs/HDFSResourceStore.java | 4 +-- .../apache/kylin/tool/CubeMetaExtractor.java | 2 +- 21 files changed, 61 insertions(+), 71 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java index 4fcc61f..c07862b 100644 --- a/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java +++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java @@ -24,10 +24,8 @@ import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.io.PrintWriter; import java.io.StringReader; import java.nio.charset.Charset; -import java.util.Enumeration; import java.util.Map; import java.util.Properties; @@ -349,39 +347,6 @@ public class KylinConfig extends KylinConfigBase { return this.base() == ((KylinConfig) another).base(); } - public static void writeOverrideProperties(Properties properties) throws IOException { - File propFile = getKylinPropertiesFile(); - File overrideFile = new File(propFile.getParentFile(), propFile.getName() + ".override"); - overrideFile.createNewFile(); - FileInputStream fis2 = null; - Properties override = new Properties(); - try { - fis2 = new FileInputStream(overrideFile); - override.load(fis2); - for (Map.Entry<Object, Object> entries : properties.entrySet()) { - override.setProperty(entries.getKey().toString(), entries.getValue().toString()); - } - } catch (IOException e) { - throw new RuntimeException(e); - } finally { - IOUtils.closeQuietly(fis2); - } - - PrintWriter pw = null; - try { - pw = new PrintWriter(overrideFile); - Enumeration<?> e = override.propertyNames(); - while (e.hasMoreElements()) { - String key = (String) e.nextElement(); - pw.println(key + "=" + override.getProperty(key)); - } - pw.close(); - } finally { - IOUtils.closeQuietly(pw); - } - - } - private static void dumpStackTrace() { //uncomment below to start debugging http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/core-common/src/main/java/org/apache/kylin/common/util/HiveCmdBuilder.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/util/HiveCmdBuilder.java b/core-common/src/main/java/org/apache/kylin/common/util/HiveCmdBuilder.java index 5942ba9..0ec2d36 100644 --- a/core-common/src/main/java/org/apache/kylin/common/util/HiveCmdBuilder.java +++ b/core-common/src/main/java/org/apache/kylin/common/util/HiveCmdBuilder.java @@ -62,9 +62,11 @@ public class HiveCmdBuilder { break; case BEELINE: BufferedWriter bw = null; + FileWriter fw = null; try { File tmpHql = File.createTempFile("beeline_", ".hql"); - bw = new BufferedWriter(new FileWriter(tmpHql)); + fw = new FileWriter(tmpHql); + bw = new BufferedWriter(fw); for (String statement : statements) { bw.write(statement); bw.newLine(); @@ -84,6 +86,7 @@ public class HiveCmdBuilder { throw new RuntimeException(e); } finally { IOUtils.closeQuietly(bw); + IOUtils.closeQuietly(fw); } break; default: http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/core-common/src/main/java/org/apache/kylin/common/util/SparkEntry.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/util/SparkEntry.java b/core-common/src/main/java/org/apache/kylin/common/util/SparkEntry.java index ce11b91..b26959f 100644 --- a/core-common/src/main/java/org/apache/kylin/common/util/SparkEntry.java +++ b/core-common/src/main/java/org/apache/kylin/common/util/SparkEntry.java @@ -28,7 +28,7 @@ public final class SparkEntry { if (!(args.length >= 2)) { throw new IllegalArgumentException(String.valueOf("-className is required")); } - if (!(args[0].equals("-className"))) { + if (!("-className".equals(args[0]))) { throw new IllegalArgumentException(String.valueOf("-className is required")); } final String className = args[1]; http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java b/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java index a2326ee..6f6d13d 100644 --- a/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java +++ b/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java @@ -40,18 +40,23 @@ public class ZipFileUtils { throw new RuntimeException("Zipfile must end with .zip"); } ZipOutputStream zipFile = null; + FileOutputStream fos = null; try { - zipFile = new ZipOutputStream(new FileOutputStream(zipFilename)); + fos = new FileOutputStream(zipFilename); + zipFile = new ZipOutputStream(fos); compressDirectoryToZipfile(normDir(new File(sourceDir).getParent()), normDir(sourceDir), zipFile); } finally { IOUtils.closeQuietly(zipFile); + IOUtils.closeQuietly(fos); } } public static void decompressZipfileToDirectory(String zipFileName, File outputFolder) throws IOException { ZipInputStream zipInputStream = null; + FileInputStream fis = null; try { - zipInputStream = new ZipInputStream(new FileInputStream(zipFileName)); + fis = new FileInputStream(zipFileName); + zipInputStream = new ZipInputStream(fis); ZipEntry zipEntry = null; while ((zipEntry = zipInputStream.getNextEntry()) != null) { logger.info("decompressing " + zipEntry.getName() + " is directory:" + zipEntry.isDirectory() + " available: " + zipInputStream.available()); @@ -73,6 +78,7 @@ public class ZipFileUtils { } } finally { IOUtils.closeQuietly(zipInputStream); + IOUtils.closeQuietly(fis); } } http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java b/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java index 45310f0..835accc 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java @@ -19,6 +19,7 @@ package org.apache.kylin.cube; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Collection; import java.util.LinkedHashMap; import java.util.List; @@ -99,7 +100,7 @@ public class CubeSegment implements Comparable<CubeSegment>, IBuildable, ISegmen private ConcurrentHashMap<String, String> snapshots; // table name ==> snapshot resource path @JsonProperty("rowkey_stats") - private List<Object[]> rowkeyStats = Lists.newArrayList(); + private ArrayList<Object[]> rowkeyStats = Lists.newArrayList(); @JsonProperty("source_partition_offset_start") @JsonInclude(JsonInclude.Include.NON_EMPTY) http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/core-cube/src/main/java/org/apache/kylin/cube/CubeValidator.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeValidator.java b/core-cube/src/main/java/org/apache/kylin/cube/CubeValidator.java index f94752f..7fbfca0 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/CubeValidator.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeValidator.java @@ -95,6 +95,10 @@ public class CubeValidator { // for all other segments, sourceOffset SHOULD fit/connect other segments for (CubeSegment seg : news) { Pair<Boolean, Boolean> pair = fitInSegments(all, seg); + if(pair == null) { + logger.warn("Empty segment found, ignore"); + continue; + } boolean startFit = pair.getFirst(); boolean endFit = pair.getSecond(); http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/core-cube/src/main/java/org/apache/kylin/cube/kv/CubeDimEncMap.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/kv/CubeDimEncMap.java b/core-cube/src/main/java/org/apache/kylin/cube/kv/CubeDimEncMap.java index bd9554a..84048ecb 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/kv/CubeDimEncMap.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/kv/CubeDimEncMap.java @@ -34,7 +34,7 @@ import org.slf4j.LoggerFactory; import java.util.Map; -public class CubeDimEncMap implements IDimensionEncodingMap, java.io.Serializable { +public class CubeDimEncMap implements IDimensionEncodingMap { private static final Logger logger = LoggerFactory.getLogger(CubeDimEncMap.class); http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java index c1469fe..f0955b5 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java @@ -440,7 +440,7 @@ public class CubeDesc extends RootPersistentEntity implements IEngineAware { } public int getBuildLevel() { - if (aggregationGroups == null || aggregationGroups.size() == 0) + if (aggregationGroups == null || aggregationGroups.isEmpty()) throw new IllegalStateException("Cube has no aggregation group."); return Collections.max(Collections2.transform(aggregationGroups, new Function<AggregationGroup, Integer>() { http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/AggregationGroupRule.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/AggregationGroupRule.java b/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/AggregationGroupRule.java index c9e2d28..5d51bc7 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/AggregationGroupRule.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/AggregationGroupRule.java @@ -50,7 +50,7 @@ public class AggregationGroupRule implements IValidatorRule<CubeDesc> { private void inner(CubeDesc cube, ValidateContext context) { - if (cube.getAggregationGroups() == null || cube.getAggregationGroups().size() == 0) { + if (cube.getAggregationGroups() == null || cube.getAggregationGroups().isEmpty()) { context.addResult(ResultLevel.ERROR, "Cube should have at least one Aggregation group."); return; } http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/core-metadata/src/main/java/org/apache/kylin/dimension/IDimensionEncodingMap.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/dimension/IDimensionEncodingMap.java b/core-metadata/src/main/java/org/apache/kylin/dimension/IDimensionEncodingMap.java index 4df4701..fb25c1e 100644 --- a/core-metadata/src/main/java/org/apache/kylin/dimension/IDimensionEncodingMap.java +++ b/core-metadata/src/main/java/org/apache/kylin/dimension/IDimensionEncodingMap.java @@ -30,7 +30,7 @@ import org.apache.kylin.metadata.model.TblColRef; * hard to enumerate all values of a encoding, thus TupleFilterDictionaryTranslater * cannot work on DimensionEncoding. */ -public interface IDimensionEncodingMap { +public interface IDimensionEncodingMap extends java.io.Serializable { /** Get dimension encoding of a column */ DimensionEncoding get(TblColRef col); http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/core-metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java b/core-metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java index 9427ace..8a02c59 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java @@ -261,15 +261,14 @@ public class MetadataManager { String path = desc.getResourcePath(); getStore().putResource(path, desc, EXTERNAL_FILTER_DESC_SERIALIZER); desc = reloadExternalFilterAt(path); - extFilterMap.put(desc.getName(), desc); - + if(desc != null) + extFilterMap.put(desc.getName(), desc); } public void removeExternalFilter(String name) throws IOException { String path = ExternalFilterDesc.concatResourcePath(name); getStore().deleteResource(path); extFilterMap.remove(name); - } private void init(KylinConfig config) throws IOException { http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/core-metadata/src/main/java/org/apache/kylin/metadata/model/IJoinedFlatTableDesc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/IJoinedFlatTableDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/IJoinedFlatTableDesc.java index b545e50..509cd46 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/IJoinedFlatTableDesc.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/IJoinedFlatTableDesc.java @@ -22,7 +22,7 @@ import java.util.List; /** */ -public interface IJoinedFlatTableDesc { +public interface IJoinedFlatTableDesc extends java.io.Serializable{ String getTableName(); http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinsTree.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinsTree.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinsTree.java index c7666cb..3efca2a 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinsTree.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinsTree.java @@ -30,7 +30,7 @@ import com.google.common.base.Preconditions; public class JoinsTree implements Serializable { private static final long serialVersionUID = 1L; - final Map<String, Chain> tableChains = new LinkedHashMap<>(); + final HashMap<String, Chain> tableChains = new LinkedHashMap<>(); public JoinsTree(TableRef rootTable, List<JoinDesc> joins) { for (JoinDesc join : joins) { http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java index 38c2de5..19c58fd 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java @@ -173,7 +173,7 @@ public class PartitionDesc implements Serializable { // ============================================================================ - public static interface IPartitionConditionBuilder { + public static interface IPartitionConditionBuilder extends java.io.Serializable{ String buildDateRangeCondition(PartitionDesc partDesc, long startInclusive, long endExclusive); } http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkBatchCubingJobBuilder2.java ---------------------------------------------------------------------- diff --git a/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkBatchCubingJobBuilder2.java b/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkBatchCubingJobBuilder2.java index e0b3e6c..a72999e 100644 --- a/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkBatchCubingJobBuilder2.java +++ b/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkBatchCubingJobBuilder2.java @@ -74,11 +74,11 @@ public class SparkBatchCubingJobBuilder2 extends BatchCubingJobBuilder2 { } - private String findJar(String className, String perferLibraryName) { + private String findJar(String className, String preferLibraryName) { try { - return ClassUtil.findContainingJar(Class.forName(className), perferLibraryName); + return ClassUtil.findContainingJar(Class.forName(className), preferLibraryName); } catch (ClassNotFoundException e) { - logger.warn("failed to locate jar for class " + className + ", ignore it"); + logger.warn("failed to locate jar for class " + className + ", ignore it", e); } return ""; http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkExecutable.java ---------------------------------------------------------------------- diff --git a/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkExecutable.java b/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkExecutable.java index 5ad21cf..145e3ff 100644 --- a/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkExecutable.java +++ b/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkExecutable.java @@ -80,8 +80,7 @@ public class SparkExecutable extends AbstractExecutable { String jars = this.getParam(JARS); //hadoop conf dir - String hadoopConf = null; - hadoopConf = System.getProperty("kylin.hadoop.conf.dir"); + String hadoopConf = System.getProperty("kylin.hadoop.conf.dir"); if (StringUtils.isEmpty(hadoopConf)) { throw new RuntimeException("kylin_hadoop_conf_dir is empty, check if there's error in the output of 'kylin.sh start'"); http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/query/src/main/java/org/apache/kylin/query/schema/OLAPSchemaFactory.java ---------------------------------------------------------------------- diff --git a/query/src/main/java/org/apache/kylin/query/schema/OLAPSchemaFactory.java b/query/src/main/java/org/apache/kylin/query/schema/OLAPSchemaFactory.java index 132e65a..ffa2ee7 100644 --- a/query/src/main/java/org/apache/kylin/query/schema/OLAPSchemaFactory.java +++ b/query/src/main/java/org/apache/kylin/query/schema/OLAPSchemaFactory.java @@ -33,6 +33,7 @@ import org.apache.calcite.schema.SchemaFactory; import org.apache.calcite.schema.SchemaPlus; import org.apache.calcite.util.ConversionUtil; import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.apache.kylin.common.KylinConfig; import org.apache.kylin.measure.MeasureTypeFactory; @@ -101,10 +102,11 @@ public class OLAPSchemaFactory implements SchemaFactory { } } + FileWriter out = null; try { File tmp = File.createTempFile("olap_model_", ".json"); - FileWriter out = new FileWriter(tmp); + out = new FileWriter(tmp); out.write("{\n"); out.write(" \"version\": \"1.0\",\n"); out.write(" \"defaultSchema\": \"" + majoritySchemaName + "\",\n"); @@ -138,6 +140,8 @@ public class OLAPSchemaFactory implements SchemaFactory { } catch (IOException e) { throw new RuntimeException(e); + } finally { + IOUtils.closeQuietly(out); } } http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/server-base/src/main/java/org/apache/kylin/rest/controller/StreamingController.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/StreamingController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/StreamingController.java index 407ee2e..6e096b0 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/controller/StreamingController.java +++ b/server-base/src/main/java/org/apache/kylin/rest/controller/StreamingController.java @@ -108,6 +108,9 @@ public class StreamingController extends BasicController { StreamingConfig streamingConfig = deserializeSchemalDesc(streamingRequest); KafkaConfig kafkaConfig = deserializeKafkaSchemalDesc(streamingRequest); + if(streamingConfig == null || kafkaConfig == null){ + return streamingRequest; + } boolean saveStreamingSuccess = false, saveKafkaSuccess = false; try { http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/RowCounterCLI.java ---------------------------------------------------------------------- diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/RowCounterCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/RowCounterCLI.java index db516bb..ed6da72 100644 --- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/RowCounterCLI.java +++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/RowCounterCLI.java @@ -21,6 +21,7 @@ package org.apache.kylin.storage.hbase.util; import java.io.IOException; import java.util.Iterator; +import org.apache.commons.io.IOUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Connection; @@ -43,6 +44,7 @@ public class RowCounterCLI { if (args == null || args.length != 3) { System.out.println("Usage: hbase org.apache.hadoop.util.RunJar kylin-job-latest.jar org.apache.kylin.job.tools.RowCounterCLI [HTABLE_NAME] [STARTKEY] [ENDKEY]"); + return; } System.out.println(args[0]); @@ -71,20 +73,24 @@ public class RowCounterCLI { logger.info("My Scan " + scan.toString()); - Connection conn = ConnectionFactory.createConnection(conf); - Table tableInterface = conn.getTable(TableName.valueOf(htableName)); + Connection conn = null; + try { + conn = ConnectionFactory.createConnection(conf); + Table tableInterface = conn.getTable(TableName.valueOf(htableName)); - Iterator<Result> iterator = tableInterface.getScanner(scan).iterator(); - int counter = 0; - while (iterator.hasNext()) { - iterator.next(); - counter++; - if (counter % 1000 == 1) { - System.out.println("number of rows: " + counter); + Iterator<Result> iterator = tableInterface.getScanner(scan).iterator(); + int counter = 0; + while (iterator.hasNext()) { + iterator.next(); + counter++; + if (counter % 1000 == 1) { + System.out.println("number of rows: " + counter); + } } + System.out.println("number of rows: " + counter); + tableInterface.close(); + }finally { + IOUtils.closeQuietly(conn); } - System.out.println("number of rows: " + counter); - tableInterface.close(); - conn.close(); } } http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/storage-hbase/src/main/java/org/apache/kylin/storage/hdfs/HDFSResourceStore.java ---------------------------------------------------------------------- diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hdfs/HDFSResourceStore.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hdfs/HDFSResourceStore.java index 6744805..31f68e8 100644 --- a/storage-hbase/src/main/java/org/apache/kylin/storage/hdfs/HDFSResourceStore.java +++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hdfs/HDFSResourceStore.java @@ -49,7 +49,7 @@ public class HDFSResourceStore extends ResourceStore { private FileSystem fs; - public HDFSResourceStore(KylinConfig kylinConfig) throws Exception { + public HDFSResourceStore(KylinConfig kylinConfig) throws IOException { super(kylinConfig); String metadataUrl = kylinConfig.getMetadataUrl(); int cut = metadataUrl.indexOf('@'); @@ -73,7 +73,7 @@ public class HDFSResourceStore extends ResourceStore { } - private void createMetaFolder(Path metaDirName, KylinConfig kylinConfig) throws Exception { + private void createMetaFolder(Path metaDirName, KylinConfig kylinConfig) throws IOException { //create hdfs meta path if (!fs.exists(metaDirName)) { fs.mkdirs(metaDirName); http://git-wip-us.apache.org/repos/asf/kylin/blob/7c16323b/tool/src/main/java/org/apache/kylin/tool/CubeMetaExtractor.java ---------------------------------------------------------------------- diff --git a/tool/src/main/java/org/apache/kylin/tool/CubeMetaExtractor.java b/tool/src/main/java/org/apache/kylin/tool/CubeMetaExtractor.java index 35831f7..4e80708 100644 --- a/tool/src/main/java/org/apache/kylin/tool/CubeMetaExtractor.java +++ b/tool/src/main/java/org/apache/kylin/tool/CubeMetaExtractor.java @@ -274,7 +274,7 @@ public class CubeMetaExtractor extends AbstractInfoExtractor { objectMapper.writeValue(f, rootNode); } } catch (JsonProcessingException ex) { - logger.info("cannot parse file {}", f); + logger.info("cannot parse file {}", f, ex); } }