我想在Kylin身上做个立方体,用Spark做引擎。群集包含以下工具:
操作系统映像:1.0-debian9
apache spark 2.4.4(由1.6.2更改)
apache hadoop 2.7.4版
apache配置单元1.2.1
生成多维数据集时出现以下错误:
java.lang.NoSuchMethodError: org.apache.hive.common.util.ShutdownHookManager.addShutdownHook(Ljava/lang/Runnable;)V
at org.apache.hive.hcatalog.common.HiveClientCache.createShutdownHook(HiveClientCache.java:221)
at org.apache.hive.hcatalog.common.HiveClientCache.<init>(HiveClientCache.java:153)
at org.apache.hive.hcatalog.common.HiveClientCache.<init>(HiveClientCache.java:97)
at org.apache.hive.hcatalog.common.HCatUtil.getHiveMetastoreClient(HCatUtil.java:553)
at org.apache.hive.hcatalog.mapreduce.InitializeInput.getInputJobInfo(InitializeInput.java:104)
at org.apache.hive.hcatalog.mapreduce.InitializeInput.setInput(InitializeInput.java:88)
at org.apache.hive.hcatalog.mapreduce.HCatInputFormat.setInput(HCatInputFormat.java:95)
at org.apache.hive.hcatalog.mapreduce.HCatInputFormat.setInput(HCatInputFormat.java:51)
at org.apache.kylin.source.hive.HiveMRInput$HiveTableInputFormat.configureJob(HiveMRInput.java:80)
at org.apache.kylin.engine.mr.steps.FactDistinctColumnsJob.setupMapper(FactDistinctColumnsJob.java:126)
at org.apache.kylin.engine.mr.steps.FactDistinctColumnsJob.run(FactDistinctColumnsJob.java:104)
at org.apache.kylin.engine.mr.common.MapReduceExecutable.doWork(MapReduceExecutable.java:131)
at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:167)
at org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChainedExecutable.java:71)
at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:167)
at org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:114)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
我检查了hive和hadoop库jars目录,看看是否有多余的jar,我发现每种类型的jar都有两个版本。例如:hive-common-1.2.1.jar和hive-common.jar。
我试着把他们中的任何一个移动到不同的位置,并试着恢复立方体构建过程。但我也犯了同样的错误。在此方面的任何帮助都将不胜感激。
2条答案
按热度按时间qq24tv8q1#
我把hive版本改成了2.1.0,它对我很有用。我决定通过查看kylin下载页面并依次浏览其他云平台(如aws emr和microsoftazurehdinsight for kylin2.6.4)来安装这个版本的hive。
谢谢,@igor dvorzhak给你宝贵的建议。
7gs2gvoe2#
dataproc不支持这种用例,如果需要使用spark 2.4.4,那么应该使用dataproc 1.4或1.5,而不是spark 1.6.2附带的dataproc 1.0。
除此之外,
ShutdownHookManager.addShutdownHook(Ljava/lang/Runnable;)V
方法是在Hive2.3.0中添加的,但spark使用Hive1.2.1的fork,这就是为什么需要使用支持Hive1.2.1的kylin版本。关于重复jar,无版本
hive-common.jar
不是副本,而是指向版本的符号链接hive-common-1.2.1.jar
. 您可以通过列出它来验证这一点: