From 3de7d5ee64789a436292dda748e47bcf2f112c2d Mon Sep 17 00:00:00 2001 From: shaofengshi Date: Wed, 31 Dec 2014 11:39:35 +0800 Subject: [PATCH] Add some log to test run Hcat on a big avro table. --- .../hadoop/cardinality/HiveColumnCardinalityJob.java | 12 ++++++++++++ .../java/com/kylinolap/rest/service/CubeService.java | 18 ++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/job/src/main/java/com/kylinolap/job/hadoop/cardinality/HiveColumnCardinalityJob.java b/job/src/main/java/com/kylinolap/job/hadoop/cardinality/HiveColumnCardinalityJob.java index 92ea49d..14a907c 100644 --- a/job/src/main/java/com/kylinolap/job/hadoop/cardinality/HiveColumnCardinalityJob.java +++ b/job/src/main/java/com/kylinolap/job/hadoop/cardinality/HiveColumnCardinalityJob.java @@ -7,7 +7,9 @@ import java.io.InputStream; import java.io.StringWriter; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.apache.commons.cli.Option; import org.apache.commons.cli.OptionBuilder; @@ -32,6 +34,9 @@ import org.apache.hive.hcatalog.data.schema.HCatSchema; import org.apache.hive.hcatalog.mapreduce.HCatInputFormat; +import com.kylinolap.job.JobDAO; +import com.kylinolap.job.JobInstance; +import com.kylinolap.job.JobInstance.JobStep; import com.kylinolap.job.hadoop.AbstractHadoopJob; public class HiveColumnCardinalityJob extends AbstractHadoopJob { @@ -143,6 +148,7 @@ public int run(String[] args) throws Exception { HCatInputFormat.setInput(job, "default", table); + System.out.println("Set input format as HCat on table '" + table + "'"); HCatSchema tableSchema = HCatInputFormat.getTableSchema(job.getConfiguration()); job.getConfiguration().set(KEY_TABLE_COLUMN_NUMBER, String.valueOf(tableSchema.size())); @@ -161,7 +167,13 @@ public int run(String[] args) throws Exception { this.deletePath(job.getConfiguration(), output); + isAsync = true; + System.out.println("Going to submit HiveColumnCardinalityJob for table '" + table + "'"); int result = waitForCompletion(job); + + System.out.println("Get job track url " + job.getJobID() + "\n"); + System.out.println("Get job track url " + job.getTrackingURL() + "\n"); + return result; } catch (Exception e) { printUsage(options); diff --git a/server/src/main/java/com/kylinolap/rest/service/CubeService.java b/server/src/main/java/com/kylinolap/rest/service/CubeService.java index 1f2fe72..6051d91 100644 --- a/server/src/main/java/com/kylinolap/rest/service/CubeService.java +++ b/server/src/main/java/com/kylinolap/rest/service/CubeService.java @@ -453,6 +453,24 @@ public void generateCardinality(String tableName, String format, String delimite logger.error("Cannot find table descirptor " + tableName, e); throw e; } + /* + Map exd = getMetadataManager().getTableDescExd(tableName); + if (exd == null || !Boolean.valueOf(exd.get(MetadataConstances.TABLE_EXD_STATUS_KEY))) { + throw new IllegalArgumentException("Table " + tableName + " does not exist."); + } + String location = exd.get(MetadataConstances.TABLE_EXD_LOCATION); + if (location == null || MetadataConstances.TABLE_EXD_DEFAULT_VALUE.equals(location)) { + throw new IllegalArgumentException("Cannot get table " + tableName + " location, the location is " + location); + } + String inputFormat = exd.get(MetadataConstances.TABLE_EXD_IF); + if (inputFormat == null || MetadataConstances.TABLE_EXD_DEFAULT_VALUE.equals(inputFormat)) { + throw new IllegalArgumentException("Cannot get table " + tableName + " input format, the format is " + inputFormat); + } + String delim = exd.get(MetadataConstances.TABLE_EXD_DELIM); + if (delimiter != null) { + delim = delimiter; + } + */ String jarPath = getKylinConfig().getKylinJobJarPath(); String outPath = HiveColumnCardinalityJob.OUTPUT_PATH + "/" + tableName; String[] args = new String[] {"-table", tableName, "-output", outPath };