0

在 EMR 5.14 集群上通过 oozie 工作流运行 spark 操作时,我遇到以下错误:

pyspark.sql.utils.IllegalArgumentException: u"Error while instantiating 'org.apache.spark.sql.hive.HiveExternalCatalog'" 我的 Pyspark 脚本在作为普通 spark 作业执行时运行良好,但不是通过 Oozie Pyspark 程序执行:-

    spark = SparkSession.builder.appName("PysparkTest").config("hive.support.quoted.identifiers", "none").enableHiveSupport().getOrCreate()
    sc = SparkContext.getOrCreate();
    sqlContext = HiveContext(sc)
    sqlContext.sql("show databases").show()

我创建了一个 workflow.xml 和 job.properties 从LINK引用。

我将所有 spark 和 hive 相关配置文件复制到同一目录下($SPARK_CONF_DIR/)。Hive 还配置为使用 MySQL 作为元存储。

如果您能帮我找出在 Oozie spark 动作中将 Pyspark 程序作为 jar 文件运行时遇到的问题,那就太好了。

4

1 回答 1

0

Error while instantiating 'org.apache.spark.sql.hive.HiveExternalCatalog'这意味着Catalog它试图找到的 jar 不是 ooziesharelib spark 目录。

job.properties请在您的文件中添加以下属性。

oozie.action.sharelib.for.spark=hive,spark,hcatalog

您也可以发布整个日志吗?

如果可能的话,您能否在 EMR 5.29 上运行相同的程序,在运行 PySpark 时,我在 5.26 和更低版本上遇到了一些 jar 问题。

于 2020-04-29T15:03:01.713 回答