0

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

java.lang.RuntimeException: java.io.IOException: NoSuchObjectException(message:default.kylin_intermediate_t3cube_47ec8760_55ce_445d_a91b_0c33957690bf table not found) at org.apache.kylin.source.hive.HiveMRInput$HiveTableInputFormat.configureJob(HiveMRInput.java:110) at 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) at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:113) at org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:136) at java .util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 引起作者: java.io.IOException: NoSuchObjectException(message:default.kylin_intermediate_t3cube_47ec8760_55ce_445d_a91b_0c33957690bf 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) 在 org.apache.kylin.source.hive.HiveMRInput$HiveTableInputFormat。configureJob(HiveMRInput.java:105) ... 11 更多原因:NoSuchObjectException(message:default.kylin_intermediate_t3cube_47ec8760_55ce_445d_a91b_0c33957690bf 表未找到) at 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) at com.sun.proxy.$Proxy47.get_table(Unknown Source) at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getTable(HiveMetaStoreClient.java:1332) at 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(Unknown Source) 在 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 ”,但是当我登录配置单元时,该表存在。

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

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

4

1 回答 1

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 开始得到缓解。

于 2017-04-04T09:00:50.407 回答