我正在尝试构建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(抽象可执行文件)。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(线程。java:745)引起原因:java.io.ioexception:nosuchobjectexception(message:default.kylin_intermediate_t3cube_47ec8760_55ce_445d_a91b_0c33957690bf 表(未找到)位于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.com)。java:105) ... 11更多原因:nosuchobjectexception(message:default.kylin_intermediate_t3cube_47ec8760_55ce_445d_a91b_0c33957690bf 未找到表)位于org.apache.hadoop.hive.metastore.hivemetastore$hmshandler.get\u table\u core(hivemetastore)。java:1946)在org.apache.hadoop.hive.metastore.hivemetastore$hmshandler.get\u table(hivemetastore。java:1899)在sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)位于sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl)。java:62)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。java:498)在org.apache.hadoop.hive.metastore.retryinghmshandler.invokeinternal(retryinghmshandler。java:140)在org.apache.hadoop.hive.metastore.retryinghmshandler.invoke(retryinghmshandler。java:99)org.apache.hadoop.hive.metastore.hivemetastoreclient.gettable(hivemetastoreclient。java:1332)在sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)位于sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl)。java:62)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。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个结果code:2
消息显示kylin找不到表“default.kylin\u intermediate\u t3cube\u 47ec8760\u 55ce\u 445d\u a91b\u 0c33957690bf”,但当我登录到hive时,表就存在了。
有人能给我点光来解决这个问题吗?
编辑:我已经解决了这个问题。kylin使用hcatelog获取表信息,但我没有正确配置配置配置单元。
1条答案
按热度按时间x6492ojm1#
kylin通过hcatalog lib直接连接到hive元存储。这需要类路径上的hive-site.xml,并且它必须包含足够的信息(如“hive.metastore.uris”)才能连接到正确的hive metastore。否则,如果连接到错误的元存储,则会发生这种“找不到表”异常。
检查资源管理器或作业历史服务器中失败的“提取事实表不同列”作业的mr配置。搜索类路径属性,如“mapreduce.application.classpath”。检查hive-site.xml是否在类路径上,并且它是否包含正确的元存储连接信息。
注意,有“$kylin\u home/conf/kylin\u job\u conf.xml”可以用来覆盖任何mr作业配置,例如“mapreduce.application.classpath”。
Kylin-2530是一个改进补丁。假设这个问题从Kylin2.0开始会得到缓解。