gpt4 book ai didi

Hadoop Map Reduce 作业 : Class org. 找不到 apache.hive.hcatalog.mapreduce.HCatInputFormat

转载 作者:可可西里 更新时间:2023-11-01 16:48:38 26 4
gpt4 key购买 nike

我正在使用 kylin .它是一个数据仓库工具,它使用 hadoop、hive 和 hbase。它附带示例数据,以便我们可以测试系统。我正在构建这个样本。这是一个多步骤过程,其中许多步骤都是 map-reduce 作业。第二步是 Extract Fact Table Distinct Columns,这是一个 MR 作业。如果没有在 hadoop 日志中写入任何内容,这项工作就会失败。深入挖掘后,我在 logs/userlogs/application_1450941430146_0002/container_1450941430146_0002_01_000004/syslog

中发现了一个异常
2015-12-24 07:31:03,034 WARN [main] org.apache.hadoop.mapred.YarnChild:
Exception running child : java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hive.hcatalog.mapreduce.HCatInputFormat not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2195)
at org.apache.hadoop.mapreduce.task.JobContextImpl.getInputFormatClass(JobContextImpl.java:174)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:749)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: java.lang.ClassNotFoundException: Class org.apache.hive.hcatalog.mapreduce.HCatInputFormat not found
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2101)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2193)
... 8 more

2015-12-24 07:31:03,037 INFO [main] org.apache.hadoop.mapred.Task: Runnning cleanup for the task

我的问题是我是否应该将 mapper 类的所有依赖项 jar 复制到所有 hadoop 节点?如果我重新启动 kylin 服务器并恢复多维数据集构建工作,这项工作就会成功。清理所有内容后重新启动时会再次观察到此行为。

我正在使用 5 节点集群,每个节点是 8 核和 30GB。 NameNode 在一个节点上运行。 DataNode 在所有 5 个节点上运行。对于 Hbase; HMaster 和 HQuorumPeer 与 NameNode 在同一节点上运行,HRegionServer 在所有节点上运行。 Hive和Kylin部署在Master Node上。

版本信息:

Ubuntu 12.04 (64 bit)
Hadoop 2.7.1
Hbase 0.98.16
Hive 0.14.0
Kylin 1.1.1

最佳答案

这里的问题是 Kylin 假设所有 Hadoop 节点上都有相同的 Hive jar。当某个节点缺少 Hive jar(或者甚至在不同的位置)时,您会在 HCatInputFormat 上得到 ClassNotFoundException。

顺便说一句,您应该能够从 Yarn 作业控制台获得明确的错误消息。这是一个遇到的问题。

将Hive部署到所有集群节点肯定可以解决问题,就像你试过的那样。

或者另一个(更干净的)解决方法是手动配置 Kylin 以提交 Hive jar 作为额外的作业依赖项。参见 https://issues.apache.org/jira/browse/KYLIN-1021

最后还有一个open JIRA建议Kylin应该默认提交Hive jar。参见 https://issues.apache.org/jira/browse/KYLIN-1082

关于Hadoop Map Reduce 作业 : Class org. 找不到 apache.hive.hcatalog.mapreduce.HCatInputFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34449561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com