簡體   English   中英

NoClassDefFoundError:org/apache/spark/sql/hive/HiveContext

[英]NoClassDefFoundError:org/apache/spark/sql/hive/HiveContext

我正在嘗試使用 oozie 來調用 spark 作業。 並且可以使用 spark-submit 在沒有 oozie 的情況下成功運行 spark 作業:

spark-submit --class xxx --master yarn-cluster --files xxx/hive-site.xml --jars xxx/datanucleus-api-jdo-3.2.6.jar,xxx/datanucleus-rdbms-3.2.9.jar,xxx/datanucleus-core-3.2.10.jar xxx.jar

但是當我嘗試使用 oozie 調用作業時,它總是會失敗並出現以下錯誤。 我在workflow.xml中涉及了3個外部罐子和hive-site.xml

Launcher exception: org/apache/spark/sql/hive/HiveContext
java.lang.NoClassDefFoundError: org/apache/spark/sql/hive/HiveContext
    at xxx$.main(xxx.scala:20)
    at xxx.main(xxx.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.apache.spark.deploy.SparkSubmit$.launch(SparkSubmit.scala:328)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:75)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
    at org.apache.oozie.action.hadoop.SparkMain.runSpark(SparkMain.java:104)
    at org.apache.oozie.action.hadoop.SparkMain.run(SparkMain.java:95)
    at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:47)
    at org.apache.oozie.action.hadoop.SparkMain.main(SparkMain.java:38)

我的 Scala 代碼的第 20 行是:

val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)

有沒有人對這個錯誤有任何想法? 我已經卡了好幾天了。

謝謝!

剛回來回答我自己的問題。 這個問題最終通過更新 oozie 的共享庫來解決。 基本上,共享庫中的 jars 對於我的工作運行來說是不完整的。 所以我首先導入了一些額外的 jar,比如 spark-hive 和 spark-mllib。 oozie 共享庫中提供的 jar 也太舊了,也需要更新以避免一些潛在的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM