首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mapreduce的hcatalog

使用mapreduce的hcatalog
EN

Stack Overflow用户
提问于 2013-01-02 20:06:53
回答 2查看 1.9K关注 0票数 1

在执行MapReduce程序时,我得到了以下错误。我已经将所有jars放在hadoop/lib目录中,并且还提到了-libjars中的jars。

这是我正在执行的cmd:

代码语言:javascript
复制
$HADOOP_HOME/bin/hadoop --config $HADOOP_HOME/conf jar /home/shash/distinct.jar  HwordCount -libjars $LIB_JARS WordCount HWordCount2

java.lang.RuntimeException: java.lang.ClassNotFoundException: 
org.apache.hcatalog.mapreduce.HCatOutputFormat at 
org.apache.hadoop.conf.Configuration.getClass(Configuration.java:996) at 
org.apache.hadoop.mapreduce.JobContext.getOutputFormatClass(JobContext.java:248) at org.apache.hadoop.mapred.Task.initialize(Task.java:501) at 
org.apache.hadoop.mapred.MapTask.run(MapTask.java:306) at org.apache.hadoop.mapred.Child$4.run(Child.java:270) 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:1127) at 
org.apache.hadoop.mapred.Child.main(Child.java:264) Caused by: java.lang.ClassNotFoundException: org.apache.hcatalog.mapreduce.HCatOutputFormat 
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at 
java.net.URLClassLoader$1.run(URLClassLoader.java:355) at 
java.security.AccessController.doPrivileged(Native Method) at 
java.net.URLClassLoader.findClass(URLClassLoader.java:354) at 
java.lang.ClassLoader.loadClass(ClassLoader.java:423) at 
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at 
java.lang.ClassLoader.loadClass(ClassLoader.java:356) at 
java.lang.Class.forName0(Native Method) at 
java.lang.Class.forName(Class.java:264) at 
org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:943) 
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:994) ... 
8 more
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-24 01:42:35

确保LIB_JARS是一个逗号分隔的列表(而不是像CLASSPATH那样用冒号分隔)

票数 2
EN

Stack Overflow用户

发布于 2015-12-02 03:08:18

适用于CDH 5.0.x CDH 5.1.x CDH 5.2.x CDH 5.3.x Sqoop

原因Sqoop无法获取HCatalog库,因为Cloudera Manager没有设置HIVE_HOME环境。需要手动设置。

这个问题在下面的JIRA中被跟踪:https://issues.apache.org/jira/browse/SQOOP-2145

此JIRA的修复从5.4.0版开始包含在CDH中。

解决方法:适用于5.4.0以下的CDH版本。

在调用Sqoop命令或将它们添加到/etc/sqoop/conf/sqoop-env.sh之前,在shell中执行以下命令(如果不存在,请创建一个):

代码语言:javascript
复制
export HIVE_HOME=/opt/cloudera/parcels/CDH/lib/hive   (for parcel installation)
export HIVE_HOME=/usr/lib/hive (for package installation)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14121769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档