Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
v0.7.2
-
None
Description
KYLIN-883 introduces "kylin.job.hive.database.for.intermediatetable" so that user can specify a database where kylin's intermediate tables are stored. However the feature is broken and cause cube creation to fail at "Extract Fact Table Distinct Columns" step.
[pool-7-thread-2]:[2015-08-28 16:16:27,740][ERROR][org.apache.kylin.job.common.MapReduceExecutable.doWork(MapReduceExecutable.java:116)] - error execute MapReduceExecutable{id=6c0bc4ac-5a94-448a-ae5d-3dd523954a57-01, name=Extract Fact Table Distinct Columns, state=RUNNING} java.io.IOException: NoSuchObjectException(message:DEFAULT.kylin_intermediate_kylin_sales_cube_desc_19700101000000_20150822000000_6c0bc4ac_5a94_448a_ae5d_3dd523954a57 table not found) at org.apache.hive.hcatalog.mapreduce.HCatInputFormat.setInput(HCatInputFormat.java:97) at org.apache.hive.hcatalog.mapreduce.HCatInputFormat.setInput(HCatInputFormat.java:51) at org.apache.kylin.job.hadoop.cube.FactDistinctColumnsJob.setupMapper(FactDistinctColumnsJob.java:101) at org.apache.kylin.job.hadoop.cube.FactDistinctColumnsJob.run(FactDistinctColumnsJob.java:77) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) at org.apache.kylin.job.common.MapReduceExecutable.doWork(MapReduceExecutable.java:113) at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:107) at org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChainedExecutable.java:51) at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:107) at org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:130) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: NoSuchObjectException(message:DEFAULT.kylin_intermediate_kylin_sales_cube_desc_19700101000000_20150822000000_6c0bc4ac_5a94_448a_ae5d_3dd523954a57 table not found) at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.get_table(HiveMetaStore.java:1605) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.hive.metastore.RetryingHMSHandler.invoke(RetryingHMSHandler.java:105) at com.sun.proxy.$Proxy50.get_table(Unknown Source) at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getTable(HiveMetaStoreClient.java:997) at org.apache.hive.hcatalog.common.HCatUtil.getTable(HCatUtil.java:191) at org.apache.hive.hcatalog.mapreduce.InitializeInput.getInputJobInfo(InitializeInput.java:117) at org.apache.hive.hcatalog.mapreduce.InitializeInput.setInput(InitializeInput.java:86) at org.apache.hive.hcatalog.mapreduce.HCatInputFormat.setInput(HCatInputFormat.java:95) ... 13 more
The reason is in CubingJobBuilder.java, we didn't pass the configured database name into createFactDistinctColumnsStep.
addCubingSteps(CubeSegment seg, String cuboidRootPath, CubingJob result) { // ...code ommitted... final CubeJoinedFlatTableDesc intermediateTableDesc = new CubeJoinedFlatTableDesc(seg.getCubeDesc(), seg); // SHOULE BE dbname.tblname, BUT WAS tblname final String intermediateHiveTableName = getIntermediateHiveTableName(intermediateTableDesc, jobId); // ...code ommitted... result.addTask(createFactDistinctColumnsStep(seg, intermediateHiveTableName, jobId));
Attachments
Attachments
Issue Links
- is broken by
-
KYLIN-883 Using configurable option for Hive intermediate tables created by Kylin job
- Closed