【问题标题】:Apache Kylin: Cube build failed at step 3Apache Kylin:多维数据集构建在第 3 步失败
【发布时间】:2017-08-04 08:11:49
【问题描述】:

我正在尝试构建 Apache Kylin 多维数据集,但在第 3 步失败并显示以下日志消息:

java.lang.RuntimeException: java.io.IOException: NoSuchObjectException(message:default.kylin_intermediate_t3cube_47ec8760_55ce_445d_a91b_0c33957690bf 表未找到) 在 org.apache.kylin.source.hive.HiveMRInput$HiveTableInputFormat.configureJob(HiveMRInput.java:110) 在 org.apache.kylin.engine.mr.steps.FactDistinctColumnsJob.setupMapper(FactDistinctColumnsJob.java:119) 在 org.apache.kylin.engine.mr.steps.FactDistinctColumnsJob.run(FactDistinctColumnsJob.java:103) 在 org.apache.kylin.engine.mr.MRUtil.runMRJob(MRUtil.java:92) 在 org.apache.kylin.engine.mr.common.MapReduceExecutable.doWork(MapReduceExecutable.java:120) 在 org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:113) 在 org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChainedExecutable.java:57) 在 org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:113) 在 org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:136) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745) 原因:java.io.IOException: NoSuchObjectException(message:default.kylin_intermediate_t3cube_47ec8760_55ce_445d_a91b_0c33957690bf table not found) 在 org.apache.hive.hcatalog.mapreduce.HCatInputFormat.setInput(HCatInputFormat.java:97) 在 org.apache.hive.hcatalog.mapreduce.HCatInputFormat.setInput(HCatInputFormat.java:51) 在 org.apache.kylin.source.hive.HiveMRInput$HiveTableInputFormat.configureJob(HiveMRInput.java:105) ... 11 更多 原因:NoSuchObjectException(message:default.kylin_intermediate_t3cube_47ec8760_55ce_445d_a91b_0c33957690bf table not found) 在 org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.get_table_core(HiveMetaStore.java:1946) 在 org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.get_table(HiveMetaStore.java:1899) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.apache.hadoop.hive.metastore.RetryingHMSHandler.invokeInternal(RetryingHMSHandler.java:140) 在 org.apache.hadoop.hive.metastore.RetryingHMSHandler.invoke(RetryingHMSHandler.java:99) 在 com.sun.proxy.$Proxy47.get_table(未知来源) 在 org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getTable(HiveMetaStoreClient.java:1332) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:150) 在 com.sun.proxy.$Proxy48.getTable(未知来源) 在 org.apache.hive.hcatalog.common.HCatUtil.getTable(HCatUtil.java:180) 在 org.apache.hive.hcatalog.mapreduce.InitializeInput.getInputJobInfo(InitializeInput.java:105) 在 org.apache.hive.hcatalog.mapreduce.InitializeInput.setInput(InitializeInput.java:88) 在 org.apache.hive.hcatalog.mapreduce.HCatInputFormat.setInput(HCatInputFormat.java:95) ... 13 更多 结果代码:2

消息显示kylin找不到表“default.kylin_intermediate_t3cube_47ec8760_55ce_445d_a91b_0c33957690bf”,但是当我登录hive时,该表存在。

谁能给我一些提示来解决这个问题?

编辑: 我已经解决了这个问题。 Kylin 使用 HCatelog 获取表信息,但我没有正确配置 hive。

【问题讨论】:

    标签: hadoop kylin


    【解决方案1】:

    Kylin 通过 hcatalog lib 直接连接到 hive metastore。这需要类路径上的 hive-site.xml 并且它必须包含足够的信息(如“hive.metastore.uris”)才能连接到正确的 hive 元存储。否则,如果连接到错误的 Metastore,就会出现这样的 no-table-found 异常。

    在 YARN 资源管理器或作业历史服务器中检查失败的“Extract Fact Table Distinct Columns”作业的 MR 配置。搜索类路径属性,例如“mapreduce.application.classpath”。检查 hive-site.xml 是否在类路径中,它包含正确的元存储连接信息。

    请注意,您可以使用“$KYLIN_HOME/conf/kylin_job_conf.xml”覆盖任何 MR 作业配置,例如“mapreduce.application.classpath”。

    KYLIN-2530 是一个改进修复。假设这个问题将从 Kylin 2.0 开始得到缓解。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多