使用ClassNotFound异常时,纱线作业失败,但在HADOOP_CLASSPATH中添加了jar

时间:2017-11-23 14:55:18

标签: hadoop curl hive yarn

我对Hive WebHcat和Yarn有一些问题。 当我尝试通过curl在hive中创建表时,例如:

  

curl -s -d execute ="从+ pokes中选择+ * +;" \ -d   statusdir =" pokes.output" \
  ' http://localhost:50111/templeton/v1/hive?user.name=ekoifman'

https://cwiki.apache.org/confluence/display/Hive/WebHCat+Reference+Hive

Yarn容器因

而失败
  

错误:java.lang.ClassNotFoundException:   org.apache.logging.log4j.spi.LoggerContextFactory

但Hive类路径中存在需要的jar,当我启动WebHcat时,我在https://github.com/apache/hive/blob/master/hcatalog/webhcat/svr/src/main/bin/webhcat_server.sh#L211-L215

中的Hadoop类路径中明确添加了log4j-api-2.4.1.jar

所以问题是为什么纱线容器找不到放在hive类路径中并在hadoop_classpath中明确添加的jar?

感谢。

1 个答案:

答案 0 :(得分:0)

在我将已经存在于hive类路径中的log4j库添加到yarn classpath中之后问题已解决。