Skip to content

Commit

Permalink
KYLIN-1741 Enhance diagnosis tool
Browse files Browse the repository at this point in the history
  • Loading branch information
lidongsjtu committed Jun 10, 2016
1 parent b044ed7 commit 2d80bac
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 14 deletions.
47 changes: 34 additions & 13 deletions tool/src/main/java/org/apache/kylin/tool/DiagnosisInfoCLI.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,21 @@
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.io.FileUtils;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.OptionsHelper;
import org.apache.kylin.metadata.project.ProjectInstance;
import org.apache.kylin.metadata.project.ProjectManager;
import org.apache.kylin.tool.util.ToolUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.common.collect.Lists;

public class DiagnosisInfoCLI extends AbstractInfoExtractor {
private static final Logger logger = LoggerFactory.getLogger(DiagnosisInfoCLI.class);

Expand Down Expand Up @@ -61,25 +67,40 @@ public static void main(String args[]) {
diagnosisInfoCLI.execute(args);
}

private List<String> getProjects(String projectSeed) {
List<String> result = Lists.newLinkedList();
if (projectSeed.equalsIgnoreCase("-all")) {
ProjectManager projectManager = ProjectManager.getInstance(KylinConfig.getInstanceFromEnv());
for (ProjectInstance projectInstance : projectManager.listAllProjects()) {
result.add(projectInstance.getName());
}
} else {
result.add(projectSeed);
}
return result;
}

@Override
protected void executeExtract(OptionsHelper optionsHelper, File exportDir) throws IOException {
final String project = optionsHelper.getOptionValue(options.getOption("project"));
final String projectInput = optionsHelper.getOptionValue(options.getOption("project"));
boolean includeConf = optionsHelper.hasOption(OPTION_INCLUDE_CONF) ? Boolean.valueOf(optionsHelper.getOptionValue(OPTION_INCLUDE_CONF)) : true;
boolean includeHBase = optionsHelper.hasOption(OPTION_INCLUDE_HBASE) ? Boolean.valueOf(optionsHelper.getOptionValue(OPTION_INCLUDE_HBASE)) : true;
boolean includeClient = optionsHelper.hasOption(OPTION_INCLUDE_CLIENT) ? Boolean.valueOf(optionsHelper.getOptionValue(OPTION_INCLUDE_CLIENT)) : true;

// export cube metadata
String[] cubeMetaArgs = { "-destDir", new File(exportDir, "metadata").getAbsolutePath(), "-project", project, "-compress", "false", "-submodule", "true" };
CubeMetaExtractor cubeMetaExtractor = new CubeMetaExtractor();
logger.info("CubeMetaExtractor args: " + Arrays.toString(cubeMetaArgs));
cubeMetaExtractor.execute(cubeMetaArgs);

// export HBase
if (includeHBase) {
String[] hbaseArgs = { "-destDir", new File(exportDir, "hbase").getAbsolutePath(), "-project", project, "-compress", "false", "-submodule", "true" };
HBaseUsageExtractor hBaseUsageExtractor = new HBaseUsageExtractor();
logger.info("HBaseUsageExtractor args: " + Arrays.toString(hbaseArgs));
hBaseUsageExtractor.execute(hbaseArgs);
for (String project : getProjects(projectInput)) {
// export cube metadata
String[] cubeMetaArgs = { "-destDir", new File(exportDir, "metadata").getAbsolutePath(), "-project", project, "-compress", "false", "-submodule", "true" };
CubeMetaExtractor cubeMetaExtractor = new CubeMetaExtractor();
logger.info("CubeMetaExtractor args: " + Arrays.toString(cubeMetaArgs));
cubeMetaExtractor.execute(cubeMetaArgs);

// export HBase
if (includeHBase) {
String[] hbaseArgs = { "-destDir", new File(exportDir, "hbase").getAbsolutePath(), "-project", project, "-compress", "false", "-submodule", "true" };
HBaseUsageExtractor hBaseUsageExtractor = new HBaseUsageExtractor();
logger.info("HBaseUsageExtractor args: " + Arrays.toString(hbaseArgs));
hBaseUsageExtractor.execute(hbaseArgs);
}
}

// export conf
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public static String getConfFolder() {
if (StringUtils.isNotEmpty(path)) {
return path + File.separator + CONF;
}
return null;
throw new RuntimeException("Cannot find conf folder.");
}

public static String getHBaseMetaStoreId() throws IOException {
Expand Down

0 comments on commit 2d80bac

Please sign in to comment.